Data Science | Machinelearning [ru] – Telegram
Data Science | Machinelearning [ru]
20K subscribers
639 photos
40 videos
29 files
3.53K links
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM.

По вопросам рекламы или разработки - @g_abashkin

РКН: https://vk.cc/cJPGXD
Download Telegram
🧠 Распознавание орхоно-енисейских рунических надписей методами машинного обучения

В статье рассказывают о расшифровке орхоно-енисейских рун: древние тексты на камне, трудности интерпретации и идеи автоматизации для точности и скорости анализа.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
51
👩‍💻 Предсказание цены дома по площади

Построить сверточную нейронную сеть (CNN) для классификации изображений из набора данных CIFAR-10.

Модель должна предсказывать класс объекта на изображении. Датасет CIFAR-10 содержит 60,000 изображений размером 32x32 пикселя, разделенных на 10 классов:

— Самолет, Автомобиль, Птица, Кот, Олень, Собака, Лягушка, Лошадь, Корабль, Грузовик.

Требования к модели:

• Использовать сверточные слои для выделения признаков.
• Применить слои подвыборки (пулинг) для уменьшения размеров карты признаков.
• Добавить полносвязные слои для классификации на основе выделенных признаков.
• Использовать функцию активации ReLU для скрытых слоев и softmax для выходного слоя.
• Оценить точность модели на тестовых данных.

Входные данные: изображения размера 32x32 с тремя каналами (RGB).

Решение задачи🔽

import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Загрузка данных
(X_train, y_train), (X_test, y_test) = cifar10.load_data()

# Нормализация данных
X_train, X_test = X_train / 255.0, X_test / 255.0

# Создание модели CNN
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
MaxPooling2D((2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])

# Компиляция модели
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Обучение модели
model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))

# Оценка модели
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Точность модели: {accuracy:.2f}")
Please open Telegram to view this post
VIEW IN TELEGRAM
👎311😁1
➡️ Как Duolingo юзает машинное обучение для прокачки английского: кратко и по делу

В статье рассказывают, как ИИ сделал Duolingo фабрикой языковых курсов: генерация контента, проверка ответов, адаптация заданий — всё на автомате. Учить стало быстрее.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥82
🧠 Создаем свой RAG: введение в LangGraph

В статье объясняют, что такое RAG и как использовать LangGraph для генерации с дополненной выборкой: основы, примеры и подготовка к созданию собственных RAG-систем.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
51
🤔 Выбираем MLOps инструменты с учётом зрелости команды

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Чем отличается метод .transform() от .apply() в pandas?

В pandas методы .transform() и .apply() часто используются для обработки данных по столбцам и строкам, но они работают по-разному. Метод .apply() применяет функцию к каждому элементу или ряду, и возвращает объект любой формы (например, DataFrame или Series). В отличие от него, .transform() применяет функцию к каждой ячейке или группе и возвращает объект той же формы, что и входной.

➡️ Пример:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [10, 20, 30]})

# Используем .apply() для вычисления суммы по столбцам
print(df.apply(sum)) # Вернет Series с суммами столбцов

# Используем .transform() для нормализации каждого значения в столбце
print(df.transform(lambda x: (x - x.mean()) / x.std()))
# Вернет DataFrame с нормализованными значениями


🗣 .apply() подходит для сложных операций и агрегаций, а .transform() удобно использовать для обработки данных с сохранением исходной структуры.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
51
⚙️ Когда обучение не идет. Loss is NaN. Причины и решения

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
21
👩‍💻 Напишите функцию для расчёта Accuracy вручную

В машинном обучении Accuracy — это метрика качества классификации. Показывает, сколько предсказаний модель сделала правильно.

Решение задачи🔽

def accuracy_score(y_true, y_pred):
correct = 0
for true, pred in zip(y_true, y_pred):
if true == pred:
correct += 1
return correct / len(y_true)

# Пример использования:
y_true = [1, 0, 1, 1, 0, 1]
y_pred = [1, 0, 0, 1, 0, 1]

print(accuracy_score(y_true, y_pred)) # 0.833...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
⚙️ Организация ML-проекта с примерами

Организация - это важно. То же относится к ML-проектам. Из каких компонент он должен состоять? Как оформить проект, чтобы всего хватало и было удобно это масштабировать? Рассмотрим организацию по шаблону CookieCutter с примерами.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
41👍1
⚙️ Рекомендательная система для вашего каталога научных работ (и не только!)

Показано, как собрать рекомендательную систему на своём архиве документов, даже если там куча форматов. NLP + графы = машинный архивариус, который сам подсовывает нужные файлы.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
51
⚙️ Анализ данных: от EDA до Tinder-битвы графиков

Расскажу, как мы в МТС учили студентов EDA не лекциями, а игрой по типу Tinder, только для графиков. Был фан, был хардкор и крутые визуализации.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
41
⚙️ Что такое StandardScaler из scikit-learn и зачем он нужен?

StandardScaler — это инструмент из библиотеки scikit-learn, который стандартизирует данные: приводит их к распределению со средним 0 и стандартным отклонением 1. Это важно перед обучением моделей, особенно для алгоритмов, чувствительных к масштабу (например, SVM, KNN, линейная регрессия).

➡️ Пример:

from sklearn.preprocessing import StandardScaler
import numpy as np

X = np.array([[10, 200], [15, 300], [14, 250]])

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

print(X_scaled)


➡️ После трансформации признаки будут нормализованы, что помогает улучшить сходимость и стабильность модели.

🗣️ StandardScaler — must-have шаг в пайплайне предварительной обработки данных для большинства классических ML-моделей


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
31
⚙️ Как я сделала свой первый AI-продукт с ChatGPT и капелькой любви

В этой статье я расскажу о моем опыте самостоятельного изучения основ Python и Machine Learning и создании первого проекта OneLove на базе собственной модели искусственного интеллекта (ИИ).

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
5
⚙️ Архитектура проекта автоматического обучения ML-моделей

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
51
🌌 Делай мини-проекты из собственных болей

Бесит, что каждый день ищешь одну и ту же команду в истории? Или вручную обрезаешь скриншоты? Это подсказки.

👉 Совет: собирай такие мелкие «боли» и превращай их в свои pet-проекты или утилиты. Это не только помогает себе, но и тренирует навык быстрого решения задач и проектирования под реальную жизнь.
Please open Telegram to view this post
VIEW IN TELEGRAM
8
⚙️ Как обучить русскоязычную модель рассуждений — LRM?

В статье разбор мультиязычных моделей рассуждений от Lightblue: как они научили DeepSeek "думать" на русском, откуда взяли датасет и зачем запускали LLM как фильтр рассудительности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
41
👩‍💻 Под капотом asyncio: принципы работы и ключевые концепции

Библиотека asyncio предоставляет полный набор инструментов для организации параллельного выполнения кода в Python с использованием концепции асинхронности. Но как на самом деле работает asyncio? Давайте разберемся в ключевых принципах и понятиях.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥21
👩‍💻 Задачка по Python

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

Очистка данных: удаление записей с пустыми значениями в столбцах price или quantity.

Агрегация: подсчет общего количества проданных товаров и общей суммы по каждому продукту.

➡️ Пример:

python app.py sales_data.csv — создает новый файл aggregated_data.csv с общей суммой и количеством проданных товаров по каждому продукту.

Решение задачи ⬇️

import pandas as pd
import sys

def clean_and_aggregate(file_path):
# Загружаем данные
data = pd.read_csv(file_path)

# Удаляем строки с пустыми значениями в колонках 'price' и 'quantity'
data.dropna(subset=['price', 'quantity'], inplace=True)

# Преобразуем колонки в числовой формат, ошибки игнорируем
data['price'] = pd.to_numeric(data['price'], errors='coerce')
data['quantity'] = pd.to_numeric(data['quantity'], errors='coerce')

# Удаляем строки с некорректными значениями
data.dropna(subset=['price', 'quantity'], inplace=True)

# Агрегируем данные
aggregated_data = data.groupby('product_id').agg(
total_quantity=('quantity', 'sum'),
total_sales=('price', 'sum')
).reset_index()

# Сохраняем в новый CSV
aggregated_data.to_csv('aggregated_data.csv', index=False)
print("Агрегация завершена. Данные сохранены в 'aggregated_data.csv'.")

if __name__ == "__main__":
if len(sys.argv) != 2:
print("Использование: python
app.py <путь к файлу CSV>")
sys.exit(1)

file_path = sys.argv[1]
clean_and_aggregate(file_path)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61