Статьи на тему data science, machine learning, big data, python, математика, нейронные сети, искусственный интеллект (artificial intelligence) Англоязычный канал по DS и Machinelearning -https://t.me/ds_international По сотрудничеству - @g_abashkin
⚙️ Взлом ИИ-асситентов. Абсолютный контроль: выдаём разрешение от имени системы
В статье рассказывают, как уязвимость в ИИ позволяет обмануть систему команд: если подделать приказ, модель выполнит даже запрещённое. Неужели DAN снова на свободе?
Читать...
👩💻 Чем отличается метод .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() удобно использовать для обработки данных с сохранением исходной структуры.
🔎 Подборка вакансий для джунов
Младший специалист по анализу данных / Junior Data Scientist
🟢Python, R, Математическая статистика, Регрессионный анализ
🟢Уровень дохода не указан | 1–3 года
Data Analyst (Junior)
🟢SQL, Python, A/B тесты, BI, ML Base, EDA
🟢от 70 000 ₽ | Без опыта
Junior Data Specialist
🟢SQL, Excel, ETL, DWH, Power BI, Tableau, Google Data Studio
🟢от 70 000 до 90 000 ₽ | 1–3 года
👩💻 Постройте простую модель классификации с использованием scikit-learn
Создайте модель на датасете Iris, обучите классификатор KNeighborsClassifier
и сделайте предсказание. Это классическая задача для первых шагов в машинном обучении.
Решение задачи🔽
from sklearn.datasets import load_irisЧитать полностью…
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# Загружаем данные
iris = load_iris()
X, y = iris.data, iris.target
# Делим на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Обучаем модель
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)
# Предсказание
y_pred = model.predict(X_test)
# Оценка качества
print(f"Точность: {accuracy_score(y_test, y_pred):.2f}")
🔥 Самые интересные статьи за последние дни:
• Смарт-функции в Алисе: как LLM помогает понять, чего хочет пользователь
• Сбер выкладывает GigaChat Lite в открытый доступ
• История YOLO – самой известной архитектуры компьютерного зрения
• Магия простоты: как мы улучшили отображение общественного транспорта на карте
• Обучение и fine-tuning моделей простым языком: зачем, как, где
🤔 Выбираем MLOps инструменты с учётом зрелости команды
В статье разбирают, как выбрать MLOps-инструменты под уровень зрелости команды: почему решений много, но не все подходят, и как не утонуть в многообразии вариантов.
Читать...
🌱 Не бойся признавать, что чего-то не знаешь
Легко притворяться экспертом и искать решение вслепую, но это затягивает процесс и создаёт ложное впечатление о твоих знаниях.
👉 Совет: если не знаешь ответа — так и скажи. Вопросы — не признак слабости, а стремления разобраться. Более того, честность повышает доверие в команде. Никто не знает всего — даже опытные разработчики иногда гуглят основы.
➡️ Как Duolingo юзает машинное обучение для прокачки английского: кратко и по делу
В статье рассказывают, как ИИ сделал Duolingo фабрикой языковых курсов: генерация контента, проверка ответов, адаптация заданий — всё на автомате. Учить стало быстрее.
Читать...
🧠 Распознавание орхоно-енисейских рунических надписей методами машинного обучения
В статье рассказывают о расшифровке орхоно-енисейских рун: древние тексты на камне, трудности интерпретации и идеи автоматизации для точности и скорости анализа.
Читать...
🔎 Подборка вакансий для сеньоров
Senior Data Scientist (Recommender Systems)
🟢Python, PyTorch, PySpark, ClickHouse, Jenkins, Airflow, ONNX
🟢от 5 000 до 6 500 € | 3–6 лет
Senior Data Analyst - BI Developer
🟢SQL, Power BI, Python, DataLens, Jupyter
🟢Уровень дохода не указан | 3–6 лет
Senior Data Engineer
🟢SQL, Python, GreenPlum, ClickHouse, Kafka, RabbitMQ, Docker, Kubernetes, Scala, Java
🟢Уровень дохода не указан | более 6 лет
Вебинар по техническому анализу финансовых рынков 📊
Приглашаем Data Scientist’ов, разработчиков и аналитиков данных на бесплатный вебинар 14 мая, начало в 18:00 мск.
🔍 На вебинаре вы научитесь анализировать графики и применять ключевые индикаторы для прогнозирования. Освоите типы графиков, тренды, паттерны и важнейшие технические индикаторы, такие как MA, MACD, RSI и многие другие.
Урок поможет вам повысить точность ваших торговых решений, используя надежные методы анализа.
Запишитесь на открытый урок и получите скидку на большой онлайн-курс «ML для финансового анализа»: https://vk.cc/cLJ4fQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👩💻 Задачка по Python
Создайте Python-приложение, которое принимает путь к CSV-файлу с историческими данными о ценах акций (дата, цена закрытия) и предсказывает, будет ли цена акций расти или падать на следующий день, используя простую линейную регрессию. Программа должна выводить прогноз в консоль и сохранять модель в файл model.pkl
.
➡️ Пример:
• python app.py predict_stock prices.csv
— предсказывает изменение цены акций на следующий день.
Решение задачи ⬇️
import sysЧитать полностью…
import pandas as pd
from sklearn.linear_model import LinearRegression
import pickle
def predict_stock(file):
data = pd.read_csv(file)
X = data.index.values.reshape(-1, 1)
y = data['Close'].values
model = LinearRegression()
model.fit(X, y)
next_day = [[len(X)]]
prediction = model.predict(next_day)
with open('model.pkl', 'wb') as f:
pickle.dump(model, f)
print(f'Прогноз на следующий день: {"Рост" if prediction > y[-1] else "Падение"}')
if __name__ == "__main__":
if len(sys.argv) != 3 or sys.argv[1] != 'predict_stock':
print('Использование: python app.py predict_stock <файл.csv>')
else:
predict_stock(sys.argv[2])
🔎 Подборка вакансий для мидлов
Middle Data Analyst
🟢SQL, Python, Power BI, Tableau, FineBI
🟢Уровень дохода не указан | 1–3 года
Аналитик данных / Data Analyst
🟢SQL, Python, Apache Airflow, Clickhouse, Jupyter, Git, DataLens
🟢от 150 000 до 300 000 ₽ | 3–6 лет
Data Scientist (Ranking&Search)
🟢Python, PySpark, Hive, SQL, PyTorch, CatBoost, Airflow, Docker, Hadoop
🟢Уровень дохода не указан | 3–6 лет
❓ Как обработать пропущенные данные?
Пропущенные данные — частая проблема в Data Science, особенно в реальных данных. Чтобы правильно обработать такие данные, можно использовать стратегии заполнения пропусков (например, средним значением или медианой) или удалить строки/столбцы с пропусками.
➡️ Пример:
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8]}
df = pd.DataFrame(data)
# Заполнение пропусков средним значением
df['A'].fillna(df['A'].mean(), inplace=True)
print(df)
🗣️ Пропущенные данные могут искажать результаты анализа, поэтому их нужно обрабатывать перед моделированием.Читать полностью…
➡️ Что такое технология TTS, как устроена и каких сферах используется синтез речи
Вместе с Григорием Стерлингом, лидом команды TTS в SberDevices, разбираемся, как устроена технология, как разрабатывают синтезаторы речи и что нужно знать, чтобы работать в этой сфере.
Читать...
🔎 Подборка вакансий для мидлов
Middle/Senior Data Scientist в команду ETA/RTA
🟢Python, SQL, Pandas, Scikit-learn, XGBoost, LightGBM, CI/CD, Docker
🟢Уровень дохода не указан | 3–6 лет
Middle ML Engineer
🟢Python, Go, SQL, PyTorch, TensorFlow, Airflow, Triton Inference Server, Docker, Kubernetes
🟢Уровень дохода не указан | 1–3 года
Data Scientist/Разработчик машинного обучения (ML, NLP, LLM) Middle
🟢Python, numpy, pandas, sklearn, PyTorch, transformers, NLP, LLM
🟢Уровень дохода не указан | 1–3 года
⚙️ Model Context Protocol (MCP): как подружить нейросети со всеми API за пару кликов
В статье рассказывают, как новый протокол MCP от Anthropic стандартизирует взаимодействие LLM-агентов с сервисами и друг с другом. Грядёт эпоха упорядоченного ИИ-хаоса.
Читать...
⚡️Создаём свою нейросеть в PyTorch
Хотите быстро разобраться в PyTorch и написать свою нейросеть? Мы подготовили для вас вебинар, где на практике разберём все этапы создания ML-модели.
Вебинар проведет Владислав Агафонов — ML-инженер, ранее работал в Yandex и Huawei.
Что будет на вебинаре?
🟠Установим PyTorch в Google Colab и настроим работу на бесплатном GPU;
🟠Поймём, что такое тензоры и почему они — фундамент всех нейросетей;
🟠Скачаем готовый датасет, разберём его структуру и подготовим для обучения;
🟠Научимся использовать DataLoader для эффективной загрузки данных;
🟠Пошагово соберём облегчённую версию классической свёрточной нейронной сети (CNN);
🟠Обучим и протестируем модель.
🕗 Встречаемся 14 мая в 18:30 по МСК, будет много практики, ответы на вопросы и полезные инсайты от эксперта.
😶Зарегистрироваться на бесплатный вебинар
🧠 Языковые модели против мошенников: как LLM помогают бороться с отмыванием денег и финансовым мошенничеством
В статье разбирают, как LLM помогает банкам бороться с мошенничеством: от отслеживания подозрительных транзакций до анализа фишинговых схем — умная защита в действии.
Читать...
👩💻 Напишите функцию для расчёта 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...
👩💻 Предсказание цены дома по площади
Построить сверточную нейронную сеть (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}")
🧠 Создаем свой RAG: введение в LangGraph
В статье объясняют, что такое RAG и как использовать LangGraph для генерации с дополненной выборкой: основы, примеры и подготовка к созданию собственных RAG-систем.
Читать...
❓ Как работает метод 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_ помогает определить, какие признаки стоит использовать, исключить малозначимые фичи и сделать модель более интерпретируемой.
📈 Подборка статей для вашей карьеры
• «Снова упала?» Как поднять самооценку и зачем мы сравниваем себя с другими, даже если от этого больно
• Из учителя в QA: мой путь в IT
• Рынок дата-инженеров и прогноз на 2025
• Как сделать резюме, которое дойдёт до работодателя. Фильтры ATS в 2025 году
• Ошибайся смело: жизненные уроки из мира machine learning
🚀 Правда или нет, что Google победил Cursor?
В статье сравнивают два AI-инструмента для разработки: Firebase Studio от Google и Cursor от Anysphere. Кто круче — облачная платформа или интегрированный редактор?
Читать...
➡️ Самые интересные статьи за последние дни:
• Эксперимент: даём ChatGPT полный доступ к компьютеру
• Правильный путь создания python-библиотеки: от создания до публикации
• Запускаем Yolo на пятирублёвой монете или Luckfox Pico Mini
• Более мощное семейство моделей YandexGPT 4: рост качества ответов, длинный контекст, пошаговые рассуждения
• Как мы обучили Mistral 7B русскому языку и адаптировали для объявлений Авито
☁️ Как обучить ИИ в облаке
Сегодня мы хотим поделиться с вами нашим успешным кейсом, который наглядно демонстрирует, как облачные технологии могут значительно улучшить и ускорить процессы разработки и обучения ИИ.
Читать...
🧑🏻💻Как улучшить точность рекомендаций в своих проектах?
На открытом вебинаре 12 мая в 20:00 МСК вы узнаете, как работает обучение ранжированию, что такое функции потерь и как они влияют на качество рекомендаций. Понимание этих функций — ключ к эффективному предсказанию предпочтений пользователей.
Освойте практику на реальных данных с использованием модели BPRMF и получите ценные знания, которые помогут улучшить ваши результаты.
⚡️Присоединяйтесь к открытому уроку и получите скидку на программу обучения «Рекомендательные системы»: https://otus.pw/BECI8/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, erid: 2VtzqxFS5mV
📨 Пример использования программы для парсинга e-mail адресов с сайтов, созданный ИИ
Сегодня делимся программой для парсинга e-mail с сайтов, созданной за 30 минут с помощью ИИ от Rokitok. Это показывает, как ИИ ускоряет задачи, на которые раньше уходили дни или большие бюджеты.
Читать...
👩💻 Задачка по Python
Создайте Python-приложение, которое принимает набор данных с несколькими признаками и определяет наиболее важные признаки для предсказания целевой переменной с помощью модели RandomForest
. Программа должна выводить результаты в виде списка признаков, отсортированных по важности.
➡️ Пример:
• python app.py data.csv
— выводит важные признаки.
Решение задачи ⬇️
import pandas as pdЧитать полностью…
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
def feature_importance(file):
data = pd.read_csv(file)
X = data.drop(columns=['target'])
y = data['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestClassifier()
model.fit(X_train, y_train)
importance = pd.Series(model.feature_importances_, index=X.columns).sort_values(ascending=False)
print("Важные признаки:\n", importance)
if __name__ == "__main__":
import sys
if len(sys.argv) != 2:
print("Использование: python app.py <файл.csv>")
else:
feature_importance(sys.argv[1])