机器学习小项目之鸢尾花分类

项目目标:

使用机器学习算法(如 K-近邻算法)来对鸢尾花数据集进行分类。

1. 准备工作

首先,我们需要安装一些常用的机器学习库,如 scikit-learnpandas

复制代码
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. 总结

这个小项目展示了机器学习中的基础步骤:数据加载、预处理、模型训练、评估以及可视化。你可以通过调整模型的参数,尝试其他算法(如决策树、支持向量机等),或者进行更复杂的数据集分析来进一步深入学习机器学习。

相关推荐
VIP_CQCRE4 小时前
用 Ace Data Cloud 快速接入 Kling Motion:让图片按指定动作生成视频
人工智能·api·ai视频·kling·acedatacloud
namexingyun4 小时前
Scaling Law bug实战启示:从“虚胖“到“精瘦“的算力效率革命
开发语言·网络·人工智能·bug·ai编程
KaMeidebaby4 小时前
卡梅德生物技术快报|纳米抗体技术全套实操流程:AFB1 全合成文库淘选 + 分子对接定点突变参数手册
人工智能·python·tcp/ip·算法·机器学习
梦想三三4 小时前
Flask + PyTorch模型部署实战:从训练权重到API接口完整工程解析(附完整代码)
人工智能·pytorch·python·flask·模型推理·ai 工程化
Imchendiana5 小时前
《狂人日记NO.10》— 我的AI使用经验分享
人工智能
我的温馨家园5 小时前
新手入局干细胞研究的五大认知陷阱
大数据·人工智能·精选
爱吃大芒果5 小时前
AI 智能体工作流设计蓝图:将非结构化情绪记录转化为高精度的模型 Prompt 上下文
人工智能·华为·prompt·harmonyos
小尘要自信5 小时前
小米摄像头怎么接入RTSP?Go2RTC转流、EasyNVR录像与公网访问教程
人工智能·docker·开源
ACP广源盛139246256735 小时前
GSV6155 @ACP#工业车规 DP1.4 重定时器 Retimer
大数据·人工智能·分布式·嵌入式硬件
Black蜡笔小新5 小时前
企业AI算力工作站/企业级AI模型工作站DLTM训推一体工作站破解企业AI建模难题
人工智能·机器学习