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

Scikit-learn

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

! ! :contentReference [oaicite:0]{index=0}

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

Train/test split

Приклади estimators:

from sklearn.preprocessing import StandardScaler

Data leakage

  • висока якість на train;
  • низька якість на validation/test;
  • надто складна модель;
  • нестабільність на нових даних. Data leakage — це ситуація, коли модель під час навчання отримує інформацію, якої не буде в реальному використанні. Офіційна документація містить розділ model selection and evaluation, зокрема cross-validation, tuning hyper-parameters, decision threshold tuning та metrics and scoring. params,

критично: поганий preprocessing здатна зіпсувати навіть хорошу модель. Основна ідея: Scikit-learn дає готові, перевірені й зручні інструменти машинного навчання для Python, щоб не реалізовувати базові алгоритми, метрики й preprocessing з нуля. ("scaler", StandardScaler()),

Типові помилки користувачів

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

Clustering

Unsupervised learning

Unsupervised learning застосовується для для:

  • accuracy;
  • precision;
  • recall;
  • F1-score;
  • ROC AUC;
  • confusion matrix;
  • log loss. NumPy потрібен для:
  • mean absolute error;
  • mean squared error;
  • root mean squared error;
  • R²;
  • median absolute error.

Приклади алгоритмів clustering у scikit-learn:

</syntaxhighlight>

Це корисно, коли інформаційні дані мають:

Scikit-learn часто застосовується для разом із XGBoost, LightGBM або CatBoost. {| class="wikitable"

Офіційна документація scikit-learn має окремий розділ unsupervised learning, який містить clustering, mixture models, manifold learning, matrix decomposition, covariance estimation, novelty and outlier detection та інші напрями.=== Classification ===

from sklearn.pipeline import Pipeline

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

<syntaxhighlight lang="python">

* стабільніше оцінити якість;
* зменшити залежність від одного train/test split;
* порівнювати моделі;
* підбирати гіперпараметри;
* виявляти overfitting;
* краще використовувати доступні інформаційні дані. '''Помилка:''' обирати модель лише за найвищою метрикою без перевірки стабільності, інтерпретації, ризиків і поведінки на реальних даних.</div>

* вхідні ознаки;
* цільова змінна;
* training data;
* модель;
* прогноз;
* метрика якості.
  • офіційний сайт Scikit-learn.</syntaxhighlight>

print("Accuracy:", accuracy_score(y_test, y_pred))

from sklearn.pipeline import Pipeline

Scikit-learn так само можна порівняти з PyTorch.

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

'''Estimator'''  це базове поняття scikit-learn API. PyTorch
<syntaxhighlight lang="python">
'''Практична роль:''' scikit-learn часто застосовується для як основа ML-процесу, а XGBoost  як одна з моделей для порівняння.</div>

'''Суть model selection:''' потрібно не без зусиль навчити одну модель, а чесно порівняти варіанти і вибрати той, що краще функціонує на нових даних. * уникати data leakage;
* організувати кроки обробки;
* поєднати transformers і estimator;
* повторно використовувати workflow;
* робити cross-validation правильно;
* підбирати гіперпараметри всієї схеми;
* спростити production-використання. * LogisticRegression;
* RandomForestClassifier;
* KMeans;
* PCA;
* StandardScaler;
* Pipeline. data = load_iris()

RandomizedSearchCV випадково пробує комбінації з простору параметрів. '''fit'''  навчити модель або transformer на даних.== Типові сценарії використання ==

Приклади leakage:
'''Практична користь:''' cross-validation дає більш надійну оцінку, ніж одна випадкова перевірка на test set. * Документація щодо preprocessing, model selection, metrics і pipelines. X,
|-
| Тип
| Широка ML-бібліотека
| Спеціалізована бібліотека gradient boosting
|-
| Алгоритми
| Багато різних моделей
| базовий фокус на boosted trees
|-
| API
| Єдиний sklearn-style API
| Має sklearn-compatible API
|-
| Типова роль
| Preprocessing, baseline, model selection, pipeline
| Сильна модель для табличних задач
|}

'''Практична роль:''' хороший ML-процес шукає баланс між занадто простою і занадто складною моделлю.<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">

Приклади regression:

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

!== ColumnTransformer ==

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

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

* PCA;
* TruncatedSVD;
* NMF;
* Isomap;
* t-SNE;
* feature selection. XGBoost

Приклади scalers:

predictions = pipe.predict(X_test)

* починати із baseline;
* правильно робити train/test split;
* використовувати Pipeline;
* використовувати ColumnTransformer;
* робити cross-validation;
* вибирати метрики під задачу;
* перевіряти imbalance;
* зберігати preprocessing разом із моделлю;
* аналізувати помилки;
* тестувати модель на нових даних;
* документувати features;
* контролювати data leakage;
* перевіряти fairness і bias;
* моніторити модель після deployment. '''Underfitting'''  це ситуація, коли модель занадто проста і не вловлює закономірності навіть у training data. Приклади encoding:

'''Cross-validation'''  це метод оцінювання моделі на кількох розбиттях даних. Scikit-learn виступає як open-source проєктом. Якість моделі залежить від даних, ознак, постановки задачі, метрик, тестування і правильного використання алгоритмів.<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">

== Робота з pandas і NumPy ==

* scaling;
* normalization;
* encoding categorical features;
* imputation missing values;
* binarization;
* polynomial features;
* text vectorization;
* feature extraction;
* feature selection. Scikit-learn
== Encoding categorical features ==
Потім усе разом  модель

! Scikit-learn має обмеження.== Джерела ==
Метрики: precision, recall, F1-score, ROC AUC. '''Висновок:''' Scikit-learn зручний для класичного ML, а PyTorch  для гнучкого створення neural networks. Ознаки overfitting:
 ("preprocessor", preprocessor),
Приклад:

=== Regression ===

'''GridSearchCV''' і '''RandomizedSearchCV''' використовуються для підбору гіперпараметрів. * classification;
* regression;
* ranking у деяких сценаріях;
* прогнозування ризику;
* передбачення попиту;
* категоризація обєктів. from sklearn.model_selection import cross_val_score

)

 RandomForestClassifier(),

* clustering;
* dimensionality reduction;
* anomaly detection;
* pattern discovery;
* grouping;
* representation learning;
* exploratory data analysis.<syntaxhighlight lang="text">

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

{| class="wikitable"

!</div>

* прогноз ціни;
* прогноз попиту;
* прогноз витрат;
* прогноз часу доставки;
* оцінка ймовірного доходу;
* передбачення температури;
* прогноз кількості замовлень. y,

* classification;
* regression;
* clustering;
* dimensionality reduction;
* preprocessing;
* feature selection;
* model selection;
* cross-validation;
* metrics;
* pipeline;
* hyperparameter tuning;
* anomaly detection;
* робочих експериментів із табличними даними.
  • spam або not spam;
  • клієнт ERP купить або не купить;
  • заявка ризикована або не ризикована;
  • товар належить до категорії;
  • документ належить до теми;
  • зображення належить до класу;
  • користувач системи залишиться або піде.

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

<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
'''Просте пояснення:''' estimator — це будь-який об’єкт scikit-learn, який можна “навчити” або “налаштувати” на даних. До них належать:

Scikit-learn часто застосовують, коли потрібно для класичного машинного навчання, аналізу табличних даних, побудови baseline-моделей, навчальних проєктів, прототипів і production-рішень, де потрібні зрозумілі, стабільні й добре документовані ML-алгоритми. !<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
from sklearn.ensemble import RandomForestClassifier
'''Приклад:''' якщо виступає як історичні інформаційні дані клієнтів і відомо, хто купив ERP-продукт, supervised модель здатна навчитися прогнозувати ймовірність покупки для нових клієнтів.== Тематичні мітки ==

'''Підказка:''' перед вибором алгоритму потрібно чітко визначити задачу: classification, regression, clustering або інший тип ML-проблеми. офіційний сайт описує scikit-learn як “Machine Learning in Python”, з простими й ефективними інструментами для predictive data analysis, побудованими на NumPy, SciPy і matplotlib. машинного навчання забезпечується через '''Scikit-learn''' — це open-source бібліотека Python; так само реалізовано яка надає інструменти для класифікації, регресії, кластеризації, зменшення розмірності, preprocessing, model selection, evaluation і побудови ML-pipeline. '''sklearn''' — це назва Python-пакета, через який зазвичай імпортують scikit-learn у коді. Приклад:
У scikit-learn часто використовуються три ключові методи. Scikit-learn


X_cat = encoder.fit_transform(categories)

</div>
 "max_depth": [None, 5, 10]
Scikit-learn — одна з найпопулярніших бібліотек Python для класичного машинного навчання. * Scikit-learn API Reference. * прогноз churn;
* кредитний скоринг;
* сегментація клієнтів;
* класифікація документів;
* прогноз продажів;
* anomaly detection;
* recommendation baseline;
* text classification;
* оцінка якості ліда;
* прогноз часу виконання;
* аналіз факторів;
* baseline для ML-змагання;
* навчальний ML-проєкт. from sklearn.metrics import accuracy_score

)

* ліцензію scikit-learn;
* ліцензії залежностей;
* ліцензії датасетів;
* ліцензії моделей;
* політики компанії;
* вимоги до attribution;
* обмеження використання даних. * Scikit-learn User Guide. Під час роботи зі scikit-learn часто виникають типові помилки. * не виступає як основним фреймворком для deep learning;
* не найкращий вибір для дуже великих datasets без додаткових інструментів;
* не вирішує проблему поганих даних;
* не автоматизовано запобігає data leakage;
* не замінює domain expertise;
* не всі алгоритми підходять для production на великих навантаженнях;
* потрібне розуміння метрик;
* потрібна перевірка fairness і bias;
* потрібна правильна інтерпретація результатів. * LogisticRegression;
* RandomForestClassifier;
* DecisionTreeClassifier;
* SVC;
* KNeighborsClassifier;
* GradientBoostingClassifier;
* Naive Bayes.<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
'''Суть classification:''' модель вибирає один або кілька класів для нового об’єкта. params = {
 X,
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

=== Clustering ===

Перед використанням у продукті потрібно перевіряти:

== Transformer ==

'''Головна перевага pipeline:''' усі кроки preprocessing і модель зберігаються разом, тому менше ризику випадково обробити train і test по-різному.<div style="background:#fff7ed; border-left:6px solid #fb923c; padding:12px; margin:12px 0;">

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

</div>

== GridSearchCV і RandomizedSearchCV ==

* візуалізації;
* зменшення шуму;
* пришвидшення моделей;
* стиснення даних;
* пошуку структури;
* підготовки features;
* роботи з високовимірними даними.== Для чого застосовується для Scikit-learn ==
</div>
model = Pipeline([

Результат: групи клієнтів для подальшого аналізу.== Estimator ==
== Classification ==

'''Metrics''' — це показники якості моделі.<div style="background:#fff7ed; border-left:6px solid #fb923c; padding:12px; margin:12px 0;">
'''Model selection''' — це вибір моделі, параметрів і підходу оцінювання. Train data застосовується для для навчання, а test data — для чесної фінальної перевірки.== Dimensionality reduction ==
</div>
== ліцензійний пакет ==

X_train, X_test, y_train, y_test = train_test_split(

Рекомендовано:
</div>
</div>
'''Суть clustering:''' алгоритм сам шукає групи в даних без готових міток класів. * Scikit-learn paper: “Scikit-learn: Machine Learning in Python”. Побудувати модель, яка прогнозує, чи клієнт ERP купить ERP-продукт.<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">

* StandardScaler;
* MinMaxScaler;
* OneHotEncoder;
* PCA;
* TfidfVectorizer;
* SimpleImputer. Основні напрями:

Типові задачі supervised learning:
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
Потрібно враховувати:
<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
Scikit-learn часто порівнюють із TensorFlow. |-
| базовий фокус
| Класичне машинне навчання
| Deep learning і ML-платформа
|-
| Типові інформаційні дані
| Табличні, числові, невеликі й середні datasets
| Зображення, текст, аудіо, великі neural networks
|-
| API
| Простий fit/predict/transform
| Keras, tensors, computational graphs
|-
| Типові задачі
| Classification, regression, clustering, preprocessing
| Neural networks, deep learning, production ML
|-
| Складність старту
| Зазвичай простіше
| Зазвичай складніше
|}

y_pred = model.predict(X_test)
</div>
 y,

== Overfitting і underfitting ==

 random_state=42

</div>
'''Clustering''' — це групування об’єктів за схожістю. Критерій
'''критично:''' підбір гіперпараметрів потрібно робити тільки на training/cross-validation даних, не підглядаючи в фінальний test set. y_pred = model.predict(X_test)
scores = cross_val_score(model, X, y, cv=5)

== Supervised learning ==

Preprocessing здатна включати:
 "n_estimators": [100, 200],
X_train, X_test, y_train, y_test = train_test_split(

X_scaled = scaler.fit_transform(X_train)

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

</div>

* preprocessing fit зроблено на всіх даних до train/test split;
* у features виступає як майбутня інформаційні матеріали;
* test set використаний для вибору параметрів;
* дублікати одного об’єкта потрапили і в train, і в test;
* target випадково закодований у feature;
* статистики обчислені на всьому датасеті. '''Головна думка:''' Scikit-learn — це практична основа для класичного машинного навчання в Python, але успішна модель потребує правильної постановки задачі, якісних даних, чесного оцінювання і контролю після впровадження. GitHub-репозиторій scikit-learn описує його як Python module for machine learning built on top of SciPy and distributed under the 3-Clause BSD license.== Regression ==
'''Головне правило:''' метрика має відповідати бізнес-задачі. '''Критично:''' test set не можна використовувати для навчання або вибору параметрів, інакше оцінка якості буде завищеною. * Scikit-learn GitHub repository.

Приклад: якщо виступає як інформаційні дані клієнтів без готових сегментів, unsupervised learning здатна допомогти знайти групи схожих клієнтів.

model.fit(X_train, y_train)

print(scores.mean())

</syntaxhighlight>

cv=5
== Див. так само ==

'''Pipeline'''  це спосіб обєднати preprocessing і модель в один послідовний бізнес-процес. :contentReference [oaicite:5]{index=5}

* KMeans;
* DBSCAN;
* AgglomerativeClustering;
* MeanShift;
* SpectralClustering;
* GaussianMixture. :contentReference [oaicite:3]{index=3}
from sklearn.preprocessing import OneHotEncoder
</div>

)
</div>
</div>

search = GridSearchCV(

! from sklearn.ensemble import RandomForestClassifier

* Logistic Regression;
* SVM;
* KNN;
* PCA;
* neural networks;
* distance-based algorithms;
* gradient-based optimization.</div>

from sklearn.model_selection import train_test_split
predictions = model.predict(X_test)

Для classification можуть використовуватися:
як приклад:
from sklearn.datasets import load_iris

<syntaxhighlight lang="text">
== Приклад простої classification-моделі ==
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

from sklearn.preprocessing import OneHotEncoder, StandardScaler

'''Перевага:''' Scikit-learn має єдиний стиль API, тому різні моделі часто використовуються однаково: створити обєкт, викликати fit, потім predict або transform. categorical_features = ["city", "plan"]

* LinearRegression;
* Ridge;
* Lasso;
* ElasticNet;
* RandomForestRegressor;
* GradientBoostingRegressor;
* SVR;
* KNeighborsRegressor. Scikit-learn охоплює багато розділів машинного навчання. Scikit-learn можна використовувати в різних сценаріях. Accuracy не завжди виступає як правильною метрикою, особливо якщо класи незбалансовані. ("model", LogisticRegression())

* StandardScaler;
* MinMaxScaler;
* RobustScaler;
* MaxAbsScaler. {| class="wikitable"
from sklearn.linear_model import LogisticRegression

 test_size=0.2,
model.fit(X_train, y_train)
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">

Приклади classification:
<syntaxhighlight lang="python">

</syntaxhighlight>

("cat", OneHotEncoder(handle_unknown="ignore"), categorical_features)

sklearn

  • числові ознаки;
  • категоріальні ознаки;
  • текстові ознаки;
  • дати;
  • різні типи обробки.

from sklearn.ensemble import RandomForestClassifier

from sklearn.compose import ColumnTransformer

Можливі складнощі:

Приклади clustering:

  • якість даних;
  • bias у даних;
  • приватність;
  • коректність метрик;
  • explainability;
  • наслідки помилкових прогнозів;
  • drift даних;
  • моніторинг після deployment;
  • обмеження моделі;
  • права на інформаційні дані;
  • етичні ризики. search.fit(X_train, y_train)

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

}

== Pipeline ==

model = RandomForestClassifier(random_state=42)

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

* supervised learning;
* unsupervised learning;
* model selection;
* model evaluation;
* preprocessing;
* feature extraction;
* feature selection;
* decomposition;
* clustering;
* covariance estimation;
* anomaly detection;
* pipelines;
* metrics;
* calibration;
* ensemble methods. '''Небезпека:''' модель здатна показувати високу якість у notebook, але провалитися в реальному використанні через leakage, drift або неправильну постановку задачі.== Висновок ==

])

* передбачити категорію;
* передбачити числове значення;
* кластеризувати обєкти;
* знайти аномалії;
* підготувати інформаційні дані;
* нормалізувати ознаки;
* закодувати категоріальні змінні;
* розділити інформаційні дані на train і test;
* виконати cross-validation;
* підібрати гіперпараметри;
* порівняти кілька моделей;
* створити pipeline для preprocessing і моделі. ! scaler.fit(X_train)
Це здатна бути критично для:
У документації та коді часто використовують назви:

офіційний User Guide структурує scikit-learn за напрямами supervised learning.<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">
</div>

'''predict'''  зробити прогноз. '''Просте пояснення:''' scikit-learn  це назва бібліотеки, а sklearn  імя модуля, який імпортується в Python.</div>

== конкурентні переваги Scikit-learn ==
</div>
'''Суть regression:''' модель повертає число, а не категорію. encoder = OneHotEncoder(handle_unknown="ignore")

'''Суть:''' scikit-learn покриває більшість класичних ML-задач, які виникають під час роботи з табличними й числовими даними.<syntaxhighlight lang="python">

== Metrics ==

Основні конкурентні переваги Scikit-learn:

Scikit-learn має пакет `sklearn.preprocessing`, який надає utility functions і transformer classes для перетворення raw feature vectors у представлення, придатніше для downstream estimators. :contentReference [oaicite:2]{index=2}

<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">
<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
== Scikit-learn і PyTorch ==
'''Preprocessing'''  це підготовка даних перед навчанням моделі. Приклади моделей classification у scikit-learn:
<div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;">
інформаційні дані: частота покупок, середній чек, категорії товарів. :contentReference [oaicite:6]{index=6}
X = data.data

Побудувати модель прогнозу ціни товару. '''Supervised learning'''  це навчання з учителем, коли модель навчається на прикладах із правильними відповідями. Багато ML-моделей у scikit-learn працюють із числовими даними, тому категоріальні ознаки потрібно перетворити. Окремо варто відзначити unsupervised learning, model selection and evaluation, inspection, visualization, data transformations і іншими частинами. '''критично:''' навіть якщо scikit-learn має permissive license, інформаційні дані й моделі, створені з його допомогою, можуть мати окремі обмеження.<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
</div>
'''Головна перевага:''' scikit-learn дає єдину, зрозумілу й практичну основу для більшості задач класичного машинного навчання.<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">
<div style="background:#fff7ed; border-left:6px solid #fb923c; padding:12px; margin:12px 0;">

'''transform'''  перетворити інформаційні дані.
random_state=42

])

Приклад логіки:

Критично: ML-модель не повинна безконтрольно приймати важливі рішення для бізнесу про людей або бізнес-середовище без перевірки, моніторингу і людської відповідальності.

model.fit(X_train, y_train)

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

офіційний User Guide scikit-learn містить supervised learning як один із головних розділів і містить алгоритми linear models, SVM, nearest neighbors, decision trees, ensemble methods, neural network models та інші. У supervised learning виступає як:
Приклад:

== Загальний SEO-опис ==

Unsupervised learning — це навчання без учителя, коли в даних немає готової правильної відповіді. Вона надає єдиний API для моделей, transformers, preprocessing, pipelines, metrics, model selection і evaluation. Приклад:

інформаційні дані: категорія, бренд, характеристики, історична ціна. Dimensionality reduction — це зменшення кількості ознак або вимірів у даних. Практична роль: ColumnTransformer особливо важливий для табличних даних, де різні колонки потребують різної обробки. :contentReference [oaicite:4]{index=4}

У цьому прикладі: </syntaxhighlight>

y = data.target

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

Метрики: MAE, RMSE, R². Transformer зазвичай має методи:

Estimator — це об’єкт, який навчається на даних через метод fit. Train/test split — це розділення даних на частину для навчання і частину для перевірки. Критерій

GridSearchCV перебирає задану сітку параметрів.== Приклад Pipeline з preprocessing ==

  • scikit-learn — назва проєкту;
  • sklearn — назва Python-модуля;
  • sklearn API — стиль роботи з моделями, transformers і pipelines. :contentReference [oaicite:1]{index=1}

Overfitting — це ситуація, коли модель занадто добре запам’ятала training data і погано функціонує на нових даних.

Категоріальні колонки → OneHotEncoder Типовий стиль:

Суть scaling: якщо одна ознака вимірюється в тисячах, а інша в одиницях, модель здатна неправильно оцінювати їхню важливість. TensorFlow Classification — це задача передбачення категорії або класу. Критерій pandas зручний для:

ColumnTransformer дає можливість застосовувати різні preprocessing-кроки до різних колонок. критично: Scikit-learn не виступає як магічним інструментом. Головне правило: fit виконується на training data, а transform або predict застосовується до нових даних. model = RandomForestClassifier() from sklearn.model_selection import GridSearchCV Він оптимізує:

Основні функції ERP

pipe.fit(X_train, y_train)

* train/test leakage;
* неправильний preprocessing;
* fit scaler на всіх даних;
* вибір не тієї метрики;
* відсутність cross-validation;
* ігнорування imbalance;
* використання test set для підбору параметрів;
* неправильне кодування категорій;
* відсутність pipeline;
* overfitting;
* відсутність аналізу помилок;
* довіра до моделі без перевірки на реальних даних. * Scikit-learn Getting Started.== Приклади запитів і задач ==
'''Scikit-learn'''  це одна з найважливіших бібліотек Python для класичного машинного навчання. '''Професійний підхід:''' pipeline оптимізує зробити ML-процес повторюваним, контрольованим і менш схильним до data leakage.<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

Вона застосовується для для:
Приклади transformers:
from sklearn.preprocessing import StandardScaler

== Cross-validation ==

preprocessor = ColumnTransformer([

 ("classifier", LogisticRegression())
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
== Preprocessing ==
'''Scaling'''  це приведення числових ознак до порівняного масштабу.

Для transformer: scaler = StandardScaler()

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

  • числових обчислень;
  • матриць;
  • векторних операцій;
  • роботи з форматами даних, які очікує scikit-learn. Scikit-learn
  • таблиць;
  • DataFrame;
  • читання CSV;
  • очищення даних;
  • групування;
  • аналізу колонок;
  • підготовки features. Scikit-learn потрібен, коли потрібно оперативно побудувати, навчити, оцінити й порівняти ML-моделі.
    == Scikit-learn і XGBoost ==
    
    Сегментувати клієнтів за поведінкою.<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
    <div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">
    Алгоритм: KMeans або DBSCAN.<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
    
    == Безпека і відповідальне використання ==
    
    model = RandomForestClassifier()
    
    * fit;
    * transform;
    * fit_transform. numeric_features = ["age", "income"]
    '''Transformer'''  це обєкт, який перетворює інформаційні дані. test_size=0.2,
    
    <div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
    <div style="background:#fff7ed; border-left:6px solid #fb923c; padding:12px; margin:12px 0;">
    </div>
    Числові колонки  StandardScaler
    
    Це потрібно для:
    </div>
    '''Regression'''  це задача передбачення числового значення. через '''Практична роль:''' dimensionality reduction користувачі можуть зробити складні інформаційні дані компактнішими і зрозумілішими. Типові задачі:
    

Pipeline оптимізує:

Приклади: from sklearn.model_selection import train_test_split

Приклад: Ознаки underfitting:

</syntaxhighlight>

  • train_test_split;
  • cross_val_score;
  • KFold;
  • StratifiedKFold;
  • GridSearchCV;
  • RandomizedSearchCV;
  • validation curves;
  • learning curves;
  • metrics;
  • model comparison. !== fit, predict і transform ==

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

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

  • завантажується dataset;
  • інформаційні дані діляться на train і test;
  • навчається RandomForestClassifier;
  • модель робить прогноз;
  • якість оцінюється через accuracy. Практична зв’язка: pandas готує табличні інформаційні дані, NumPy представляє числові масиви, а scikit-learn навчає й оцінює моделі. Практична порада: для нового ML-проєкту часто варто почати зі scikit-learn baseline, а вже потім переходити до складніших моделей. Водночас якість ML-рішення залежить не лише від бібліотеки, а й від даних, метрик, pipeline, відсутності leakage, тестування і відповідального використання. model.fit(X_train, y_train)

from sklearn.metrics import accuracy_score

Приклади моделей regression у scikit-learn:

  • OneHotEncoder;
  • OrdinalEncoder;
  • LabelEncoder для цільових міток;
  • custom mapping.</syntaxhighlight>

Суть transformer: він не обов’язково робить прогноз, але готує або змінює інформаційні дані для наступних етапів. print(search.best_params_)

ML-моделі можуть впливати на рішення для бізнесу, тому Scikit-learn потрібно використовувати відповідально. Для regression: X_test_scaled = scaler.transform(X_test)

Приклад:

  • простий і стабільний API;
  • багато класичних ML-алгоритмів;
  • preprocessing tools;
  • pipelines;
  • model selection;
  • metrics;
  • cross-validation;
  • хороша документація;
  • інтеграційні функції ERP з NumPy, SciPy і pandas;
  • open-source;
  • підходить для навчання;
  • підходить для baseline-моделей;
  • зручний для табличних задач.SEO title: Scikit-learn — бібліотека Python для машинного навчання, моделей, preprocessing і оцінювання

SEO keywords: scikit-learn, sklearn, Python machine learning, машинне навчання Python, supervised learning, unsupervised learning, classification, regression, clustering, preprocessing, pipeline, estimator, transformer, fit, predict, cross-validation, model selection, metrics, GridSearchCV, RandomForest, LogisticRegression, SVM, PCA, KMeans, NumPy, SciPy, pandas, open-source ML, BSD license

</noinclude>
 {{SEO
Шаблон для службового SEO-опису сторінки. 

}}


  • низька якість на train;
  • низька якість на test;
  • модель занадто проста;
  • недостатньо features.== Scikit-learn і TensorFlow ==

<syntaxhighlight lang="python">

Приклад: