Channel: Data Science | Machinelearning [ru]
Василий из Т-Банка объясняет, почему классические критерии согласия не всегда подходят для симуляции колл-центра. Покажет подводные камни и как не влететь в ловушку распределений.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Токенизация — это процесс разбиения текста на отдельные части: слова, подслова или символы.
Часто используется на этапе предобработки текста для NLP-моделей.
Каждый токен — это минимальная смысловая единица, которую модель будет анализировать.
from sklearn.feature_extraction.text import CountVectorizer
texts = ["Я люблю машинное обучение", "Обучение — это интересно"]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)
print(vectorizer.get_feature_names_out())
print(X.toarray())
# Вывод:
['интересно' 'люблю' 'машинное' 'обучение' 'это' 'я']
[[0 1 1 1 0 1]
[1 0 0 1 1 0]]
🗣️ Токенизация превращает текст в числовую матрицу, понятную модели.
Это первый шаг в обработке текста перед обучением моделей на естественном языке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
В этом выпуске: Codex от OpenAI, GPT‑4.1, токсичный Grok, генератор от Tencent и агент DeepMind, который сам изобретает алгоритмы. ИИ неделя на максималках.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Разбираемся, почему Stack Overflow теряет аудиторию: виноваты ли ИИ, UX или жадность? Плюс — что делает администрация и что ждёт разработчиков в пост-SO эпоху.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Сложная задача сразу после кофе? Мозг ещё не включился — и ты уже залип.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15
Создайте Python-скрипт, который читает большой CSV-файл построчно, фильтрует строки по заданному критерию и подсчитывает агрегированные данные на основе указанного столбца. Скрипт должен эффективно обрабатывать файл, используя потоковое чтение (без загрузки файла целиком в память) и выводить итоговую статистику в консоль.
•
python process_data.py data.csv age 30
— фильтрует строки, где значение в столбце age
больше 30
, и подсчитывает общее количество таких записей и среднее значение в другом числовом столбце, например, salary
.Решение задачи
import csv
import sys
def process_large_csv(file_path, filter_column, threshold, aggregate_column):
count = 0
total_sum = 0.0
with open(file_path, 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
# Преобразование значений для фильтрации и агрегации
try:
filter_value = float(row[filter_column])
aggregate_value = float(row[aggregate_column])
except ValueError:
continue # Пропускаем строки с некорректными данными
# Фильтрация строк по заданному условию
if filter_value > threshold:
count += 1
total_sum += aggregate_value
# Вывод итоговой статистики
if count > 0:
average = total_sum / count
print(f"Обработано записей: {count}")
print(f"Среднее значение {aggregate_column} для записей, где {filter_column} > {threshold}: {average:.2f}")
else:
print("Записи, соответствующие условиям фильтрации, не найдены.")
if __name__ == "__main__":
if len(sys.argv) < 5:
print("Использование: python process_data.py <file_path> <filter_column> <threshold> <aggregate_column>")
sys.exit(1)
file_path = sys.argv[1]
filter_column = sys.argv[2]
threshold = float(sys.argv[3])
aggregate_column = sys.argv[4]
process_large_csv(file_path, filter_column, threshold, aggregate_column)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Разбор отчёта о соревнованиях по ML за 2024 год: кто победил, как и почему. Без мотивационных цитат — только конкретные приёмы, модели и стратегии, которые реально приносят $22 млн.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Создайте простую модель машинного обучения, которая определяет, является ли текст позитивным или негативным. Используем
sklearn
и алгоритм Naive BayesРешение задачи
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import make_pipeline
# Обучающие данные
texts = ["Это отличный фильм", "Ужасный опыт", "Мне понравилось", "Очень скучно", "Прекрасная история"]
labels = ['positive', 'negative', 'positive', 'negative', 'positive']
# Модель
model = make_pipeline(CountVectorizer(), MultinomialNB())model.fit (texts, labels)
# Прогноз
print(model.predict(["Фильм был ужасен"])) # ['negative']
print(model.predict(["Обожаю это кино"])) # ['positive']
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
• Построение базы знаний компании и поиска документов на LLM и RAG
• Что побуждает LLM врать и как этого избежать в своих продуктах
• Ломаем капчу 4Chan
• На чём учатся современные модели машинного перевода: опыт команды Яндекс Переводчика
• Gemini вырывается вперед, Китай спамит моделями, в Minecraft запустили AI-агентов: главные события ноября в сфере ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2👎1
Яндекс поднял максимальное вознаграждение в bug bounty до 3 млн рублей.
За что? За критические уязвимости типа RCE и VM escape в Почте, Яндекс ID и Yandex Cloud.
Плюс выросли выплаты за SQL-инъекции. Это хорошая возможность для этичных хакеров проверить себя, ведь речь идет о сервисах Яндекса, которым доверяют чувствительную информацию миллионы пользователей. Так компания хочет обеспечить всестороннюю оценку безопасности своих систем.
Ну а для тех, кому этого недостаточно, в программе багбаунти Яндекса недавно появилось отдельное направление по нейросетям — там можно получить за уязвимость до 1 миллиона рублей.
За что? За критические уязвимости типа RCE и VM escape в Почте, Яндекс ID и Yandex Cloud.
Плюс выросли выплаты за SQL-инъекции. Это хорошая возможность для этичных хакеров проверить себя, ведь речь идет о сервисах Яндекса, которым доверяют чувствительную информацию миллионы пользователей. Так компания хочет обеспечить всестороннюю оценку безопасности своих систем.
Ну а для тех, кому этого недостаточно, в программе багбаунти Яндекса недавно появилось отдельное направление по нейросетям — там можно получить за уязвимость до 1 миллиона рублей.
🔥6👍3⚡2😁1
Автор исследует, почему нейросети пока плохо отличают ИИ-тексты от человеческих, и делится, что реально работает (или не очень), если вы вдруг решите их «перехитрить».
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Создайте модель, которая группирует точки по признакам без использования меток.
Это задача кластеризации, где мы не обучаемся на готовых ответах, а ищем структуру в данных.
Алгоритм K-Means автоматически делит данные на 3 группы на основе близости точек.
Это полезно в задачах сегментации клиентов, поиска паттернов в данных, рекомендаций и др.
Решение задачи
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
# Генерация данных: 300 точек, 3 центра
X, _ = make_blobs(n_samples=300, centers=3, random_state=42)
# Модель кластеризации
kmeans = KMeans(n_clusters=3, random_state=42)kmeans.fit (X)
# Визуализация
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1],
s=200, c='red', marker='X', label='Центры кластеров')
plt.legend()plt.show ()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
RDS — это про то, как машинке выбрать лучший вариант уведомления или карточки, чтобы ты вернулся. Объясняем, как он усиливает ML-модели и растит вовлечённость пользователей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Автор копает, почему ИИ фантазирует, как это мешает в работе и чем тут помогут промпты. В финале — гайд, как писать запросы без сюрпризов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Функция
train_test_split()
из библиотеки sklearn разбивает данные на обучающую и тестовую выборки.Это важно, чтобы проверить, как хорошо модель работает на невидимых данных.
from sklearn.model_selection import train_test_split
X = [[1], [2], [3], [4], [5]]
y = [0, 0, 1, 1, 1]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
print("Обучение:", X_train)
print("Тест:", X_test)
🗣️ Почему важно:
• Модель не должна учиться на тех же данных, на которых её оценивают
• test_size указывает, какой процент данных пойдёт на тест
• random_state нужен для воспроизводимости
Это один из самых базовых, но обязательных шагов в любом ML-проекте
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
История о том, как в текущем моменте истории, по сути любой разработчик может в одиночку задизраптить любой вертикальный рынок и даже отрасль.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Сравниваем 4 синтеза речи: интонации, паузы, эмоции. Кто из них справится с «Хоббитом» и сможет звучать как рассказчик, а не как робот? Проверим голосом, а не графиком.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
У вас есть список действий пользователей на платформе. Каждое действие представлено словарём с полями
"user_id"
, "action"
, и "timestamp"
. Нужно реализовать функцию, которая определит, является ли пользователь "уникальным".Уникальный пользователь — это тот, кто:
• совершал более 3 действий,
• все действия происходили в разные дни,
• не совершал одинаковые действия дважды.
Верните список
user_id
, соответствующих этому критерию.Решение задачи
from collections import defaultdict
from datetime import datetime
def find_unique_users(logs):
activity = defaultdict(lambda: {"actions": set(), "days": set(), "count": 0})
for log in logs:
user = log["user_id"]
action = log["action"]
date = datetime.fromisoformat(log["timestamp"]).date()
activity[user]["actions"].add(action)
activity[user]["days"].add(date)
activity[user]["count"] += 1
result = []
for user, data in activity.items():
if (
data["count"] > 3 and
len(data["days"]) == data["count"] and
len(data["actions"]) == data["count"]
):
result.append(user)
return result
# Пример использования
logs = [
{"user_id": 1, "action": "login", "timestamp": "2023-05-01T10:00:00"},
{"user_id": 1, "action": "view", "timestamp": "2023-05-02T11:00:00"},
{"user_id": 1, "action": "click", "timestamp": "2023-05-03T12:00:00"},
{"user_id": 1, "action": "logout", "timestamp": "2023-05-04T13:00:00"},
{"user_id": 2, "action": "login", "timestamp": "2023-05-01T10:00:00"},
{"user_id": 2, "action": "login", "timestamp": "2023-05-01T11:00:00"},
{"user_id": 2, "action": "click", "timestamp": "2023-05-01T12:00:00"},
]
print(find_unique_users(logs)) # Ожидаемый результат: [1]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Автор тестирует RTX 5090 в хостинге, сравнивает с 3090 и A100, гоняет gpu-burn и инференс-сетку, проверяя, есть ли прирост для ML-задач. Без фанатизма, но с графиком.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
START — опенсорсная LLM для точных вычислений и проверки кода. В START решены две главные проблемы большинства обычных моделей: галлюцинации и ошибки в многоэтапных расчетах. В статье разберемся, зачем и как именно эти проблемы решены..
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
HTML Embed Code: