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
👩‍💻 Задачка по Python

Напишите функцию, которая принимает список email-адресов и возвращает уникальные домены из этого списка. Домен — это часть адреса после символа @.

➡️ Пример:

["user1@example.com", "user2@test.com", "user3@example.com", "user4@sample.com"]

#{"example.com", "test.com", "sample.com"}


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

def get_unique_domains(emails):
domains = {email.split('@')[1] for email in emails}
return domains

# Пример использования:
emails = ["
user1@example.com", "user2@test.com", "user3@example.com", "user4@sample.com"]
result = get_unique_domains(emails)
print(result) # Ожидаемый результат: {'
example.com', 'test.com', 'sample.com'}
Please open Telegram to view this post
VIEW IN TELEGRAM
3👎1
🤔 Prompt Me One More Time. Учим LLM строить графы знаний из текстов

Статья описывает метод, разработанный для автоматического наполнения графов знаний с помощью LLM, что снижает вероятность «галлюцинаций» и повышает точность ответов. Решение Prompt Me One More Time подробно представлено на TextGraphs-17 конференции ACL-2024.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3
👩‍💻 Задачка по 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
👍42
🔎 Подборка вакансий для джунов

ML\AI & Python Developer (Junior)
🟢Python, ML (scikit-learn, PyTorch, TensorFlow или аналоги), API, интеграции, Pandas, NumPy
🟢от 60 000 до 80 000 ₽ | 1–3 года

Junior Data Analyst
🟢SQL, Microsoft Excel, Python (ETL), визуализация данных
🟢от 80 000 до 120 000 ₽ | 1–3 года

Junior Data Analyst
🟢SQL, базы данных (MySQL, PostgreSQL), Python (pandas, numpy, matplotlib), инструменты визуализации данных (Looker Studio, Metabase, Power BI и др.)
🟢до 87 000 ₽ | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
2
➡️ Семантическая сегментация: самый полный гайд

Статья раскрывает, как семантическая сегментация помогает машинам «видеть», разбивая изображение на классы объектов. Обсуждаются её применение в автономных авто, медицине и обработке спутниковых снимков для точного распознавания контекста.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
👩‍💻 Как работает модуль os в Python для работы с файловой системой?

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

➡️ Пример:

import os

# Получение текущей директории
current_dir = os.getcwd()
print('Текущая директория:', current_dir)

# Создание новой директории
os.mkdir('new_folder')
print('Создана директория new_folder')


🗣 os позволяет удобно и кроссплатформенно работать с файловой системой, выполнять команды и настраивать окружение.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
📝 Подборка вакансий для мидлов

Data Engineer (Middle)
Python, SQL, PostgreSQL, Kubernetes, Apache Kafka, MongoDB, RabbitMQ
до 180 000 ₽ | 1–3 года

Data Scientist (middle)
SQL, PostgreSQL, Apache Spark, Математическая статистика, A/B тестирование
Уровень дохода не указан | 1–3 года

Data Scientist (Моделирование РБ)
SQL, Python, Apache Spark
Уровень дохода не указан | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🤔 3750 дней разработки AI или почему боты всё ещё не захватили покер

Статья рассматривает создание AI для покера (Техасского безлимитного холдема) и анализирует его сложность как модели бизнес-отношений. Обсуждаются метрики и стратегии, которые игроки используют в изменяющемся контексте для принятия решений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
👩‍💻 Разрабатываем первое AI приложение

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

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

Senior Data Scientist (LLM)
Python, NLP, PyTorch
Уровень дохода не указан | Старший (Senior)

Senior Data Scientist
Python, NLP, PyTorch, Linux, Pandas
Уровень дохода не указан | Старший (Senior)

Data-инженер DWH в Маркет
Python, SQL
Уровень дохода не указан | Старший (Senior)
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🤔 Практика: мой опыт интеграции более 50 нейронных сетей в один проект

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥1
Что такое Overfitting и как его избежать в моделях машинного обучения?

Overfitting (переобучение) возникает, когда модель слишком хорошо запоминает обучающие данные, включая шум, и теряет способность обобщать информацию на новых данных. Это приводит к высокому качеству на обучающем наборе, но плохим результатам на тестовых данных.

➡️ Основные способы предотвращения Overfitting:

1. Регуляризация:
• L1 и L2-регуляризация добавляют штраф к сложным моделям.
• Уменьшают коэффициенты модели, предотвращая избыточное подстраивание.

2. Dropout (для нейронных сетей):
• Исключение случайных нейронов на этапе обучения.

3. Снижение сложности модели:
• Использование меньшего числа признаков или более простых алгоритмов.

4. Увеличение данных:
• Генерация новых данных или увеличение объёма обучающей выборки.


➡️ Пример:

from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes

# Загружаем данные
data = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)

# Создаём модель с регуляризацией (Ridge)
ridge = Ridge(alpha=1.0)
ridge.fit(X_train, y_train)

# Оцениваем качество
train_score = ridge.score(X_train, y_train)
test_score = ridge.score(X_test, y_test)
print(f"Train Score: {train_score}, Test Score: {test_score}")


🗣️ В этом примере Ridge-регрессия с параметром регуляризации alpha=1.0 помогает предотвратить переобучение, улучшая обобщающую способность модели.

🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
➡️ Путь разметки данных для NER: от Open Source до Prodigy

Статья посвящена созданию обучающей выборки для NER. Описан опыт разметки данных с использованием Open Source инструментов и Prodigy, профессионального решения для ускорения процесса создания наборов данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🖥 Руководство по созданию приложения для поиска данных на основе агента GraphRAG

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1
🧩 Работай с кодом, как с историей

Читаешь старый код и не понимаешь, как он дошёл до жизни такой?

👉 Совет: анализируй коммиты, историю изменений и комментарии к задачам. Это поможет понять, почему код стал таким, а не просто принять его как данность. Иногда не код плохой — просто контекст утерян.
Please open Telegram to view this post
VIEW IN TELEGRAM
12
🔎 Подборка зарубежных вакансий

ML Engineer / AI Data Scientist (AI Intent Marketing)
🟢Python, Trino/Spark
🟢от 3 000 до 7 000 $ | более 6 лет

Game Data Analyst
🟢SQL, Python, R
🟢Уровень дохода не указан | 1–3 года

Data Engineer
🟢AirFlow, Python, Linux
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
⚙️ Умножение троичных матриц для нейросетей

Статья исследует использование троичных значений (-1, 0, 1) в нейросетевых матрицах. Рассматриваются методы хранения тритов с использованием 32-битной арифметики и подходы к их быстрому умножению через оптимизацию памяти.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
👩‍💻 Задачка по 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
5