Машинное обучение 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
Глубокая нейронная сеть на 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
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 DragGAN

Выпущен код DragGAN, который позволяет преобразовать изображения простым перетаскиванием.

🖥 Github: https://github.com/XingangPan/DragGAN

🖥 Colab: https://colab.research.google.com/drive/1-WH-DMgE0dFJ3Q_bkAJX7iSe1DvLooul?usp=sharing

@machinelearning_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥85👍5
⭐️ Код в картинках: визуализация кода

Граф управления потоком (Control Flow Graph, CFG) – это граф, где узлы представляют базовые блоки кода, а ребра представляют переходы между ними. В статическом анализе кода, CFG может быть использован для обнаружения потенциальных проблем в коде. Например, CFG может помочь выявить «мертвый» код (код, который может быть исполнен, но результаты его вычислений не влияют на дальнейшую программу) или недостижимые части программы. CFG также может быть использован для оптимизации кода. Например, CFG может помочь выявить повторяющиеся участки кода, которые могут быть заменены на вызов функции. CFG используется во многих языках программирования, в том числе в C, C++, Java, Python и других. Они могут быть созданы вручную или автоматически с помощью инструментов, таких как библиотека Staticfg на языке Python.

Staticfg — это Python библиотека, которая позволяет создавать графы управления потоком, или простыми словами, схемы взаимодействия блоков кода. Использование staticfg может быть полезно для: исследования кода, разработки инструментов для статического анализа кода, анализа производительности кода, анализа безопасности кода. Она поддерживает большинство основных конструкций языка, таких как условные операторы, циклы и вызовы функций.

pip install staticfg

Staticfg визуализирует граф с помощью Graphviz. Поэтому не забудьте его установить, и путь до него добавить в переменную среды. Это можно сделать следующим кодом:

import os
os.environ["PATH"] += os.pathsep + r'C:\Program Files (x86)\Graphviz2.38\bin'
Одним из примеров использования Staticfg может быть следующий код:

#импортируем нужный модуль
from staticfg import CFGBuilder
#создаем объект класса CFGBuilder
cfg = CFGBuilder().build_from_file('example','example.py')
#сохраняем визуализацию
cfg.build_visual('example','png')


Этот код создаст граф потока управления для файла example.py и сохранит его в формате png с названием example.

На рисунке представлены граф тестовой программы (слева) и граф функции факториал (справа в прямоугольнике). Овалом выделены блоки кода, стрелками обозначено взаимодействие между ними, а маленьким прямоугольником выделена стандартная функция print, стрелка с прерывистой линией обозначает вызов стандартной функции.

Граф программы демонстрирует, что сначала объявляется функция factorial, затем в цикле по i от 0 до 9 вызывается стандартная функция print, которая выводит пары: число i+1 и результат работы функции factorial, которой подается на вход число i+1.

📌 Подробнее

@machinelearning_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥32
🖥 Data Science

Коллекция полезных материалов по Data Science вместе со статьями, видео и кодом.

git clone https://github.com/khuyentran1401/Data-science

Github

@machinelearning_ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍41