Перейти до вмісту

Scikit-learn

Матеріал з K2 ERP Wiki
 


)

 y,
інформаційні дані: частота покупок, середній чек, категорії товарів.; test_size=0.2,

== Приклади запитів і задач ==

* supervised learning;
* unsupervised learning;
* model selection;
* model evaluation;
* preprocessing;
* feature extraction;
* feature selection;
* decomposition;
* clustering;
* covariance estimation;
* anomaly detection;
* pipelines;
* metrics;
* calibration;
* ensemble methods.; '''Приклад:''' якщо є собою інформаційні дані клієнтів без готових сегментів, unsupervised learning має змогу допомогти знайти групи схожих клієнтів.; :contentReference [oaicite:4]{index=4}
Scikit-learn часто застосовується разом із XGBoost, LightGBM або CatBoost.; Основні переважні аспекти Scikit-learn:

Він сприяє:
'''Критично:''' test set не можна використовувати для навчання або вибору параметрів, інакше оцінка якості буде завищеною.; * classification;
* regression;
* clustering;
* dimensionality reduction;
* preprocessing;
* feature selection;
* model selection;
* cross-validation;
* metrics;
* pipeline;
* hyperparameter tuning;
* anomaly detection;
* робочих експериментів із табличними даними.;== GridSearchCV і RandomizedSearchCV ==

* arrays;
* числових обчислень;
* матриць;
* векторних операцій;
* роботи з форматами даних, які очікує scikit-learn.; Водночас якість ML-рішення залежить не лише від бібліотеки, а й від даних, метрик, pipeline, відсутності leakage, тестування і відповідального використання.;<syntaxhighlight lang="text">

* train/test leakage;
* неправильний preprocessing;
* fit scaler на всіх даних;
* вибір не тієї метрики;
* відсутність cross-validation;
* ігнорування imbalance;
* використання test set для підбору параметрів;
* неправильне кодування категорій;
* відсутність pipeline;
* overfitting;
* відсутність аналізу помилок;
* довіра до моделі без перевірки на реальних даних.; scaler = StandardScaler()

* PCA;
* TruncatedSVD;
* NMF;
* Isomap;
* t-SNE;
* feature selection.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">

Категоріальні колонки  OneHotEncoder
'''Професійний підхід:''' pipeline сприяє зробити ML-процес повторюваним, контрольованим і менш схильним до data leakage.; GitHub-репозиторій scikit-learn описує його як Python module for machine learning built on top of SciPy and distributed under the 3-Clause BSD license.;</div>

== Train/test split ==

RandomizedSearchCV випадково пробує комбінації з простору параметрів.; * Scikit-learn User Guide.; from sklearn.ensemble import RandomForestClassifier

* числові ознаки;
* категоріальні ознаки;
* текстові ознаки;
* дати;
* різні типи обробки.; !; * передбачити категорію;
* передбачити числове значення;
* кластеризувати обєкти;
* знайти аномалії;
* підготувати інформаційні дані;
* нормалізувати ознаки;
* закодувати категоріальні змінні;
* розділити інформаційні дані на train і test;
* виконати cross-validation;
* підібрати гіперпараметри;
* порівняти кілька моделей;
* створити pipeline для preprocessing і моделі.; from sklearn.model_selection import train_test_split

from sklearn.ensemble import RandomForestClassifier
</div>
'''Scikit-learn'''  це одна з найважливіших бібліотек Python для класичного машинного навчання.; X_train, X_test, y_train, y_test = train_test_split(
Приклад:
}
 ("scaler", StandardScaler()),

У supervised learning є собою: ])

<syntaxhighlight lang="python">

 RandomForestClassifier(),

* scaling;
* normalization;
* encoding categorical features;
* imputation missing values;
* binarization;
* polynomial features;
* text vectorization;
* feature extraction;
* feature selection.; Scikit-learn потрібен, коли потрібно оперативно побудувати, навчити, оцінити й порівняти ML-моделі.; params = {

from sklearn.datasets import load_iris

Scikit-learn особливо корисний для табличних даних, baseline-моделей, навчання, прототипування, classification, regression, clustering і аналізу даних.;

  • KMeans;
  • DBSCAN;
  • AgglomerativeClustering;
  • MeanShift;
  • SpectralClustering;
  • GaussianMixture.; Scikit-learn

завдяки наявності Практична роль: dimensionality reduction користувачі можуть зробити складні інформаційні дані компактнішими і зрозумілішими.; :contentReference [oaicite:2]{index=2}

Висновок: Scikit-learn часто краще підходить для класичних табличних ML-задач, а TensorFlow — для складних deep learning і production neural network сценаріїв.; Алгоритм: KMeans або DBSCAN.;

model = RandomForestClassifier()

test_size=0.2,

Обмеження Scikit-learn

|- | ключовий фокус | Класичне машинне навчання | Deep learning і ML-платформа |- | Типові інформаційні дані | Табличні, числові, невеликі й середні datasets | Зображення, текст, аудіо, великі neural networks |- | API | Простий fit/predict/transform | Keras, tensors, computational graphs |- | Типові задачі | Classification, regression, clustering, preprocessing | Neural networks, deep learning, production ML |- | Складність старту | Зазвичай простіше | Зазвичай складніше |}

Overfitting і underfitting

<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">

categorical_features = ["city", "plan"]

'''Увага:''' неправильне кодування категорій має змогу створити хибний порядок там, де його насправді немає.;== Classification ==

Scikit-learn надає інструменти для:

== Unsupervised learning ==
  • стабільніше оцінити якість;
  • зменшити залежність від одного train/test split;
  • порівнювати моделі;
  • підбирати гіперпараметри;
  • виявляти overfitting;
  • краще використовувати доступні інформаційні дані.; це open-source бібліотека Python; додатково реалізовано яка надає інструменти для класифікації, регресії, кластеризації, зменшення розмірності, preprocessing, model selection, evaluation і побудови ML-pipeline виступає ключовою рисою машинного навчання забезпечується через Scikit-learn.; Суть model selection: потрібно не без ускладнень навчити одну модель, а чесно порівняти варіанти і вибрати той, що краще функціонує на нових даних.; print("Accuracy:", accuracy_score(y_test, y_pred))

Regression — це задача передбачення числового значення.; * LinearRegression;

  • Ridge;
  • Lasso;
  • ElasticNet;
  • RandomForestRegressor;
  • GradientBoostingRegressor;
  • SVR;
  • KNeighborsRegressor.; predictions = pipe.predict(X_test)
Clustering — це групування об’єктів за схожістю.; GridSearchCV і RandomizedSearchCV використовуються для підбору гіперпараметрів.; Окремо варто відзначити unsupervised learning, model selection and evaluation, inspection, visualization, data transformations і іншими частинами.; Головна перевага: scikit-learn дає єдину, зрозумілу й практичну основу для більшості задач класичного машинного навчання.;

Робота з pandas і NumPy

<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">

Для transformer:

* train_test_split;
* cross_val_score;
* KFold;
* StratifiedKFold;
* GridSearchCV;
* RandomizedSearchCV;
* validation curves;
* learning curves;
* metrics;
* model comparison.; !; * scikit-learn  назва проєкту;
* sklearn  назва Python-модуля;
* sklearn API  стиль роботи з моделями, transformers і pipelines.; '''transform'''  перетворити інформаційні дані.;<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">

* StandardScaler;
* MinMaxScaler;
* OneHotEncoder;
* PCA;
* TfidfVectorizer;
* SimpleImputer.; Рекомендовано:

model.fit(X_train, y_train)
'''Суть:''' scikit-learn покриває більшість класичних ML-задач, які виникають під час роботи з табличними й числовими даними.; X_test_scaled = scaler.transform(X_test)
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

 params,

* [[Штучний інтелект]]
* [[Machine Learning]]
* [[Deep Learning]]
* [[Python]]
* [[NumPy]]
* [[SciPy]]
* [[pandas]]
* [[TensorFlow]]
* [[PyTorch]]
* [[Hugging Face]]
* [[XGBoost]]
* [[Classification]]
* [[Regression]]
* [[Clustering]]
* [[Pipeline]]
* [[Cross-validation]]
* [[Data leakage]]
* [[MLOps]]
* [[Датасет]]
* [[Модель машинного навчання]]

Scikit-learn часто порівнюють із TensorFlow.; Unsupervised learning застосовується для:
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
print(search.best_params_)

predictions = model.predict(X_test)

y = data.target

* починати із baseline;
* правильно робити train/test split;
* використовувати Pipeline;
* використовувати ColumnTransformer;
* робити cross-validation;
* вибирати метрики під задачу;
* перевіряти imbalance;
* зберігати preprocessing разом із моделлю;
* аналізувати помилки;
* тестувати модель на нових даних;
* документувати features;
* контролювати data leakage;
* перевіряти fairness і bias;
* моніторити модель після deployment.; Підготовка даних часто важливіша за вибір складного алгоритму.; Scikit-learn є собою open-source проєктом.; У scikit-learn часто використовуються три ключові методи.;

Практична порада: для нового ML-проєкту часто варто почати зі scikit-learn baseline, а вже потім переходити до складніших моделей.; from sklearn.pipeline import Pipeline !; model.fit(X_train, y_train)

y_pred = model.predict(X_test) Практична користь: cross-validation дає більш надійну оцінку, ніж одна випадкова перевірка на test set.; * Scikit-learn paper: “Scikit-learn: Machine Learning in Python”.; Ознаки underfitting:

pipe.fit(X_train, y_train)

Scikit-learn часто застосовують, коли потрібно для класичного машинного навчання, аналізу табличних даних, побудови baseline-моделей, навчальних проєктів, прототипів і production-рішень, де потрібні зрозумілі, стабільні й добре документовані ML-алгоритми.;
!; Офіційна документація scikit-learn має окремий розділ unsupervised learning, який охоплює clustering, mixture models, manifold learning, matrix decomposition, covariance estimation, novelty and outlier detection та інші напрями.; :contentReference [oaicite:0]{index=0}
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
Приклади scalers:

X = data.data

Метрики: precision, recall, F1-score, ROC AUC.;== Див.; додатково ==
'''Transformer'''  це обєкт, який перетворює інформаційні дані.; :contentReference [oaicite:1]{index=1}

* StandardScaler;
* MinMaxScaler;
* RobustScaler;
* MaxAbsScaler.; '''Preprocessing'''  це підготовка даних перед навчанням моделі.;<syntaxhighlight lang="python">
== sklearn ==
<syntaxhighlight lang="text">

</div>

from sklearn.metrics import accuracy_score

 ("num", StandardScaler(), numeric_features),

</div>

* висока якість на train;
* низька якість на validation/test;
* надто складна модель;
* нестабільність на нових даних.; model = Pipeline([
Потім усе разом  модель

<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

</div>

* простий і стабільний API;
* багато класичних ML-алгоритмів;
* preprocessing tools;
* pipelines;
* model selection;
* metrics;
* cross-validation;
* хороша документація;
* інтеграційні функціональні можливості з NumPy, SciPy і pandas;
* open-source;
* підходить для навчання;
* підходить для baseline-моделей;
* зручний для табличних задач.;=== Regression ===
Приклад:

data = load_iris()

)

 random_state=42

* Logistic Regression;
* SVM;
* KNN;
* PCA;
* neural networks;
* distance-based algorithms;
* gradient-based optimization.; '''ColumnTransformer''' надає можливість застосовувати різні preprocessing-кроки до різних колонок.; '''Data leakage'''  це ситуація, коли модель під час навчання отримує інформацію, якої не буде в реальному використанні.; Scikit-learn
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
Результат: групи клієнтів для подальшого аналізу.; Для regression:

!; '''Головне правило:''' fit виконується на training data, а transform або predict застосовується до нових даних.; Приклад:

'''Supervised learning'''  це навчання з учителем, коли модель навчається на прикладах із правильними відповідями.; Критерій

Pipeline сприяє:

<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">

* сегментація клієнтів;
* групування товарів;
* пошук схожих документів;
* аналіз поведінки користувачів;
* групування точок на карті;
* пошук патернів у даних.; Критерій

'''Приклад:''' якщо є собою історичні інформаційні дані клієнтів і відомо, хто купив програмний продукт, supervised модель має змогу навчитися прогнозувати ймовірність покупки для нових клієнтів.;== Scikit-learn і XGBoost ==
</div>
</div>

'''Суть clustering:''' алгоритм сам шукає групи в даних без готових міток класів.;<syntaxhighlight lang="python">
!;== Encoding categorical features ==
Сегментувати клієнтів за поведінкою.; Accuracy не завжди є собою правильною метрикою, особливо якщо класи незбалансовані.; У офіційно затверджений User Guide scikit-learn передбачено supervised learning як один із головних розділів і містить алгоритми linear models, SVM, nearest neighbors, decision trees, ensemble methods, neural network models та інші.; Під час роботи зі scikit-learn часто виникають типові помилки.; '''NumPy''' потрібен для:

'''Просте пояснення:''' estimator  це будь-який обєкт scikit-learn, який можна навчити або налаштувати на даних.; '''Практична зв’язка:''' pandas готує табличні інформаційні дані, NumPy представляє числові масиви, а scikit-learn навчає й оцінює моделі.; * fit;
* transform;
* fit_transform.;<syntaxhighlight lang="python">

== Data leakage ==

'''Просте пояснення:''' scikit-learn  це назва бібліотеки, а sklearn  імя модуля, який імпортується в Python.; ])

* візуалізації;
* зменшення шуму;
* пришвидшення моделей;
* стиснення даних;
* пошуку структури;
* підготовки features;
* роботи з високовимірними даними.; У цьому прикладі:
from sklearn.model_selection import GridSearchCV
== Supervised learning ==

'''Практична роль:''' хороший ML-процес шукає баланс між занадто простою і занадто складною моделлю.; Scikit-learn додатково можна порівняти з PyTorch.; model = RandomForestClassifier(random_state=42)
Transformer зазвичай має методи:

== Загальний характеристика ==
Це корисно, коли інформаційні дані мають:
Вона застосовується для:

офіційно затверджений сайт описує scikit-learn як Machine Learning in Python, з простими й ефективними інструментами для predictive data analysis, побудованими на NumPy, SciPy і matplotlib.; * Scikit-learn Getting Started.; '''Небезпека:''' модель має змогу показувати високу якість у notebook, але провалитися в реальному використанні через leakage, drift або неправильну постановку задачі.; PyTorch
{| class="wikitable"

<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">

print(scores.mean())

 y,

* прогноз churn;
* кредитний скоринг;
* сегментація клієнтів;
* класифікація документів;
* прогноз продажів;
* anomaly detection;
* recommendation baseline;
* text classification;
* оцінка якості ліда;
* прогноз часу виконання;
* аналіз факторів;
* baseline для ML-змагання;
* навчальний ML-проєкт.; '''Перевага:''' Scikit-learn має єдиний стиль API, з цієї причини різні моделі часто використовуються однаково: створити обєкт, викликати fit, потім predict або transform.;</div>

pipe = Pipeline([

  • accuracy;
  • precision;
  • recall;
  • F1-score;
  • ROC AUC;
  • confusion matrix;
  • log loss.;

Потрібно враховувати:

Головна перевага pipeline: усі кроки preprocessing і модель зберігаються разом, з цієї причини менше ризику випадково обробити train і test по-різному.;

Побудувати модель прогнозу ціни товару.; Приклади моделей classification у scikit-learn:

Underfitting — це ситуація, коли модель занадто проста і не вловлює закономірності навіть у training data.; * низька якість на train;

  • низька якість на test;
  • модель занадто проста;
  • недостатньо features.;

Scikit-learn має пакет `sklearn.preprocessing`, який надає utility functions і transformer classes для перетворення raw feature vectors у представлення, придатніше для downstream estimators.; ("cat", OneHotEncoder(handle_unknown="ignore"), categorical_features)

from sklearn.preprocessing import StandardScaler

Хороші практики роботи зі Scikit-learn

Суть classification: модель вибирає один або кілька класів для нового об’єкта.;</syntaxhighlight> </syntaxhighlight>

model.fit(X_train, y_train)

("model", LogisticRegression())

Model selection — це вибір моделі, параметрів і підходу оцінювання.; TensorFlow

Clustering

  • clustering;
  • dimensionality reduction;
  • anomaly detection;
  • pattern discovery;
  • grouping;
  • representation learning;
  • exploratory data analysis.;</syntaxhighlight>

!; search = GridSearchCV( Приклади classification:

Приклади transformers:

Офіційна документація містить розділ model selection and evaluation, зокрема cross-validation, tuning hyper-parameters, decision threshold tuning та metrics and scoring.;

Безпека і відповідальне використання

Основна ідея: Scikit-learn дає готові, перевірені й зручні інструменти машинного навчання для Python, щоб не реалізовувати базові алгоритми, метрики й preprocessing з нуля.; Приклади leakage:

істотно: підбір гіперпараметрів потрібно робити тільки на training/cross-validation даних, не підглядаючи в фінальний test set.; from sklearn.compose import ColumnTransformer

Суть transformer: він не обов’язково робить прогноз, але готує або змінює інформаційні дані для наступних етапів.;
!; Scikit-learn має обмеження.;

</syntaxhighlight>

Критично: ML-модель не повинна безконтрольно приймати важливі рішення для бізнесу про людей або бізнес-середовище без перевірки, моніторингу і людської відповідальності.; Pipeline — це спосіб об’єднати preprocessing і модель в один послідовний бізнес-процес.; :contentReference [oaicite:3]{index=3}

Суть regression: модель повертає число, а не категорію.;
X_scaled = scaler.fit_transform(X_train)
])
'''Головна думка:''' Scikit-learn — це практична основа для класичного машинного навчання в Python, але успішна модель потребує правильної постановки задачі, якісних даних, чесного оцінювання і контролю після впровадження.;<syntaxhighlight lang="python">
Train data застосовується для навчання, а test data — для чесної фінальної перевірки.;<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">

Приклади estimators:

<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

* якість даних;
* bias у даних;
* приватність;
* коректність метрик;
* explainability;
* наслідки помилкових прогнозів;
* drift даних;
* моніторинг після deployment;
* обмеження моделі;
* права на інформаційні дані;
* етичні ризики.;== Приклад простої classification-моделі ==
'''істотно:''' поганий preprocessing має змогу зіпсувати навіть хорошу модель.;

</syntaxhighlight>

("preprocessor", preprocessor),

Приклади encoding:

Основні функціональні можливості

Приклади методів:

  • spam або not spam;
  • замовник купить або не купить;
  • заявка ризикована або не ризикована;
  • товар належить до категорії;
  • документ належить до теми;
  • зображення належить до класу;
  • користувач системи залишиться або піде.; Основні напрями:

Практична роль: scikit-learn часто застосовується як основа ML-процесу, а XGBoost — як одна з моделей для порівняння.; from sklearn.preprocessing import OneHotEncoder, StandardScaler Cross-validation — це метод оцінювання моделі на кількох розбиттях даних.;</syntaxhighlight>

істотно: Scikit-learn не є собою магічним інструментом.; Побудувати модель, яка прогнозує, чи замовник купить програмний продукт.;== Типові помилки користувачів ==

Train/test split — це розділення даних на частину для навчання і частину для перевірки.;

fit — навчити модель або transformer на даних.; from sklearn.metrics import accuracy_score

random_state=42

Classification

Небезпека: data leakage має змогу створити ілюзію дуже якісної моделі, яка потім погано функціонує в реальному світі.;

from sklearn.ensemble import RandomForestClassifier

Model selection

from sklearn.linear_model import LogisticRegression

Metrics — це показники якості моделі.;== Тематичні мітки == |- | Тип | Широка ML-бібліотека | Спеціалізована бібліотека gradient boosting |- | Алгоритми | Багато різних моделей | ключовий фокус на boosted trees |- | API | Єдиний sklearn-style API | Має sklearn-compatible API |- | Типова роль | Preprocessing, baseline, model selection, pipeline | Сильна модель для табличних задач |}

ML-моделі можуть впливати на рішення для бізнесу, з цієї причини Scikit-learn потрібно використовувати відповідально.; pandas зручний для:

Числові колонки → StandardScaler

Підказка: перед вибором алгоритму потрібно чітко визначити задачу: classification, regression, clustering або інший тип ML-проблеми.; Якість моделі залежить від даних, ознак, постановки задачі, метрик, тестування і правильного використання алгоритмів.;

У документації та коді часто використовують назви: model = RandomForestClassifier() from sklearn.model_selection import train_test_split from sklearn.pipeline import Pipeline

ліцензійний пакет

  • офіційно затверджений сайт Scikit-learn.; Це потрібно для:
X,

scores = cross_val_score(model, X, y, cv=5)

Scaling

Типові задачі:

predict — зробити прогноз.; інформаційні дані: категорія, бренд, характеристики, історична ціна.; Приклади моделей regression у scikit-learn:

Приклади clustering: Overfitting — це ситуація, коли модель занадто добре запам’ятала training data і погано функціонує на нових даних.; Приклади алгоритмів clustering у scikit-learn: X_train, X_test, y_train, y_test = train_test_split(

from sklearn.linear_model import LogisticRegression

"max_depth": [None, 5, 10]

Висновок: Scikit-learn зручний для класичного ML, а PyTorch — для гнучкого створення neural networks.; Суть scaling: якщо одна ознака вимірюється в тисячах, а інша в одиницях, модель має змогу неправильно оцінювати їхню важливість.;== Transformer ==

("classifier", LogisticRegression())

ColumnTransformer

Джерела

інформаційні дані: вік, місто, історичний розвиток покупок, канал залучення.; Помилка: обирати модель лише за найвищою метрикою без перевірки стабільності, інтерпретації, ризиків і поведінки на реальних даних.; Приклад:

Clustering

Regression

Головне правило: хороший ML-процес у scikit-learn — це не лише вибір алгоритму, а повний pipeline від даних до оцінювання і контролю в реальному використанні.; Приклади regression:

Типові сценарії використання

search.fit(X_train, y_train)

</div>

Ознаки overfitting:
Типовий стиль:
from sklearn.preprocessing import OneHotEncoder

== переважні аспекти Scikit-learn ==

</div>

{| class="wikitable"

* уникати data leakage;
* організувати кроки обробки;
* поєднати transformers і estimator;
* повторно використовувати workflow;
* робити cross-validation правильно;
* підбирати гіперпараметри всієї схеми;
* спростити production-використання.; XGBoost
'''Практична роль:''' ColumnTransformer особливо важливий для табличних даних, де різні колонки потребують різної обробки.; numeric_features = ["age", "income"]

<syntaxhighlight lang="text">
Scikit-learn охоплює багато розділів машинного навчання.; * OneHotEncoder;
* OrdinalEncoder;
* LabelEncoder для цільових міток;
* custom mapping.;== Приклад Pipeline з preprocessing ==

Типові задачі supervised learning:
Приклад:

model.fit(X_train, y_train)

До них належать:
  • завантажується dataset;
  • інформаційні дані діляться на train і test;
  • навчається RandomForestClassifier;
  • модель робить прогноз;
  • якість оцінюється через accuracy.; * Scikit-learn GitHub repository.; істотно: навіть якщо scikit-learn має permissive license, інформаційні дані й моделі, створені з його допомогою, можуть мати окремі обмеження.; :contentReference [oaicite:6]{index=6}
  • mean absolute error;
  • mean squared error;
  • root mean squared error;
  • R²;
  • median absolute error.; Unsupervised learning — це навчання без учителя, коли в даних немає готової правильної відповіді.; офіційно затверджений User Guide структурує scikit-learn за напрямами supervised learning.;== Estimator ==

from sklearn.preprocessing import StandardScaler

Pipeline

Metrics

Estimator — це об’єкт, який навчається на даних через метод fit.; Перед використанням у продукті потрібно перевіряти:

Метрики: MAE, RMSE, R².; * не є собою основним фреймворком для deep learning;

  • не найкращий вибір для дуже великих datasets без додаткових інструментів;
  • не вирішує проблему поганих даних;
  • не автономно запобігає data leakage;
  • не замінює domain expertise;
  • не всі алгоритми підходять для production на великих навантаженнях;
  • потрібне розуміння метрик;
  • потрібна перевірка fairness і bias;
  • потрібна правильна інтерпретація результатів.; from sklearn.ensemble import RandomForestClassifier

Preprocessing

Classification — це задача передбачення категорії або класу.; Критерій y_pred = model.predict(X_test) Для classification можуть використовуватися:

Приклад:

</syntaxhighlight>

  • вхідні ознаки;
  • цільова змінна;
  • training data;
  • модель;
  • прогноз;
  • метрика якості.; * preprocessing fit зроблено на всіх даних до train/test split;
  • у features є собою майбутня відомості;
  • test set використаний для вибору параметрів;
  • дублікати одного об’єкта потрапили і в train, і в test;
  • target випадково закодований у feature;
  • статистики обчислені на всьому датасеті.; * таблиць;
  • DataFrame;
  • читання CSV;
  • очищення даних;
  • групування;
  • аналізу колонок;
  • підготовки features.; * LogisticRegression;
  • RandomForestClassifier;
  • KMeans;
  • PCA;
  • StandardScaler;
  • Pipeline.;== Dimensionality reduction ==
  • classification;
  • regression;
  • ranking у деяких сценаріях;
  • прогнозування ризику;
  • передбачення попиту;
  • категоризація об’єктів.; Приклад логіки:

) preprocessor = ColumnTransformer([ Можливі складнощі: |- | ключовий фокус | Готові класичні ML-алгоритми | Deep learning і tensor computations |- | Типове використання | Табличні інформаційні дані, baseline, preprocessing, model selection | Neural networks, research, custom architectures |- | Рівень абстракції | Високорівневий API для моделей | Гнучкі tensor operations і neural modules |- | Для новачків | Часто простіше для ML-старту | Потребує розуміння neural networks і tensors |}

== Висновок ==

Preprocessing має змогу включати:

<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">

sklearn — це назва Python-пакета, через який зазвичай імпортують scikit-learn у коді.; * LogisticRegression;

  • RandomForestClassifier;
  • DecisionTreeClassifier;
  • SVC;
  • KNeighborsClassifier;
  • GradientBoostingClassifier;
  • Naive Bayes.; :contentReference [oaicite:5]{index=5}

Estimator — це базове поняття scikit-learn API.; Приклади: scaler.fit(X_train) Приклад:

from sklearn.model_selection import cross_val_score

X_cat = encoder.fit_transform(categories) Dimensionality reduction — це зменшення кількості ознак або вимірів у даних.; Багато ML-моделей у scikit-learn працюють із числовими даними, з цієї причини категоріальні ознаки потрібно перетворити.;

Scikit-learn часто застосовується разом із pandas і NumPy.; Scikit-learn

X,

Пояснення: це мінімальний приклад ML-процесу: інформаційні дані → розбиття → модель → навчання → прогноз → метрика.; cv=5

Для чого застосовується Scikit-learn

from sklearn.model_selection import train_test_split

Scikit-learn і PyTorch

Scikit-learn можна використовувати в різних сценаріях.; Вона надає єдиний API для моделей, transformers, preprocessing, pipelines, metrics, model selection і evaluation.; Головне правило: метрика має відповідати бізнес-задачі.; encoder = OneHotEncoder(handle_unknown="ignore")

Scikit-learn — одна з найпопулярніших бібліотек Python для класичного машинного навчання.;
"n_estimators": [100, 200],
  • прогноз ціни;
  • прогноз попиту;
  • прогноз витрат;
  • прогноз часу доставки;
  • оцінка ймовірного доходу;
  • передбачення температури;
  • прогноз кількості замовлень.; * Scikit-learn API Reference.;
  • ліцензію scikit-learn;
  • ліцензії залежностей;
  • ліцензії датасетів;
  • ліцензії моделей;
  • політики компанії;
  • вимоги до attribution;
  • обмеження використання даних.; !; * Документація щодо preprocessing, model selection, metrics і pipelines.;</syntaxhighlight>

Cross-validation

fit, predict і transform

Це має змогу бути істотно для:

GridSearchCV перебирає задану сітку параметрів.; як ілюстрація:

Scikit-learn і TensorFlow

{{SEO

Scaling — це приведення числових ознак до порівняного масштабу.; * Scikit-learn