Scikit-learn
! ! :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">
- Штучний інтелект
- Machine Learning
- Deep Learning
- Python
- NumPy
- SciPy
- pandas
- TensorFlow
- PyTorch
- Hugging Face
- XGBoost
- Classification
- Regression
- Clustering
- Pipeline
- Cross-validation
- Data leakage
- MLOps
- Датасет
- Модель машинного навчання
Приклад: