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

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

РКН: https://vk.cc/cJPGXD
Download Telegram
⚙️ Google представила Veo 3 Fast — более быструю и дешевую версию Veo 3. Что такое Veo 3 Fast и как ей пользоваться

В этой статье я расскажу, что такое Veo 3 Fast, как получить к ней доступ и использовать, а также покажу примеры видео и выскажу свои соображения.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
⚙️ Как проверять ИИ гипотезы быстро и дешево – гайд в CRISP-DM Light фреймворк

Рассказывается про CRISP-DM Light — фреймворк, который помогает быстро проверять ML-гипотезы и не сливать бюджеты впустую. Меньше бюрократии, больше пользы — и шанс дойти до прода.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
52
👩‍💻 Удаление "псевдослучайных" признаков

Вам дана матрица X — список списков с числовыми признаками. Один или несколько признаков были случайно сгенерированы, и не несут полезной информации (то есть, они не коррелируют ни с одним другим).

Нужно реализовать функцию drop_random_features(X, threshold=0.05), которая вернёт индексы признаков, слабо коррелирующих со всеми остальными (по модулю корреляции Пирсона).

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

Цель:

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


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

import numpy as np

def drop_random_features(X, threshold=0.05):
X = np.array(X)
n_features = X.shape[1]
to_drop = []

for i in range(n_features):
max_corr = 0
for j in range(n_features):
if i != j:
corr = abs(np.corrcoef(X[:, i], X[:, j])[0, 1])
max_corr = max(max_corr, corr)
if max_corr < threshold:
to_drop.append(i)

return to_drop

# Пример использования
np.random.seed(42)
X = np.column_stack([
np.linspace(1, 10, 100), # линейный
np.linspace(10, 1, 100), # обратный
np.random.rand(100), # шум
np.linspace(5, 50, 100) + np.random.rand(100) * 0.1 # почти линейный
])

print(drop_random_features(X, threshold=0.2))
# Ожидаемый результат: [2] — третий признак случайный
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4
⚙️ От месяцев к минутам. Как мы применяем машинное обучение для поиска перспективных литий-ионных проводников

Рассказываю, как мы с помощью ML искали литий-ионные проводники и покрытия для катодов. Материалы, потенциалы, немного науки и много практики — без занудства.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1
⚙️ ИИ-агенты в современных IT-решениях

Разбирался, как ИИ «собирается» нас всех заменить. Спойлер: не спешит. Но уже сейчас кое-что делает лучше нас — и это не только котиков генерировать.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3
⚙️ От хаоса к порядку: как ML помогает искать и защищать конфиденциальную информацию

Покажу, как мы в Positive Technologies заменили формальные правила машинкой — чтобы чувствительные данные находились не по шаблону, а по смыслу. Меньше false negative, больше пользы.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3
⚙️ Что такое logging в Python?

logging — это встроенный модуль Python для создания логов, которые помогают отлаживать и мониторить работу приложений.

➡️ Пример:

import logging

# Настройка базового уровня логирования
logging.basicConfig(level=logging.INFO)

# Создание лога
logging.info("Приложение запущено")
logging.warning("Это предупреждение!")
logging.error("Произошла ошибка")


🗣️ В этом примере модуль logging создаёт сообщения разного уровня важности. Логирование позволяет отслеживать работу приложений и находить проблемы в коде.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍1
⚙️ Похож ли ваш текст на ИИ?

Пытаюсь вычленить шаблоны, по которым палятся тексты от нейросетей: гладкие, пустые, «умные». И придумать способ автоматом понять — писал ли это ИИ или просто скучный человек.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4
⚙️ Прогнозирование исходов футбольных матчей в реальном времени с помощью байесовской модели

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🐳3
⚖️ Сложность ≠ крутость

Есть соблазн показать уровень, написав сложную, многослойную, «умную» реализацию. Но это оружие против команды.

👉 Совет: выбирай самое простое решение, которое работает надёжно. Писать сложно умеют многие. Писать просто, понятно и устойчиво — редкий навык, который отличает зрелых инженеров от просто технарей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥145
👩‍💻 Постройте простую модель классификации с использованием 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}")
Please open Telegram to view this post
VIEW IN TELEGRAM
4
⚙️ Как устроено глубокое обучение нейросетей

Эта статья не ответит на все вопросы, но мы пробежимся по всем основам глубокого машинного обучения, что бы создать примерную начальную картину без сильного углубления в детали.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
31🔥1🐳1
👩‍💻 Построй визуализацию распределения признаков с автоматической категоризацией

Создайте функцию 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.noscript(f'Гистограмма: {column}')
elif df[column].nunique() <= max_categories:
df[column].value_counts().plot(kind='bar')
plt.noscript(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
3🔥3
⚙️ Что бы я сделал, если бы сегодня начинал учить Data Science / ML?

Эта статья — не очередной «гайд по ML для новичков». Это мой личный взгляд на то, как бы я подошёл к обучению, если бы начинал с нуля уже сегодня , учитывая свой опыт работы в крупных компаниях, проваленные проекты, ошибки и победы..

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
92
👩‍💻 Восстановление категориального признака по шумному числовому вектору

У вас есть категориальный признак (например, "A", "B", "C"), который был закодирован в виде One-Hot Encoding, а затем данные были искажены случайным шумом.

Реализуйте функцию recover_category(matrix, labels), которая по входной матрице matrix (список списков, где каждая строка — вектор с плавающими значениями после шума) и списку labels (названия категорий в нужном порядке) должна восстановить название исходной категории для каждой строки — ту, у которой была 1 до добавления шума.

Шум малый, но может нарушать точные значения (например, 1.0 становится 0.91, 0.0 — 0.08 и т.п.).

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

def recover_category(matrix, labels):
result = []
for row in matrix:
max_index = row.index(max(row))
result.append(labels[max_index])
return result

# Пример использования
matrix = [
[0.05, 0.92, 0.03],
[0.89, 0.06, 0.12],
[0.12, 0.08, 0.83]
]

labels = ["A", "B", "C"]

print(recover_category(matrix, labels))
# Ожидаемый результат: ['B', 'A', 'C']
Please open Telegram to view this post
VIEW IN TELEGRAM
5🐳2👍1
⚙️ Залезаем на плечи гигантов — создаем модуль для ComfyUI для свободного движения камеры и создание 6dof сцен из фото

Расскажу, как из одного кадра получить свободную 3D-прогулку: доращиваем панорамы, меняем проекции и крутим ракурсы в VR с помощью кастомного модуля для ComfyUI.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥1
⚙️ ChatGPT все еще не догнать: что происходит на ИИ-рынке к середине 2025 года?

2025 год подходит к экватору, поэтому самое время посмотреть, как поменялись позиции крупнейших компаний-разработчиков. Но для начала предлагаю посмотреть на две иллюстрации. Первая — рейтинг ИИ от ресурса LMArena.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
⚙️ Что такое @staticmethod и @classmethod в Python, и чем они отличаются?

Декораторы @staticmethod и @classmethod используются для создания методов, которые не требуют экземпляра класса. @staticmethod — это метод, который не зависит от экземпляра или самого класса, а @classmethod получает доступ к самому классу через первый параметр cls.

➡️ Пример:

class MyClass:
@staticmethod
def static_method():
return "Это статический метод"

@classmethod
def class_method(cls):
return f"Это метод класса {cls.__name__}"

# Использование
print(MyClass.static_method()) # Это статический метод
print(MyClass.class_method()) # Это метод класса MyClass


🗣️ В этом примере static_method ничего не знает о классе, в то время как class_method может взаимодействовать с классом, к которому он принадлежит. Используйте их в зависимости от того, нужно ли вам взаимодействие с классом.


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