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[降维]

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

相关推荐
人工智能培训17 小时前
深度学习—卷积神经网络(1)
人工智能·深度学习·神经网络·机器学习·cnn·知识图谱·dnn
云天徽上17 小时前
【机器学习】Kaggle案例之Rossmann连锁药店销售额预测:时间序列与机器学习完美融合的实战指南
机器学习·数据挖掘·kaggle
啊巴矲17 小时前
小白从零开始勇闯人工智能:机器学习初级篇(贝叶斯算法与SVM算法)
人工智能·机器学习·支持向量机
智算菩萨18 小时前
【Python机器学习】交叉验证与超参数调优:自动化寻优之旅
人工智能·深度学习·机器学习
小鸡吃米…19 小时前
机器学习 - Python 库
人工智能·python·机器学习
Brduino脑机接口技术答疑19 小时前
TDCA 算法在 SSVEP 场景中的 Padding 技术:原理、应用与工程实现
人工智能·算法·机器学习·数据分析·脑机接口
智算菩萨19 小时前
【Python机器学习】Bagging 与 Boosting:集成学习的两种风格
机器学习·集成学习·boosting
小鸡吃米…20 小时前
机器学习——生命周期
人工智能·python·机器学习
databook21 小时前
回归分析全家桶(16种回归模型实现方式总结)
人工智能·python·机器学习
武子康1 天前
大数据-199 决策树模型详解:节点结构、条件概率视角与香农熵计算
大数据·后端·机器学习