📜  automl 分类教程 sklearn - Python (1)

📅  最后修改于: 2023-12-03 15:29:32.409000             🧑  作者: Mango

AutoML 分类教程 sklearn - Python

在机器学习中,AutoML代表自动机器学习,它使用机器学习算法和工具来自动化一些预处理任务,例如数据清理和数据归一化,并为您选择和微调适合您数据的最佳模型。

在本教程中,我们将使用Python和scikit-learn库来展示如何使用AutoML分类。

准备工作

在开始本教程之前,我们需要安装几个库:

!pip install -U pip
!pip install -U scikit-learn
!pip install -U pandas
!pip install -U seaborn
!pip install -U matplotlib
!pip install -U lazypredict
数据集

我们将使用Sklearn的鸢尾花数据集来进行分类。鸢尾花数据集包含三个类别,每个类别的样本数量为50,总计150个样本,每个样本有四个特征。

from sklearn.datasets import load_iris

iris = load_iris()
X = iris.data
y = iris.target
数据预处理

我们现在需要将数据拆分成训练集和测试集。我们将使用80%的数据进行训练,20%的数据进行测试。

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

我们还需要标准化数据。

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler().fit(X_train)

X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
训练模型

现在我们已经准备好将训练数据放入AutoML模型中进行训练,以查找最佳模型。

from lazypredict.Supervised import LazyClassifier

clf = LazyClassifier(verbose=0,ignore_warnings=True, custom_metric=None)
models, predictions = clf.fit(X_train, X_test, y_train, y_test)

该模型训练时间较长,具体时间取决于您的机器性能和数据集大小。

模型分析

现在我们可以通过分析结果来查看哪个模型最好地适合我们的数据。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

plt.rcParams['figure.figsize'] = [10, 5]

models_df = pd.DataFrame(models)
models_df.head()

| 模型名称 | 训练时间 | ROC AUC Score | 加载时间 | |-------------------------|---------------|---------------|---------------| | LGBMClassifier | 0.230569 | 1.000000 | 0.050759 | | GradientBoostingClassifier | 0.100680 | 1.000000 | 0.031325 | | SVC (rbf) | 0.002260 | 1.000000 | 0.002191 | | DecisionTreeClassifier | 0.002155 | 0.963592 | 0.001558 | | RidgeClassifierCV | 0.003625 | 0.963592 | 0.001925 |

我们可以通过分类器的ROC AUC Score进行排序,并将得分可视化。

best_models = models_df.sort_values('ROC AUC Score', ascending=False)
best_models.head(10)

plt.figure(figsize=(12, 6))
sns.barplot(x='ROC AUC Score', y='Model', data=best_models[:10], color='b')
plt.title('比较各分类器ROC AUC Score')
plt.xlabel('ROC AUC Score')
plt.ylabel('分类器')
plt.show()

比较各分类器ROC AUC Score

通过这是模型分析,我们可以选择最佳模型,并将其用于分类任务。

结论

在这个例子中,我们展示了如何使用Python和scikit-learn库进行AutoML分类。我们可以看到,使用AutoML可以有效地减少模型选择和微调的时间,使用最佳模型可以显着增加模型的精度。