Машинное обучение RU
17.7K subscribers
1.58K photos
209 videos
11 files
2.04K links
Все о машинном обучении

админ - @workakkk

@data_analysis_ml - анализ даннных

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram -лучшие ит-каналы

@pythonl - Python

@pythonlbooks- python 📚

@datascienceiot - 📚

РКН: clck.ru/3FmrUw
Download Telegram
Хватит записываться на скучные курсы! Самостоятельно изучите Sci-kit Learn с помощью ChatGPT!

Теперь мы все начинаем изучать Data Science и машинное обучение, записываясь на онлайн-курсы.

Признаюсь, некоторые из них действительно помогают в процессе обучения. Тем не менее, многие из них стали бесполезными после выпуска ChatGPT. Только представьте, что Искусственный Интеллект может помогать вам учиться абсолютно бесплатно... К тому же вы сможете сами составить программу обучения и выбрать методы, по которым будете учиться!

Читать

@machinelearning_ru
👍64🔥2
This New AI Is The Future of Videomaking!

Runway обещают через пару недель выкатить новые фичи связанные с текстовой генерацией и редактированием видео в открытый доступ на своём сайте.

https://www.youtube.com/watch?v=muNkPjigQEE

статья: https://arxiv.org/abs/2302.03011

демо: https://runwayml.com/

@machinelearning_ru
👍52🔥1
5 признаков того, что вы стали продвинутым пользователем Pandas, даже не осознавая этого

Ловите ли вы себя на мысли о том, что мечтаете о фреймах и сериях данных Pandas? Проводите ли вы часы подряд, выполняя сложные манипуляции и агрегации, едва замечая боль в спине и всё время думая: “как же это интересно”?

Что ж, с таким успехом вы могли бы быть продвинутым пользователем Pandas, даже не осознавая этого. Присоединяйтесь к клубу поклонников Pandas, которые достигли этого редкого уровня, и примите тот факт, что вы официально являетесь мастером обработки данных.

Итак, давайте взглянем на пять признаков того, что вы уже состоите в этом клубе.

Читать

@pro_python_code
👍81🔥1
Код для бстрого разложение данных высокой размерности.

Если вы хотите разложить данные высокой размерности на два или три измерения для их визуализации, что мы чаще делаем?

Распространенной техникой является PCA. Несмотря на полезность PCA, я всегда считал сложным создание графика PCA, пока не нашел эту документ в Yellowbrick.

Я рекомендую использовать этот инструмент, если вы хотите визуализировать PCA с помощью нескольких строк кода

from yellowbrick.datasets import load_credit
from yellowbrick.features import PCA

# Specify the features of interest and the target
X, y = load_credit()
classes = ['account in default', 'current with bills']

visualizer = PCA(scale=True, classes=classes)
visualizer.fit_transform(X, y)
visualizer.show()


https://www.scikit-yb.org/en/latest/api/features/pca.html

@machinelearning_ru
👍11🔥41
datefinder: Инструмент автоматического поиска дат и времени в строках Python

Если вы хотите автоматически искать дату и время с различными форматами в строках Python, попробуйте использовать datefinder. В приведенном коде показано, как использовать datefinder.

# pip install datefinder

from datefinder import find_dates

text = """"We have one meeting on May 17th,
2021 at 9:00am and another meeting on 5/18/2021
at 10:00. I hope you can attend one of the
meetings."""

matches = find_dates(text)

for match in matches:
print("Date and time:", match)
print("Only day:", match.day)

"""Output:
Date and time: 2021-05-17 09:00:00
Only day: 17
Date and time: 2021-05-18 10:00:00
Only day: 18
"""

Github

@machinelearning_ru
👍8🔥32
Как построить систему геоаналитики с применением ML?

Решать аналитические задачи с большим количеством значимых признаков помогает машинное обучение. В новой статье на Хабр вы найдете примеры работы сервисов геоаналитики VK Predict и узнаете, из каких этапов состоит разработка продукта с возможностями гео аналитики и какие модели машинного обучения используются при построении таких систем.

👉 Читать статью

@machinelearning_ru
👍7🔥1
PaLM + RLHF - Pytorch

Интресный проект, который позволяет реализовать функциональность ChatGPT, но с исходниками из открытого доступа.Учтите, что для обучения модели могут потребоваться большие вычислительные ресурсы​

Еще стоит отметить наличие подробной инструкции по использованию и возможность настроить модель под конкретные задачи.

$ pip install palm-rlhf-pytorch

Github

@machinelearning_ru
👍82🔥1
Глубокая нейронная сеть на Rust с нуля 🦀

Это руководство поможет вам глубже понять нейронные сети и их реализацию на Rust.

Часть 1
Часть 2
Часть 3

@machinelearning_ru
👍13🔥21
Pick-a-Pic — это датасет для обучения моделей генерации изображения из текста, содержащий более 500 000 изображений и оценки пользователей

Для создания датасета исследователи разработали веб-приложение на основе моделей StableDiffusion 1.5 и SDXL beta, в котором по текстовой подсказке генерируется пара изображений. Пользователи выбирают понравившийся вариант, либо отмечают, что среди вариантов нет явного победителя.

Датасет
Статья

@machinelearning_ru
4👍4🔥1
💡 Задачи: посчитать количество слов в тексте

Задача состоит в том, чтобы написать программу для чтения содержимого текстового файла и создания словаря отдельных слов и частоты появления слова в текстовом файле. затем либо отобразить частоты, либо сгенерировать их во втором файле.

входные данные: текстовый файл, содержащий текст

вывод: частоты слов, встречающихся в тексте, и текстовый файл с ним

частоты слов, встречающихся в тексте, и текстовый файл с ним

Решение:
прочитать содержимое текстового файла
обработать текст, удалив знаки препинания и переведя его в нижний регистр
сохранить обработанный текст в файл
прочитать обработанный файл и прочитать его слово за словом
занести слово в словарь и установить счетчик на плюс один каждый раз, когда слово встречается в тексте
предположение:

#!/usr/bin/ python3

"""this code is to count word frequency in a text file"""

#importing module
import string
import json

"""эта функция предназначена для предварительной обработки текстового файла путем удаления знаков препинания и перевода в нижний регистр букв"""
def preprocess(file):
with open(file, 'r') as fileData:
for textline in fileData:
#разделяем слова на буквы
wordsList = textline.split()

x = [''.join(c for c in s if c not in string.punctuation) for s in wordsList]

x = [x.lower() for x in x]

y = " ".join(x)

fila = open(prefile, "a")
fila.write(y+"\n")


def cleartxt():
f = open(prefile, "w")
f.write("")


filename = 'BohemianRhapsody.txt'
prefile = 'preprocessed.txt'

dictionary = {}

preprocess(filename)

with open(prefile, "r") as f:

words = f.read().split()
words = list(words)
words = sorted(words)

for x in words:
if x in dictionary:
dictionary[x] += 1
else:
dictionary[x] = 1


print(open(filename, "r").read(),'\n')
print("--- DICTIONARY OF WORDS ---\n",dictionary)

with open('wordfreq.txt', 'w') as convert_file:
convert_file.write(json.dumps(dictionary))


cleartxt()


@machinelearning_ru
👍102🔥2🤩1
💫 8 способов свести ваши функции Python в одну строку

Знали ли вы о том, что в языке программирования Python можно реализовать функцию в одну строку? Или это что-то новое для вас? В этой статье я расскажу вам о восьми самых лучших способах расположить функцию одной строкой!

📌 Читать

@machinelearning_ru
👍72👎1🔥1
Могут ли модели мо маркировать данные, как люди?

https://huggingface.co/blog/llm-leaderboard

@machinelearning_ru
🔥42👍2
📁Функции для кэширования

Функция lru_cache из functools

Функция lru_cache предназначается для мемоизации, т.е. кэширует результат в памяти. Она используется в качестве декоратора функции, вызовы которой нужно сохранить в памяти вплоть до значения параметра maxsize (по умолчанию 128).

Пример:
def mysum(n):
if n == 1:
return n
print(f"'{n}'", end=" ")
return n + mysum(n - 1)


Мы специально добавили функцию print для вывода в стандартный поток вывода текущего значения n. Повызываем эту функцию с разными значениями:
>>> mysum(11)
'11' '10' '9' '8' '7' '6' '5' '4' '3' '2' 66
>>> mysum(11)
'11' '10' '9' '8' '7' '6' '5' '4' '3' '2' 66
>>> mysum(7)
'7' '6' '5' '4' '3' '2' 28
>>> mysum(9)
'9' '8' '7' '6' '5' '4' '3' '2' 45


Как видим, она постоянно вычисляет одни и те же значения n. Итак, чтобы избежать повторных вычислений мы можем сохранить в кэше результаты предыдущих вычислений с помощью lru_cache, добавив только одну строчку с декоратором:
import functools as ftl
@ftl.lru_cache
def mysum(n):
if n == 1:
return n
print(f"'{n}'", end=" ")
return n + mysum(n - 1)
>>> mysum(11)
'11' '10' '9' '8' '7' '6' '5' '4' '3' '2' 66
>>> mysum(11)
66
>>> mysum(9)
45
>>> mysum(7)
28
>>> mysum(15)
'15' '14' '13' '12' 120


Поскольку результаты от sum(1) до sum(11) уже найдены и сохранены в кэше, то они из него достаются, поэтому mysum(15) вычисляет вызовы от 15 до 12.

Как работает Least Recently Used (LRU) алгоритм. Параметры функции lru_cache
Алгоритм LRU хранит наиболее используемые вызовы в кэше размера maxsize. Устаревшие элементы удаляются, если кэш заполнен. Один из способов реализации LRU - это использование двусвязного списка с отображением ключей на указатели списка. При добавлении ключа указатель на первый элемент списка меняется на указатель данного ключа, и элемент с этим ключом удаляется. Язык Python реализует более сложные версии LRU, например, учитывая использование в тредах.

Итак, до этого мы использовали lru_cache без явного задания параметров. Но на самом деле по умолчанию неявно передается maxsize=128. Давайте зададим явно этот параметр, равным 3:
@ftl.lru_cache(maxsize=3)
def mysum(n):
if n == 1:
return n
print(f"'{n}'", end=" ")
return n + mysum(n - 1)
>>> mysum(10)
'10' '9' '8' '7' '6' '5' '4' '3' '2' 55
>>> mysum(8)
36
>>> mysum(7)
'7' '6' '5' '4' '3' '2' 28


Наша функция, теперь хранит только 3 последних вызова, т.е. значения 10, 9, 8 (не забывайте, что этой линейной нехвостовой рекурсии нужно возвратиться обратно, когда n = 1). А вот значения 7 и меньше в кэше не хранятся, поэтому функция вычисляется как и положено. С другой стороны, если мы захотим теперь снова вычислить mysum(10), то вычислить нужно только mysum(8), mysum(9) и mysum(10)
>>> mysum(10)
'10' '9' '8' 55


Второй параметр декоратора lru_cache является typed, по умолчанию равный False. Если он равен True, то параметры декорируемой функции будут кэшированы отдельно. По умолчанию все параметры рассматриваются как эквивалентные. Это значит, что в некоторых случаях int может быть эквивалентен float (1 == 1.0) или список эквивалентен кортежу. В нашей рекурсивной функции даже передача True не гарантирует эквивалентности между int и float.
Также мы можем передать maxsize=None, это сделает кэш бесконечным. В Python 3.9 появилась функция cache, которая эквивалентна lru_cache(maxsize=None).

Изучаем информацию о кэше
Кэшированные функции имеют метод cache_info, который выводит информацию о кэше:
>>> mysum.cache_info()
CacheInfo(hits=2, misses=20, maxsize=3, currsize=3)

где
👍11🔥21🤔1