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

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

РКН: https://vk.cc/cJPGXD
Download Telegram
Как работает метод feature_importances_ в Python и зачем он нужен в Machine Learning?

Метод feature_importances_ — это атрибут некоторых моделей машинного обучения в библиотеке scikit-learn, который позволяет определить, какие признаки (фичи) наиболее влияют на предсказания модели.

Этот метод возвращает значение важности для каждого признака, показывая, как сильно он влияет на конечный результат. Его использование особенно полезно для деревьев решений и ансамблевых моделей, таких как RandomForest и GradientBoosting.

➡️ В примере ниже мы используем RandomForest для анализа важности признаков и визуализации результатов.

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
import pandas as pd

# Загрузка данных
data = load_iris()
X, y = data.data, data.target

# Создание и обучение модели
model = RandomForestClassifier()
model.fit(X, y)

# Получение и визуализация важности признаков
feature_importances = pd.Series(model.feature_importances_, index=data.feature_names)
feature_importances.sort_values(ascending=False).plot(kind='bar')


🗣 Использование feature_importances_ помогает определить, какие признаки стоит использовать, исключить малозначимые фичи и сделать модель более интерпретируемой.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1🐳1
📝 Подборка вакансий для мидлов

Бизнес-аналитик / Системный аналитик
BPMN, Анализ данных, UML, Анализ требований, Проектирование, Разработка ТЗ, BI
до 150 000 ₽ | от 3 лет​

Data Analyst
Python, Apache Spark, SQL, Apache Hadoop
Уровень дохода не указан | от 2 лет​

Data Scientist (риски)
Машинное обучение, SQL, Python
Уровень дохода не указан | от 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚙️ Оценка LLM: метрики, фреймворки и лучшие практики

Статья объясняет, почему оценка LLM важна для бизнеса: модели ИИ не всегда достигают цели и нуждаются в доработке. Разбираются ключевые метрики, инструменты и лучшие практики для повышения надежности и точности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1🐳1
👩‍💻 Задачка по 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
5👍3
⚙️ Как мы создаём Visionatrix: упрощая ComfyUI

В этой статье мы расскажем о нашем опыте работы с ComfyUI и разработке Visionatrix — надстройки, которая упрощает генерацию медиа. Мы обсудим ключевые проблемы, с которыми сталкиваются пользователи, наш подход к их решению, а также вкратце поделимся тем, как мы использовали ChatGPT и Claude для ускорения разработки в условиях ограниченного времени.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤔 Насколько хороши LLM?

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
🔎 Подборка вакансий для сеньоров

Senior Data Engineer
🟢ClickHouse, Aerospike, TiDB, Grafana, Kafka
🟢до 5 000 $ | 3–6 лет​

Senior Data Engineer / Data Platform Architect
🟢S3, MinIO, Parquet, DeltaLake, PostgreSQL, ClickHouse, Python, Airflow, dbt, Docker, Kubernetes, Kafka, RabbitMQ
🟢до 350 000 ₽ | 3–6 лет​

Senior Data Scientist (LLM)
🟢Python, глубокое обучение, LLM, чат-боты
🟢от 350 000 до 450 000 ₽ | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚙️ Под микроскопом: AI Product Hack

Статья анализирует результаты AI Product Hack, рассматривая спорное судейство и кейс компании Raft по мониторингу токсичного контента в AI-продуктах. Исследуются риски и последствия неконтролируемого поведения LLM в реальных проектах.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
👩‍💻 Как работает __name__ == "__main__" в Python?

Конструкция if __name__ == "__main__" определяет, выполняется ли скрипт как основная программа или импортируется в качестве модуля. Это позволяет запускать код только при непосредственном запуске скрипта, исключая его выполнение при импорте.

➡️ Пример:
def greet():
print("Hello from greet!")

if __name__ == "__main__":
greet() # Этот вызов выполнится только при запуске скрипта напрямую


🗣 В этом примере greet() будет вызвана, если файл запускается напрямую. Если скрипт импортируется как модуль, greet() не вызовется, сохраняя модульную структуру кода.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
👀 Распознавание ж/д пикетных столбиков по фотографиям с беспилотника на основе PyTorch и YOLOv5

Статья раскрывает процесс использования БПЛА и нейросетей для точного распознавания объектов на ортофотопланах. Описаны этапы подготовки данных, разметки и обучения сети на примере поиска пикетных столбиков на ж/д перегонах. Исходный код доступен на GitHub.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
✔️ Простой и быстрый тест LLM для прототипа: сравниваем 16 open-source-моделей на запросе с разной температурой

В статье рассказывается, как быстро протестировать 16 LLM для создания текстовых прототипов, даже если вы не в теме ML. Берём несколько моделей, сравниваем результаты, оцениваем, подходит ли под задачу.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
🕳 Не избегай «странных» багов — изучай их до конца

Столкнулся с багом, который исчезает после перезапуска? Или ведёт себя непоследовательно? Проще списать на случайность. Но это ловушка.

👉 Совет: такие баги — твои лучшие учителя. Разбери их до основания, даже если потратишь на это день. Ты прокачаешься в логике, научишься работать с пограничными случаями и будешь увереннее в своём коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥1
🛍 Как базовые знания кодинга и нейросетей сэкономили нам больше 15 млн ₽ на Wildberries [скрины]

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

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

Напишите функцию, которая принимает список чисел и возвращает все значения, которые являются выбросами. Выбросы определяются как значения, которые находятся ниже первого квартиля (Q1) минус 1.5 * IQR или выше третьего квартиля (Q3) плюс 1.5 * IQR, где IQR — межквартильный размах.

➡️ Пример:

Входной список:
[10, 12, 14, 15, 15, 16, 16, 16, 17, 18, 19, 100]

Ожидаемый вывод:
[100]


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

import numpy as np

def find_outliers(data):
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
return [x for x in data if x < lower_bound or x > upper_bound]

# Пример использования:
input_data = [10, 12, 14, 15, 15, 16, 16, 16, 17, 18, 19, 100]
result = find_outliers(input_data)
print(result) # Ожидаемый результат: [100]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
🖥 Руководство по созданию приложения для поиска данных на основе агента GraphRAG

Статья описывает приложение, объединяющее GraphRAG и AutoGen-агентов с локальными LLM от Ollama для автономного встраивания и вывода. Рассмотрены ключевые аспекты: интеграция знаний, настройка LLM, вызов функций и интерактивный интерфейс.

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

Напишите функцию, которая принимает DataFrame и заменяет отсутствующие значения (NaN) в каждом числовом столбце на среднее значение этого столбца. Если столбец содержит только NaN, оставьте его без изменений.

➡️ Пример:

   feature1  feature2  feature3
0 1.0 10.0 NaN
1 2.0 NaN NaN
2 NaN 30.0 NaN
3 4.0 40.0 NaN

feature1 feature2 feature3
0 1.00 10.0 NaN
1 2.00 26.7 NaN
2 2.33 30.0 NaN
3 4.00 40.0 NaN


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

import pandas as pd

def fill_missing_with_mean(df):
numeric_columns = df.select_dtypes(include=['float', 'int'])
for column in numeric_columns:
if df[column].notna().any(): # Проверяем, есть ли значения не NaN
df[column] = df[column].fillna(df[column].mean())
return df

# Пример использования:
data = pd.DataFrame({
'feature1': [1.0, 2.0, None, 4.0],
'feature2': [10.0, None, 30.0, 40.0],
'feature3': [None, None, None, None]
})

result = fill_missing_with_mean(data)
print(result)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51👍1
🔎 Подборка вакансий для джунов

Data engineer (junior)
🟢SQL, Linux, Scala (желательно), понимание ООП, ФП, MapReduce, архитектуры Hadoop YARN, HDFS, Apache Spark
🟢от 70 000 до 140 000 ₽ | Без опыта​

DATA-аналитик/Аналитик данных (Junior)
🟢T-SQL (MS SQL), Python (pandas, SQLAlchemy, requests), ETL, Excel, Power BI, DAX (приветствуется)
🟢95 000 ₽ | 1–3 года

Data Scientist (Junior)
🟢Python, SQL, машинное обучение, статистика, анализ данных
🟢до 150 000 ₽ | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🖥 Ведущий разработчик ChatGPT и его новый проект — Безопасный Сверхинтеллект

Кратко о том, как Суцкевер стал не просто сооснователем OpenAI, а мозгом ChatGPT, почему ушёл в новый проект и зачем вообще создавать "безопасный сверхинтеллект".

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎32🔥2
⚙️ Что такое One-Hot Encoding в Data Science и зачем он используется?

One-Hot Encoding — это способ преобразования категориальных признаков в числовые. Он создаёт бинарные столбцы для каждого уникального значения категории. Это важно, потому что большинство алгоритмов машинного обучения не работают напрямую с текстовыми значениями.

➡️ Пример:

import pandas as pd

df = pd.DataFrame({'Цвет': ['красный', 'синий', 'зелёный']})

encoded = pd.get_dummies(df)
print(encoded)


🗣️ В этом примере get_dummies() преобразует колонку Цвет в три бинарных признака: Цвет_красный, Цвет_синий, Цвет_зелёный. Для каждой строки только один из них равен 1, остальные — 0.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1