
- Главная
- Каталог
- Интернет технологии
- Data Science | Вопросы собесов
Data Science | Вопросы собесов
Разбираем вопросы с собеседований на Data Scientist.
Статистика канала
GROUP BY. В отличие от оператора WHERE, который фильтрует строки до применения агрегации, HAVING применяется после агрегации. Это делает HAVING идеальным инструментом для фильтрации результатов на основе агрегированной информации.
🚩Принцип работы
🟠Выборка данных
Сначала SQL выполняет выборку данных из таблицы (или таблиц) в соответствии с указанными в запросе критериями (FROM и WHERE).
🟠Группировка данных
Данные группируются по указанному в GROUP BY критерию. Если GROUP BY отсутствует, то все данные рассматриваются как одна группа.
🟠Применение агрегатных функций
На этом этапе к каждой группе данных применяются агрегатные функции (например, SUM(), AVG(), MAX(), MIN(), COUNT()).
🟠Фильтрация результатов агрегации
После группировки и агрегации HAVING фильтрует результаты. Это означает, что HAVING может использовать результаты агрегатных функций для фильтрации групп, что невозможно сделать с помощью WHERE.
Допустим, у нас есть таблица sales с полями product_id, sale_date, и amount. Мы хотим найти продукты, которые заработали более 1000 долларов в общей сумме продаж.
SELECT product_id, SUM(amount) as total_sales
FROM sales
GROUP BY product_id
HAVING SUM(amount) > 1000;{}
Ставь 👍 и забирай 📚 Базу знаний
RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{}
Пример
from sklearn.metrics import mean_squared_error
import numpy as np
y_true = np.array([4, 3, 5, 2])
y_pred = np.array([3.8, 2.9, 5.1, 2.2])
rmse = np.sqrt(mean_squared_error(y_true, y_pred))
print(f'RMSE: {rmse}') {}
🟠MAE (Средняя абсолютная ошибка)
Формула
MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|{}
Пример
from sklearn.metrics import mean_absolute_error
y_true = np.array([4, 3, 5, 2])
y_pred = np.array([3.8, 2.9, 5.1, 2.2])
mae = mean_absolute_error(y_true, y_pred)
print(f'MAE: {mae}') {}
🚩Ранговые метрики
🟠Precision@K и Recall@K
Precision@K: Доля релевантных элементов среди первых K предложений.
Recall@K: Доля найденных релевантных элементов среди всех возможных релевантных.
Пример
def precision_at_k(recommended_items, relevant_items, k):
return len(set(recommended_items[:k]) & set(relevant_items)) / k
def recall_at_k(recommended_items, relevant_items, k):
return len(set(recommended_items[:k]) & set(relevant_items)) / len(relevant_items)
recommended_items = [1, 2, 3, 4, 5]
relevant_items = [3, 4, 5, 6, 7]
k = 3
print(f'Precision@{k}: {precision_at_k(recommended_items, relevant_items, k)}')
print(f'Recall@{k}: {recall_at_k(recommended_items, relevant_items, k)}'){}
🟠MAP (Средний показатель)
Пример
def average_precision(recommended_items, relevant_items):
score = 0.0
num_hits = 0.0
for i, item in enumerate(recommended_items):
if item in relevant_items:
num_hits += 1.0
score += num_hits / (i + 1.0)
return score / len(relevant_items)
def mean_average_precision(recommended_items_list, relevant_items_list):
return np.mean([average_precision(r, t) for r, t in zip(recommended_items_list, relevant_items_list)])
recommended_items_list = [[1, 2, 3, 4, 5], [2, 3, 4, 5, 6]]
relevant_items_list = [[3, 4, 5, 6, 7], [1, 2, 3, 4, 5]]
print(f'MAP: {mean_average_precision(recommended_items_list, relevant_items_list)}'){}
Ставь 👍 и забирай 📚 Базу знаний
import tensorflow as tf
# Загружаем обученную модель
model = tf.keras.models.load_model("model.h5")
# Создаём конвертер для TFLite
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT] # Включаем квантизацию
tflite_model = converter.convert()
# Сохраняем сжатую модель
with open("model_quantized.tflite", "wb") as f:
f.write(tflite_model){}
🟠Квантизация во время обучения (Quantization-Aware Training, QAT)
Модель учится с учетом квантизации, что позволяет адаптировать веса.
import torch
import torchvision.models as models
from torch.quantization import quantize_dynamic
# Загружаем модель
model = models.resnet18(pretrained=True)
model.eval()
# Применяем квантизацию
quantized_model = quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)
# Сохраняем модель
torch.save(quantized_model.state_dict(), "resnet18_quantized.pth"){}
Ставь 👍 и забирай 📚 Базу знаний
\text{Среднее} = \frac{1 + 2 + 3 + 4 + 5}{5} = 3{}
🟠Взвешенное среднее (Weighted Mean)
Среднее значение, где каждому значению присваивается определенный вес, отражающий его важность. Если значения \([1, 2, 3]\) имеют веса \([0.1, 0.3, 0.6]\), то взвешенное среднее будет:
\text{Взвешенное среднее} = \frac{(0.1 \times 1) + (0.3 \times 2) + (0.6 \times 3)}{0.1 + 0.3 + 0.6} = 2.5{}
🟠Гармоническое среднее (Harmonic Mean)
Среднее значение, используемое для наборов данных, состоящих из скоростей или частот. Для набора данных \([1, 2, 4]\), гармоническое среднее будет:
\text{Гармоническое среднее} = \frac{3}{\frac{1}{1} + \frac{1}{2} + \frac{1}{4}} = 1.714{}
🟠Среднее геометрическое (Geometric Mean)
Среднее значение, используемое для наборов данных, где важны пропорции. Для набора данных \([1, 2, 4]\), среднее геометрическое будет:
\text{Среднее геометрическое} = \left( 1 \times 2 \times 4 \right)^{\frac{1}{3}} = 2{}
🚩Применение
🟠Экономика
Средняя зарплата, средний доход.
🟠Образование
Средний балл студентов.
🟠Медицина
Среднее значение измерений, таких как кровяное давление или уровень сахара в крови.
🟠Бизнес
Средние показатели продаж, средняя стоимость товаров.
🚩Важность понимания среднего
🟠Анализ данных
Среднее позволяет обобщить и понять большие наборы данных.
🟠Принятие решений
Средние значения используются для принятия обоснованных решений в различных областях, таких как маркетинг, финансы и управление.
🟠Сравнение
Средние значения позволяют сравнивать различные группы или периоды времени.
import numpy as np
from scipy.stats import hmean, gmean
# Данные
data = [1, 2, 3, 4, 5]
# Арифметическое среднее
arithmetic_mean = np.mean(data)
print(f"Арифметическое среднее: {arithmetic_mean}")
# Взвешенное среднее
weights = [0.1, 0.3, 0.6, 0.4, 0.5]
weighted_mean = np.average(data, weights=weights)
print(f"Взвешенное среднее: {weighted_mean}")
# Гармоническое среднее
harmonic_mean = hmean(data)
print(f"Гармоническое среднее: {harmonic_mean}")
# Геометрическое среднее
geometric_mean = gmean(data)
print(f"Геометрическое среднее: {geometric_mean}"){}
Ставь 👍 и забирай 📚 Базу знанийОтзывы канала
Каталог Телеграм-каналов для нативных размещений
Data Science | Вопросы собесов — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 5.0K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 5.2, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 3216.78 ₽, а за 1 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий