Skip to content

机器学习入门

机器学习(Machine Learning)是 AI 的核心分支,让计算机从数据中学习规律,而不需要手工编写规则。

什么是机器学习

传统编程 vs 机器学习:

传统编程:
程序员写规则 → 输入数据 → 输出结果
例:if 温度 > 30: 判断为"热"

机器学习:
输入数据 + 正确答案 → 算法学习 → 得到规则
例:给 1000 条天气数据,让算法自己学会判断"热"的规则

机器学习的分类

1. 监督学习(Supervised Learning)

有"标准答案"的学习:

输入:邮件内容
输出:垃圾邮件 / 正常邮件(已知标签)
目标:学会预测新邮件

常见任务:

  • 分类(Classification):预测类别(垃圾邮件?)
  • 回归(Regression):预测数值(房价多少?)

2. 无监督学习(Unsupervised Learning)

没有"标准答案",让算法自己发现规律:

输入:用户行为数据
输出:??(让算法找)
目标:发现用户分群(聚类)

常见任务:

  • 聚类(Clustering):把相似的数据分组
  • 降维(Dimensionality Reduction):压缩数据

3. 强化学习(Reinforcement Learning)

通过"试错+奖励"学习:

Agent 在环境中行动 → 获得奖励/惩罚 → 调整策略
例:AlphaGo 下棋,赢了 +1,输了 -1

机器学习的基本流程

1. 收集数据

2. 数据清洗(处理缺失值、异常值)

3. 特征工程(提取有用的特征)

4. 选择算法

5. 训练模型

6. 评估模型(准确率、召回率...)

7. 调参优化

8. 部署使用

常见算法

分类算法

算法特点适用场景
逻辑回归简单,可解释二分类
决策树可解释,易过拟合小规模数据
随机森林准确率高通用
SVM高维数据好小样本
XGBoost竞赛常用结构化数据

回归算法

算法特点
线性回归简单,可解释
岭回归 / Lasso防止过拟合
多项式回归非线性关系

用 Scikit-learn 写一个简单的分类器

python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 1. 加载数据
iris = load_iris()
X, y = iris.data, iris.target

# 2. 拆分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 3. 训练模型
model = RandomForestClassifier()
model.fit(X_train, y_train)

# 4. 预测
y_pred = model.predict(X_test)

# 5. 评估
print(f"准确率: {accuracy_score(y_test, y_pred)}")

过拟合与欠拟合

欠拟合(Underfitting):
模型太简单,学不会规律
解决:增加模型复杂度、增加特征

过拟合(Overfitting):
模型"背下了"训练数据,泛化能力差
解决:更多数据、正则化、交叉验证

评估指标

分类问题

准确率(Accuracy):预测正确的比例
精确率(Precision):预测为正的样本中,真正为正的比例
召回率(Recall):真正为正的样本中,被预测为正的比例
F1 Score:精确率和召回率的调和平均

回归问题

MAE(平均绝对误差)
MSE(均方误差)
RMSE(均方根误差)
R²(决定系数)

学习资源