Машинное обучение RU – Telegram
Машинное обучение 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
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
🖥 Полезные приемы с кодом для аналитиков данных на Python

1. Data Science. Советы по написанию эффективного кода на Python - https://www.youtube.com/watch?v=1Mcy-uatp_c&t=14s

2. Полезные приемы в Pandas - https://www.youtube.com/watch?v=Sd2S5rXe8sY&t=165s

3. Раскройте потенциал Python Numpy: руководство для начинающих в науке о данных - https://www.youtube.com/watch?v=XX2XremQ0fg&t=12s

4. Data science c Python.Ускоряем Pandas в 120 раз- https://www.youtube.com/watch?v=-dAdaEv23vk&t=4s

5. 26 практических приёмов и хитростей Python - https://www.youtube.com/watch?v=vAMyfvtxxdQ&t=5s

6. 5 декораторов Python для Data Science проектов - https://www.youtube.com/watch?v=rxq11WHAlqU

7. ChatGPT + Midjouney на практике - https://www.youtube.com/watch?v=2gUqbc3Ikmo&t=5s

8. Разбор вопросов с собеседований Python - https://www.youtube.com/watch?v=4L1e-A3AOL4&t=5s

9. 15 полезных лайфхаков с кодом Машинного обучения на Python - https://www.youtube.com/watch?v=loOtlwcdiBA&t=4s

10. Декораторы Python, которые выведут ваш код на новый уровень - https://www.youtube.com/watch?v=qxrGAogl4iM

11. 7 инструментов Python, который должен знать каждый специалист машинного обучения - https://www.youtube.com/watch?v=RGEftBi0C9Y

12. Как загружать данные в SQL в 20 раз быстрее на Python
- https://www.youtube.com/watch?v=eyeR1uWLnpM&t=2s

13. Data Science. Полезные советы по библиотеке Pandas - https://www.youtube.com/watch?v=neXc5Q-AWXY&t=3s

14. Data Science. Полезные советы по библиотеке Pandas - https://www.youtube.com/watch?v=neXc5Q-AWXY&t=3s

15. Дзен Python ООП: лучшие практики и шаблоны проектирования Python - https://www.youtube.com/watch?v=_MtX6QFJBRU

16. Python itertools. Хитрый способ избежать вложенных циклов - https://www.youtube.com/watch?v=TSvjYKIY01I&t=3s

17. Python. Генерация списка, словаря или множества в одну строку кода - https://www.youtube.com/watch?v=zS3HePvtxVc&t=10s

18. 8 крутых способов свести функции Python в одну строку - https://www.youtube.com/watch?v=jo3Q-rMggXk

19. Python itertools.compress. Удобный способ фильтрации данных - https://www.youtube.com/watch?v=8JGHID-_ApU&t=12s

20. Python Match/Case - https://www.youtube.com/watch?v=U_-NIKbKakM

🎞 Все видео по анализу данных

@machinelearning_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍166🔥3
🖥 Pandas AI — это библиотека Python, которая использует генеративные модели ИИ для расширения возможностей панд. Он был создан в дополнение к библиотеке pandas, широко используемому инструменту для анализа и обработки данных.

В редакторе кода задаете любой запрос про данные на естественном языке и без написания кода получаете готовый ответ по вашим данным.

Установка:
pip install pandasai

Например, вы можете попросить PandasAI найти все строки в DataFrame, где значение столбца больше 5, и он вернет DataFrame, содержащий только эти строки:

import pandas as pd
from pandasai import PandasAI


df = pd.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"gdp": [19294482071552, 2891615567872, 2411255037952, 3435817336832, 1745433788416, 1181205135360, 1607402389504, 1490967855104, 4380756541440, 14631844184064],
"happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 7.23, 7.22, 5.87, 5.12]
})

# Instantiate a LLM
from pandasai.llm.openai import OpenAI
llm = OpenAI(api_token="YOUR_API_TOKEN")

pandas_ai = PandasAI(llm)
pandas_ai(df, prompt='Which are the 5 happiest countries?')


Вывод:

6 Canada
7 Australia
1 United Kingdom
3 Germany
0 United States
Name: country, dtype: object

Конечно, вы также можете попросить PandasAI выполнить более сложные запросы. Например, вы можете попросить PandasAI найти сумму ВВП двух самых несчастливых стран:

pandas_ai(df, prompt='What is the sum of the GDPs of the 2 unhappiest countries?')

Вывод:
19012600725504

Вы также можете попросить PandasAI нарисовать график:

pandas_ai(
df,
"Plot the histogram of countries showing for each the gdp, using different colors for each bar",
)


Вот еще один пример использования библиотеки Pandas AI в Google Colab.

Github

@machinelearning_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4👎21
Прекратите использовать Google Translator! Создайте собственное приложение с ИИ

В современном глобализированном мире общение с людьми из разных стран и культур становится всё более важным. Однако языковые барьеры часто могут мешать эффективному общению. Хотя Google Translate стал популярным инструментом для преодоления этого разрыва, у него есть свои ограничения, особенно когда речь идёт о точном переводе длинных текстов.

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

Читать

@machinelearning_ru
👍92🔥2👏1
🖥 JupyterLab 4.0 — свежее обновление IDE .

Новое обновленеи принесло много интересных изменений. Благодаря этому обновлению стало ещё приятнее использовать инструмент.

JupyterLab теперь работает быстрее и имеет улучшенный редактор кода .

Улучшенный редактор CodeMirror в JupyterLab
CodeMirror, текстовый редактор, был обновлен до версии CodeMirror 6. В новой версии редактора улучшены его доступность и производительность, а также добавлены гибкие возможности настройки.

Функция совместной работы RTC перенесена в отдельный пакет jupytercollaboration. Он включает отображение нескольких курсоров и выделений, а также поддерживает регистрацию новых типов общих моделей.

Новый менеджер расширений в JupyterLab 4

В JupyterLab 4 Менеджер расширений включает как заранее созданные расширения Python, так и расширения с pypi.org. Расширения из PyPI не нуждаются в сборке при установке через Менеджер.

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

Улучшенный поиск документов
Поиск и замена контента улучшены новыми возможностями.

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

Улучшения UI-интерфейса JupyterLab
Дизайнеры JupyterLab переработали секцию активных ядер, кнопку «Добавить новую ячейку», диалоговое окно для сочетаний клавиш и отображение первой строки в свернутых ячейках ввода и вывода.

Обновления средств разработки
Средства разработки обновились до TypeScript v5, Yarn v3, React v18 и Lumino v2.

Исправление багов
Были исправлены более 100 ошибок в JupyterLab, улучшены стабильность и производительность. Полный список исправлений можно найти на GitHub.

https://github.com/jupyterlab/jupyterlab/releases/tag/v4.0.0rc0

@machinelearning_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥21
⭐️ 19 самых элегантных трюков Sklearn, которые я нашёл после 3 лет использования

После трёх лет использования и работы справочником по API Sklearn я понял, что самые популярные и часто используемые модели и функции — это лишь малая часть того, что может сделать библиотека. Несмотря на то, что некоторые функции чрезвычайно узконаправлены и используются в редких случаях, я обнаружил множество интересных функций, которые являются элегантными вариантами решения для различных типичаных операций, которые датасаентисты обычно выполняют вручную.

Итак, я решил составить список самых элегантных и важных функций и кратко объяснить их, чтобы вы могли значительно расширить свой набор инструментов Sklearn. Наслаждайтесь!

Читать

@machinelearning_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥42🤔1
Как я улучшил производительность своего кода Python на 371%?

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

В итоге мне удалось ускорить код с 29,3 секунд до 6,3 без какой-либо внешней библиотеки!

Читать

@machinelearning_ru
👍6🔥21👎1
🔥 100 датасетов для скачивания

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

📌Список

@machinelearning_ru
9👍2🔥2