Data notes
46 subscribers
59 photos
6 videos
2 files
123 links
My data science notes
Download Telegram
Forwarded from Aspiring Data Science
#ml #geofeatures #python

Отличная глава о подготовке геофичей

https://geographicdata.science/book/notebooks/12_feature_engineering.html
Forwarded from Data Secrets
Самый полный репозиторий библиотек Python для Data Science разработчика

Если ты занимаешься Data Science, то знаешь, как важно иметь под рукой нужные инструменты для эффективной работы. Мы тут как раз нашли заметку, в которой перечислены все самые полезные и эффективные библиотеки и модули Python для разных задач. Есть разделы "Очистка и обработка", "Рекомендательные системы", "Временные ряды", "NLP", "Визуализация". Все со ссылками на документацию.

https://analyticsindiamag.com/python-libraries-repository-for-data-science/

😻 #advice #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#optimization #ml #metrics #python #numba #codegems

В общем, sklearn-овские метрики оказались слишком медленными, пришлось их переписать на numba. Вот пример classification_report, который работает в тысячу раз быстрее и поддерживает почти всю функциональность (кроме весов и микровзвешивания). Также оптимизировал метрики auc (алгоритм взят из fastauc) и calibration (считаю бины предсказанные vs реальные, потом mae/std от их разностей). На 8M сэмплов всё работает за ~30 миллисекунд кроме auc, та ~300 мс. Для сравнения, scikit-learn-овские работают от нескольких секунд до нескольких десятков секунд.

@njit()
def fast_classification_report(
y_true: np.ndarray, y_pred: np.ndarray, nclasses: int = 2, zero_division: int = 0
):
"""Custom classification report, proof of concept."""

N_AVG_ARRAYS = 3 # precisions, recalls, f1s

# storage inits
weighted_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
macro_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
supports = np.zeros(nclasses, dtype=np.int64)
allpreds = np.zeros(nclasses, dtype=np.int64)
misses = np.zeros(nclasses, dtype=np.int64)
hits = np.zeros(nclasses, dtype=np.int64)

# count stats
for true_class, predicted_class in zip(y_true, y_pred):
supports[true_class] += 1
allpreds[predicted_class] += 1
if predicted_class == true_class:
hits[predicted_class] += 1
else:
misses[predicted_class] += 1

# main calcs
accuracy = hits.sum() / len(y_true)
balanced_accuracy = np.nan_to_num(hits / supports, copy=True, nan=zero_division).mean()

recalls = hits / supports
precisions = hits / allpreds
f1s = 2 * (precisions * recalls) / (precisions + recalls)

# fix nans & compute averages
for arr in (precisions, recalls, f1s):
np.nan_to_num(arr, copy=False, nan=zero_division)
weighted_averages[i] = (arr * supports).sum() / len(y_true)
macro_averages[i] = arr.mean()

return hits, misses, accuracy, balanced_accuracy, supports, precisions, recalls, f1s, macro_averages, weighted_averages
Forwarded from Data Secrets
Про pipe в pandas

pipe - это метод реализации паплайна в pandas через последовательную цепочку преобразований (не путать с Pipeline из скалерна).

Например, у нас есть ряд функций, каждая из которых отвечает за какое-то преобразование. Тогда пайплайн в pandas можно реализовать так:

def normilize(df):
...
return df

def fill_null(df, method):
...
return df

def parse_time(df):
...
return df

new_df = (df
.pipe(normilize)
.pipe(fill_null, method='median')
.pipe(parse_time)
)

😻 #analytics #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Secrets
Тензоры и как с ними работать

Тезнзоры – это главные объекты библиотеки TensorFlow, которая вместе в PyTorch является основным инструментом для обучения нейросетей.

Но как работать с этими тензорами? Мы очень старались и выкатили вам по этой теме коллаб. В нем – подробный гайд с кодом и пояснениями. Разбираем, как создавать тензоры, какие есть важные операции с ними, как изменить их размерность, перемножить их и многое другое.

Сохраняйте на здоровье -> https://colab.research.google.com/github/Veron28/bot_test/blob/master/tensorflow_by_data_secrets.ipynb

😻 #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Secrets
PandasAI

С появлением ChatGPT многие задачи были автоматизированы в удобных утилитах. Для датасайентистов тоже появился такой лакомый кусочек: PandasAI. Эта библиотека-расширение pandas, в которую добавлена возможность выполнять задачи обработки данных без явного написания кода. Пишешь промпт – и поехали. Можно даже рисовать графики и работать с файлами.

😻 #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Secrets
Про всякие транформаторы в Sklearn

Поговорили про то, как элегантно обернуть в pipeline любую пользовательскую функцию, как подправить встроенный транформатор, зацепили мега-полезные QuantileTransformer и TransformedTargetRegressor, а на сладкое рассказали про то, как в одну строку визуализировать конвейер.

😻 #python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Write faster Python code, and ship your code faster

Faster and more memory efficient data
- Articles: Learn how to speed up your code and reduce memory usage.
- Products: Observability and profiling tools to help you identify bottlenecks in your code.

Docker packaging for Python
- Articles: Learn how to package your Python application for production.
- Products: Educational books and pre-written software templates.

Navigational hashtags: #armknowledgesharing #armsites
General hashtags: #python #development #docker