第五篇:从零开始训练你的第一个机器学习模型

97 阅读3分钟

🎯 文章目标:

帮助读者真正上手训练一个完整的机器学习模型。无需高深数学,不讲公式,直接用代码带你“跑通一次”AI项目的基础闭环:数据加载 → 模型训练 → 预测 → 评估。

1. 准备数据集:使用scikit-learn自带数据

在初学阶段,我们不需要用大型真实数据集,`scikit-learn`提供了很多标准的练习用数据,例如“鸢尾花数据集(Iris)”、“波士顿房价(Boston)”、“手写数字识别(Digits)”等。

✅ 我们这里选择“鸢尾花数据集(Iris)”,一个经典的分类问题,用于判断花的种类。

python


复制编辑
from sklearn.datasets import load_iris
import pandas as pd

# 加载数据
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = pd.Series(iris.target)

# 查看前几行数据
print(X.head())
print(y.head())

2. 划分训练集与测试集

为了验证模型效果,我们需要将数据集分为“训练集”和“测试集”:
python


复制编辑
from sklearn.model_selection import train_test_split

# 拆分为训练数据和测试数据(80%训练,20%测试)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

🔍 测试集的作用是:在模型训练完成后,用“没见过的数据”来验证模型的预测效果,避免“背答案”现象。


3. 选择一个模型:逻辑回归

逻辑回归是最简单、最经典的分类算法之一。虽然名字里带“回归”,但它实际上是用于分类问题的。
python


复制编辑
from sklearn.linear_model import LogisticRegression

# 创建模型实例并训练
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)

🚀 至此,你已经拥有了人生中的第一个“AI模型”!


4. 模型预测:让AI做出判断

模型训练完成后,我们就可以使用它对新数据做出预测了。
python


复制编辑
# 使用测试集做预测
y_pred = model.predict(X_test)

# 显示前几个预测结果
print("预测结果:", y_pred[:5])
print("实际结果:", y_test.values[:5])

5. 评估模型表现:用分数说话

我们需要量化模型的好坏,最简单的方式就是计算“准确率”。
python


复制编辑
from sklearn.metrics import accuracy_score

accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率:{accuracy * 100:.2f}%")

🧠 如果准确率很高(例如超过90%),说明模型已经能较好地识别不同的花种。


6. 可视化决策边界(进阶拓展)

你可能想知道模型“是如何分辨三种花的”?我们可以用图形来展示模型的“决策边界”,不过这里需要先进行“降维”处理(因为原始数据是4维)。
python


复制编辑
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# 将特征降为2维,方便画图
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

# 绘制散点图
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y, cmap='viridis')
plt.title("鸢尾花数据的二维投影")
plt.xlabel("主成分1")
plt.ylabel("主成分2")
plt.show()

7. **总结:你已经完成了第一个机器学习项目闭环!

到目前为止,你已经完成了从零训练一个AI模型的全过程:
阶段内容
📦 数据获取加载鸢尾花数据集
🧹 数据处理拆分训练集与测试集
🧠 模型训练使用逻辑回归算法
🎯 模型预测用测试数据预测花种
📈 模型评估准确率评估模型效果

✅ 这意味着你已经拥有了训练机器学习模型的“第一手经验”!


✅ 延伸阅读(可选拓展):

如果你想使用其他算法如KNN、随机森林、SVM,只需要修改一行代码:
python


复制编辑
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier()
  • 如果你想把模型保存成文件,将在后面“模型部署与保存”章节讲解。

下一篇文章,我们将探索“常见机器学习算法入门”,帮你了解不同类型的AI模型适合什么场景,并带你动手实践更多算法!