Scikit-learn简称 Sklearn是一个开源的机器学习库建立在 NumPy、SciPy 和 matplotlib 这些科学计算库之上提供了简单高效的数据挖掘和数据分析工具。Scikit-learn 包含了许多常见的机器学习算法包括线性回归、岭回归、Lasso回归支持向量机SVM决策树、随机森林、梯度提升树聚类算法如K-Means、层次聚类、DBSCAN降维技术如PCA、t-SNE神经网络接下来我们通过一个简单的分类任务——使用鸢尾花数据集Iris Dataset来演示机器学习的流程鸢尾花数据集是一个经典的数据集包含 150 个样本描述了三种不同类型的鸢尾花的花瓣和萼片的长度和宽度。步骤 1导入库导入需要的 Python 库import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score步骤 2加载数据加载鸢尾花数据集# 加载鸢尾花数据集 iris load_iris() # 将数据转化为 pandas DataFrame X pd.DataFrame(iris.data, columnsiris.feature_names) # 特征数据 y pd.Series(iris.target) # 标签数据 # 显示前五行数据 print(X.head())打印输出数据如下所示sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) 0 5.1 3.5 1.4 0.2 1 4.9 3.0 1.4 0.2 2 4.7 3.2 1.3 0.2 3 4.6 3.1 1.5 0.2 4 5.0 3.6 1.4 0.2步骤 3数据集划分将数据集划分为训练集和测试集通常使用 70% 训练集和 30% 测试集的比例# 划分训练集和测试集80% 训练集20% 测试集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)步骤 4特征缩放标准化许多机器学习算法都依赖于特征的尺度特别是像 K 最近邻算法。为了确保每个特征的均值为 0标准差为 1我们使用标准化来处理数据# 标准化特征 scaler StandardScaler() X_train scaler.fit_transform(X_train) X_test scaler.transform(X_test)步骤 5选择模型并训练在这个例子中我们选择 K-Nearest NeighborsKNN 算法来进行分类# 创建 KNN 分类器 knn KNeighborsClassifier(n_neighbors3) # 训练模型 knn.fit(X_train, y_train)步骤 6评估模型训练完成后我们使用测试集评估模型的准确性# 预测测试集 y_pred knn.predict(X_test) # 计算准确率 accuracy accuracy_score(y_test, y_pred) print(f模型准确率: {accuracy:.2f})完成以上代码输出结果为模型准确率: 1.00步骤 7可视化结果可选你可以通过可视化来进一步了解模型的表现尤其是在多维数据集的情况下。例如你可以用二维图来显示 KNN 分类的结果不过在这里需要对数据进行降维简化为二维。import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score # 加载鸢尾花数据集 iris load_iris() # 将数据转化为 pandas DataFrame X pd.DataFrame(iris.data, columnsiris.feature_names) # 特征数据 y pd.Series(iris.target) # 标签数据 # 划分训练集和测试集80% 训练集20% 测试集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42) # 标准化特征 scaler StandardScaler() X_train scaler.fit_transform(X_train) X_test scaler.transform(X_test) # 创建 KNN 分类器 knn KNeighborsClassifier(n_neighbors3) # 训练模型 knn.fit(X_train, y_train) # 预测测试集 y_pred knn.predict(X_test) # 计算准确率 accuracy accuracy_score(y_test, y_pred) # 可视化 - 这里只是一个简单示例具体可根据实际情况选择绘图方式 plt.scatter(X_test[:, 0], X_test[:, 1], cy_pred, cmapviridis, markero) plt.title(KNN Classification Results) plt.xlabel(Feature 1) plt.ylabel(Feature 2) plt.show()输出原文地址https://www.runoob.com/ml/ml-python.html