Day 4:机器学习初探——从监督学习到无监督学习

摘要

本文系统讲解机器学习的核心范式:

  1. 监督学习:用标注数据训练模型(如房价预测)
  2. 无监督学习:发现数据隐藏模式(如客户分群)
  3. 半监督学习:混合标注与未标注数据
  4. 强化学习 :通过奖惩机制优化决策
    配套实战:用Scikit-learn完成鸢尾花分类与顾客聚类分析

目录

  1. 机器学习四大范式对比
  2. 监督学习全解析
    • 分类 vs 回归
    • 损失函数与评估指标
  3. 无监督学习核心方法
    • 聚类(K-Means/DBSCAN)
    • 降维(PCA/t-SNE)
  4. 实战:双任务对比实验
    • 任务1:监督学习分类鸢尾花
    • 任务2:无监督学习聚类顾客数据
  5. 模型选择避坑指南

1. 机器学习四大范式对比

对比表格

类型 输入数据 典型算法 应用场景
监督学习 带标签的数据 随机森林/SVM 垃圾邮件识别
无监督学习 无标签数据 K-Means/PCA 市场细分
半监督学习 部分标注数据 Label Propagation 医学影像分析
强化学习 环境状态+奖励 Q-Learning 游戏AI/机器人控制

💡 关键区别

  • 监督学习需要"标准答案",无监督学习探索"数据本身的结构"

2. 监督学习全解析

(1)分类 vs 回归

流程图

复制代码
输入数据 → 特征工程 → 选择模型(分类/回归) → 训练 → 评估 → 部署

典型算法对比

python 复制代码
# 分类模型(输出离散值)
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier()

# 回归模型(输出连续值)
from sklearn.linear_model import LinearRegression
reg = LinearRegression()

(2)评估指标

核心指标表

| 任务类型 | 指标 | 公式/说明 |
|----------|----------|-------------------------------------------|---------|----|
| 分类 | 准确率 | (TP+TN)/(TP+TN+FP+FN) |
| 分类 | F1-score | 2*(Precision*Recall)/(Precision+Recall) |
| 回归 | MAE | Σ | 预测值-真实值 | /n |
| 回归 | R² | 解释方差比例(0~1) |


3. 无监督学习核心方法

(1)K-Means聚类

算法步骤

  1. 随机选择K个中心点
  2. 将每个点分配到最近的中心
  3. 重新计算中心点位置
  4. 重复2-3步直到收敛

可视化表格

迭代次数 中心点坐标 样本分布
1 [(1,2), (4,5)] Cluster1: 30个样本
10(收敛) [(1.2,2.1), (4.3,4.8)] Cluster1: 28个样本

(2)PCA降维

Python实现

python 复制代码
from sklearn.decomposition import PCA
pca = PCA(n_components=2)  # 降至2维
X_reduced = pca.fit_transform(X)

4. 实战:双任务对比实验

任务1:监督学习分类鸢尾花

完整代码

python 复制代码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 加载数据
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)

# 训练模型
from sklearn.svm import SVC
model = SVC(kernel='rbf')
model.fit(X_train, y_train)

# 评估
print("测试集准确率:", model.score(X_test, y_test))

任务2:无监督学习聚类顾客数据

关键步骤

python 复制代码
import pandas as pd
from sklearn.cluster import KMeans

# 生成模拟数据
data = pd.DataFrame({
    '年龄': np.random.randint(18,70,100),
    '月消费额': np.random.normal(3000, 500, 100)
})

# 聚类分析
kmeans = KMeans(n_clusters=3)
data['cluster'] = kmeans.fit_predict(data)

# 可视化
import seaborn as sns
sns.scatterplot(data=data, x='年龄', y='月消费额', hue='cluster')

🔥 动手任务:修改n_clusters参数,观察聚类结果变化并截图分享!


5. 模型选择避坑指南

错误1 :用分类算法解决回归问题

解决方案:检查目标变量是否连续

错误2 :忽略数据标准化

正确做法

python 复制代码
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

下一篇预告

Day 5:实战!用Scikit-learn完成你的第一个分类模型
"从数据清洗到模型部署,手把手教你打造能用的AI系统!"


知识图谱总结

graph LR A[机器学习] --> B[监督学习] A --> C[无监督学习] B --> D[分类] B --> E[回归] C --> F[聚类] C --> G[降维]

各位老板,需要补充哪个算法的详细推导过程?或者希望增加其他实战案例?

相关推荐
极小狐3 分钟前
极狐GitLab 如何 cherry-pick 变更?
人工智能·git·机器学习·gitlab
旧故新长1 小时前
支持Function Call的本地ollama模型对比评测-》开发代理agent
人工智能·深度学习·机器学习
一只可爱的小猴子2 小时前
2022李宏毅老师机器学习课程笔记
人工智能·笔记·机器学习
Blossom.1184 小时前
人工智能在智能家居中的应用与发展
人工智能·深度学习·机器学习·智能家居·vr·虚拟现实·多模态融合
薄荷很无奈4 小时前
CuML + Cudf (RAPIDS) 加速python数据分析脚本
python·机器学习·数据分析·gpu算力
Y1nhl12 小时前
搜广推校招面经八十一
开发语言·人工智能·pytorch·深度学习·机器学习·推荐算法·搜索算法
小墙程序员16 小时前
机器学习入门(二)线性回归
机器学习
追逐☞16 小时前
机器学习(7)——K均值聚类
机器学习·均值算法·聚类