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

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

相关推荐
IT古董2 小时前
【漫话机器学习系列】259.神经网络参数的初始化(Initialization Of Neural Network Parameters)
人工智能·神经网络·机器学习
田梓燊7 小时前
数学复习笔记 12
笔记·线性代数·机器学习
广州智造14 小时前
OptiStruct实例:3D实体转子分析
数据库·人工智能·算法·机器学习·数学建模·3d·性能优化
ayiya_Oese19 小时前
[模型部署] 3. 性能优化
人工智能·python·深度学习·神经网络·机器学习·性能优化
仙人掌_lz19 小时前
机器学习与人工智能:NLP分词与文本相似度分析
人工智能·机器学习·自然语言处理
IT古董21 小时前
【漫话机器学习系列】261.工具变量(Instrumental Variables)
人工智能·机器学习
lucky_lyovo1 天前
机器学习-特征工程
人工智能·机器学习
我想睡觉2611 天前
Python训练营打卡DAY27
开发语言·python·机器学习
Jackson@ML1 天前
一分钟了解机器学习
人工智能·机器学习
Code哈哈笑1 天前
【机器学习】支持向量回归(SVR)从入门到实战:原理、实现与优化指南
人工智能·算法·机器学习·回归·svm