机器学习小项目之鸢尾花分类
- 互联网
- 2025-08-30 01:27:02

项目目标:
使用机器学习算法(如 K-近邻算法)来对鸢尾花数据集进行分类。
1. 准备工作首先,我们需要安装一些常用的机器学习库,如 scikit-learn 和 pandas。
pip install scikit-learn pandas matplotlib 2. 导入必要的库 import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt 3. 加载数据集scikit-learn 提供了内置的鸢尾花数据集,我们可以直接导入。
from sklearn.datasets import load_iris # 加载鸢尾花数据集 iris = load_iris() # 转换为DataFrame便于查看 data = pd.DataFrame(data=iris.data, columns=iris.feature_names) data['species'] = iris.target print(data.head()) 4. 数据预处理在这一步,我们将数据拆分为特征(X)和标签(y),并进行训练集和测试集的划分。
X = iris.data # 特征数据 y = iris.target # 目标标签 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) 5. 特征缩放KNN算法对数据的尺度很敏感,所以我们需要对特征进行标准化。
scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) 6. 训练模型现在我们可以使用 K-近邻算法来训练模型了。
# 使用 KNN 算法 knn = KNeighborsClassifier(n_neighbors=5) knn.fit(X_train_scaled, y_train) 7. 预测与评估训练完成后,我们可以用测试集进行预测,并评估模型的准确率。
# 进行预测 y_pred = knn.predict(X_test_scaled) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print(f"模型的准确率: {accuracy:.2f}") 8. 可视化我们可以通过可视化来进一步理解模型的表现。
# 显示预测结果 plt.scatter(y_test, y_pred, color='blue') plt.plot([0, 2], [0, 2], 'r--') plt.xlabel('真实值') plt.ylabel('预测值') plt.title('KNN预测结果') plt.show() 9. 完整代码示例 import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt from sklearn.datasets import load_iris # 加载鸢尾花数据集 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 标准化特征数据 scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) # 训练 KNN 模型 knn = KNeighborsClassifier(n_neighbors=5) knn.fit(X_train_scaled, y_train) # 进行预测 y_pred = knn.predict(X_test_scaled) # 评估模型的准确率 accuracy = accuracy_score(y_test, y_pred) print(f"模型的准确率: {accuracy:.2f}") # 可视化预测结果 plt.scatter(y_test, y_pred, color='blue') plt.plot([0, 2], [0, 2], 'r--') plt.xlabel('真实值') plt.ylabel('预测值') plt.title('KNN预测结果') plt.show() 10. 总结这个小项目展示了机器学习中的基础步骤:数据加载、预处理、模型训练、评估以及可视化。你可以通过调整模型的参数,尝试其他算法(如决策树、支持向量机等),或者进行更复杂的数据集分析来进一步深入学习机器学习。
机器学习小项目之鸢尾花分类由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“机器学习小项目之鸢尾花分类”