Интересуешься анализом данных и хочешь развивать карьеру в финтехе? Участвуй в бесплатной программе университета «Сириус» и Газпромбанк.Тех.
Что тебя ждет?
– Изучение Python, ML, pandas и streamlit
– Работа с реальными бизнес-сценариями и разработка MVP
– Поддержка ведущих экспертов на протяжении всего обучения
Старт обучения в декабре, по итогам программы каждый участник получит возможность стать частью команды Газпромбанка.
В карточках отвечаем на главные вопросы о программе. Подай заявку до 10 сентября по ссылке.
Реклама, Банк ГПБ (АО), ИНН: 7744001497, erid: 2Vtzqw8AzKb
Что тебя ждет?
– Изучение Python, ML, pandas и streamlit
– Работа с реальными бизнес-сценариями и разработка MVP
– Поддержка ведущих экспертов на протяжении всего обучения
Старт обучения в декабре, по итогам программы каждый участник получит возможность стать частью команды Газпромбанка.
В карточках отвечаем на главные вопросы о программе. Подай заявку до 10 сентября по ссылке.
Реклама, Банк ГПБ (АО), ИНН: 7744001497, erid: 2Vtzqw8AzKb
👎2❤1
Рассказываю, как мы с помощью ML искали литий-ионные проводники и покрытия для катодов. Материалы, потенциалы, немного науки и много практики — без занудства.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳1
Самая большая проблема больших проектов — то, что картину целиком никто не держит в голове.
👉 Совет: регулярно обновляй схемы, диаграммы или хотя бы заметки по архитектуре. Пусть у каждого будет карта системы. Без карты любой проект превращается в джунгли, даже если код отличный.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Разбирался, как ИИ «собирается» нас всех заменить. Спойлер: не спешит. Но уже сейчас кое-что делает лучше нас — и это не только котиков генерировать.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Покажу, как мы в Positive Technologies заменили формальные правила машинкой — чтобы чувствительные данные находились не по шаблону, а по смыслу. Меньше false negative, больше пользы.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Создайте модель на датасете 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}")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
• Всё, что вы хотели знать о Django Channels
• Сборка Python проекта с uv и Docker
• DE-1. DIY ассистент на LLM
• Ваши генераторные выражения сломаны: чиним и разбираемся
• Всё, что вы хотели знать о Django Channels
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3❤2
Пытаюсь вычленить шаблоны, по которым палятся тексты от нейросетей: гладкие, пустые, «умные». И придумать способ автоматом понять — писал ли это ИИ или просто скучный человек.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Создайте функцию
plot_distributions
, которая принимает DataFrame
и автоматически определяет числовые и категориальные признаки. Затем строит гистограммы или bar-графики в зависимости от типа данных. Это удобно для EDA (исследовательского анализа данных).Решение задачи
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
def plot_distributions(df, max_categories=10):
for column in df.columns:
plt.figure(figsize=(6, 4))
if pd.api.types.is_numeric_dtype(df[column]):
sns.histplot(df[column].dropna(), kde=True)
plt.title(f'Гистограмма: {column}')
elif df[column].nunique() <= max_categories:
df[column].value_counts().plot(kind='bar')
plt.title(f'Категории: {column}')
else:
print(f'Пропущен {column}: слишком много уникальных категорий')
continue
plt.tight_layout()
plt.show ()
# Пример использования
df = pd.DataFrame({
'age': [23, 45, 31, 35, 62, 44, 23],
'gender': ['male', 'female', 'female', 'male', 'male', 'female', 'female'],
'income': [40000, 50000, 45000, 52000, 61000, 48000, 46000]
})
plot_distributions(df)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Показываю, как модель с динамической силой команд предсказывает исходы матчей лучше классики. Не угадываю счёт, но выигрываю на ставках. У букмекеров шансы тают.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Эта статья не ответит на все вопросы, но мы пробежимся по всем основам глубокого машинного обучения, что бы создать примерную начальную картину без сильного углубления в детали.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
.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
👍4
Эта статья — не очередной «гайд по ML для новичков». Это мой личный взгляд на то, как бы я подошёл к обучению, если бы начинал с нуля уже сегодня , учитывая свой опыт работы в крупных компаниях, проваленные проекты, ошибки и победы..
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Расскажу, как из одного кадра получить свободную 3D-прогулку: доращиваем панорамы, меняем проекции и крутим ракурсы в VR с помощью кастомного модуля для ComfyUI.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
2025 год подходит к экватору, поэтому самое время посмотреть, как поменялись позиции крупнейших компаний-разработчиков. Но для начала предлагаю посмотреть на две иллюстрации. Первая — рейтинг ИИ от ресурса LMArena.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Задача классификации с BERT: научи модель BERT понимать настроение отзывов о ресторанах
Представь, что ты — владелец сети кафе. Каждый день приходят десятки отзывов: кто-то хвалит десерты, кто-то жалуется на медленное обслуживание. Нужно быстро понять, какие отзывы положительные, а какие — негативные.
🔵 Что у тебя уже есть:
Предобученная модель BERT, которая умеет работать с текстами, но пока не знает ничего про рестораны.
Исторические размеченные отзывы: positive и negative.
💬 Примеры отзывов:
— «Лучшие пельмени в городе!»
— «Ждали заказ 40 минут, больше не придём»
📌 Что нужно сделать:
- Загрузить датасет и разделить его на обучение и тест.
- Подготовить тексты для BERT: токенизация, паддинг, усечение.
- Дообучить модель на этих отзывах.
- Проверить, как она справляется на тесте (accuracy, F1).
- Протестировать на своих примерах — вбить пару «живых» отзывов и посмотреть предсказание.
🎯 Результат:
Модель, которая сама читает отзывы и понимает их настроение.
После курса «NLP / Natural Language Processing» от OTUS вы будете делать такие вещи играючи — и не только с ресторанами. Пройдите короткое вступительное тестирование и получите скидку на обучение: https://vk.cc/cOLspv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Представь, что ты — владелец сети кафе. Каждый день приходят десятки отзывов: кто-то хвалит десерты, кто-то жалуется на медленное обслуживание. Нужно быстро понять, какие отзывы положительные, а какие — негативные.
🔵 Что у тебя уже есть:
Предобученная модель BERT, которая умеет работать с текстами, но пока не знает ничего про рестораны.
Исторические размеченные отзывы: positive и negative.
💬 Примеры отзывов:
— «Лучшие пельмени в городе!»
— «Ждали заказ 40 минут, больше не придём»
📌 Что нужно сделать:
- Загрузить датасет и разделить его на обучение и тест.
- Подготовить тексты для BERT: токенизация, паддинг, усечение.
- Дообучить модель на этих отзывах.
- Проверить, как она справляется на тесте (accuracy, F1).
- Протестировать на своих примерах — вбить пару «живых» отзывов и посмотреть предсказание.
🎯 Результат:
Модель, которая сама читает отзывы и понимает их настроение.
После курса «NLP / Natural Language Processing» от OTUS вы будете делать такие вещи играючи — и не только с ресторанами. Пройдите короткое вступительное тестирование и получите скидку на обучение: https://vk.cc/cOLspv
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❤2
Рассказываю, почему статичные пороги — не выход, когда дело доходит до пользовательской активности. Покажу, как в таких случаях спасает обнаружение аномалий.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Вам передаётся сбалансированный набор объектов из 3-х различных классов (например, "cat", "dog", "bird").
Каждый объект представлен вектором признаков (list of floats). Один объект — подброшенный и не принадлежит ни одному из трёх известных классов: он отличается распределением.
Ваша задача — реализовать функцию
detect_outlier(data: List[List[float]], labels: List[str]) -> int
, которая возвращает индекс выброса в списке. Гарантируется, что в labels один лейбл может быть "unknown", а может и вовсе отсутствовать — выброс может быть замаскирован.Метрика — средняя евклидова дистанция до других представителей того же класса должна быть на порядок выше, чем у нормальных объектов.
Пример данных:
data = [
[1.1, 0.9], [1.2, 1.0], [0.9, 1.1], # cat
[3.0, 3.1], [2.9, 3.0], [3.1, 2.9], # dog
[5.0, 5.1], [5.1, 5.0], [8.0, 8.0], # last — выброс
]
labels = ["cat", "cat", "cat", "dog", "dog", "dog", "bird", "bird", "bird"]
Решение задачи
import numpy as np
from collections import defaultdict
def detect_outlier(data, labels):
data = np.array(data)
grouped = defaultdict(list)
for i, label in enumerate(labels):
grouped[label].append(i)
outlier_idx = -1
max_score = -1
for i, point in enumerate(data):
label = labels[i]
others = [j for j in grouped[label] if j != i]
if not others:
continue
distances = [np.linalg.norm(point - data[j]) for j in others]
avg_dist = np.mean(distances)
if avg_dist > max_score:
max_score = avg_dist
outlier_idx = i
return outlier_idx
# Тест
print(detect_outlier(data, labels)) # ➜ 8
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
• Как продакт-менеджеру учить английский: план, сроки, советы
• Иллюзия прогресса: почему мне не удалось дать студентам-айтишникам реальный опыт
• Interview copilots: как кандидаты используют ChatGPT на интервью
• Моя история входа в IT: как я ломал стены своих ограничений
• Как мы разработали систему грейдинга для системных аналитиков
Please open Telegram to view this post
VIEW IN TELEGRAM