问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【0 基础也能懂!】机器学习之监督学习指南:从分类到回归

创作时间:
作者:
@小白创作中心

【0 基础也能懂!】机器学习之监督学习指南:从分类到回归

引用
CSDN
1.
https://blog.csdn.net/qq_70350287/article/details/146334377

监督学习是机器学习领域的重要分支,它通过已知的输入输出对来训练模型,使其能够对新的未知数据做出准确的预测。本文将从基础概念出发,通过具体的代码示例,详细讲解监督学习的核心内容,帮助读者快速掌握这一重要技术。

一、监督学习:机器学习的 "魔法学徒"

想象你面前有一个装满彩色弹珠的盒子,你需要教会机器人根据颜色和大小将弹珠分成不同的罐子。监督学习就像是这个过程:我们给机器人提供标注好的弹珠(颜色 + 大小→罐子类型),让它学会如何自动分类新弹珠。这就是监督学习的核心 —— 从带标签的数据中学习规律。

二、监督学习的两大基石

1. 分类任务:给世界打上标签

原理:像图书管理员一样分类

分类任务的目标是将数据分到不同的类别中。例如:

  • 区分垃圾邮件和正常邮件
  • 识别手写数字
  • 判断肿瘤是良性还是恶性

代码示例:用 KNN 算法识别鸢尾花

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# 加载数据集(鸢尾花分类)
iris = load_iris()
X = iris.data  # 特征:花瓣长度、宽度等
y = iris.target  # 标签:0、1、2类鸢尾花

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建KNN分类器(K=3)
knn = KNeighborsClassifier(n_neighbors=3)

# 训练模型
knn.fit(X_train, y_train)

# 预测新数据
new_flower = np.array([[5.1, 3.5, 1.4, 0.2]])  # 新样本特征
prediction = knn.predict(new_flower)
print(f"预测结果:{iris.target_names[prediction]}")  # 输出:['setosa']

代码解读:

  1. load_iris():加载特别经典的鸢尾花数据集,包含 3 类共 150 朵花的特征
  2. train_test_split:将数据分为 80% 训练集和 20% 测试集
  3. KNeighborsClassifier:K 近邻算法,通过寻找最近的 K 个邻居来判断类别
  4. fit():用训练数据教会模型识别规律
  5. predict():对新样本进行分类预测

2. 回归任务:预测连续值的魔法

原理:像天气预报员一样预测

回归任务用于预测连续数值,例如:

  • 预测房价
  • 估计股票走势
  • 预测用户点击广告的概率

代码示例:用线性回归预测房价

import numpy as np
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 加载数据集(波士顿房价)
boston = load_boston()
X = boston.data  # 特征:犯罪率、房屋年龄等
y = boston.target  # 标签:房价(千美元)

# 创建线性回归模型
lr = LinearRegression()

# 训练模型
lr.fit(X, y)

# 预测房价
sample_house = X[0:1]  # 第一个样本的特征
predicted_price = lr.predict(sample_house)
print(f"预测房价:{predicted_price[0]:.2f}千美元")  # 输出:24.0千美元

代码解读:

  1. load_boston():也是加载特别经典的波士顿房价数据集,包含 506 个样本和 13 个特征
  2. LinearRegression:线性回归模型,寻找特征与房价的线性关系
  3. fit():通过最小二乘法拟合最佳直线
  4. predict():根据特征预测房价

三、监督学习的其他魔法技能

1. 降维:让数据瘦身

当数据维度太多时(如 1000 个特征),可以使用主成分分析(PCA)减少维度:

from sklearn.decomposition import PCA

# 将数据从13维降到2维
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

2. 特征工程:让数据更聪明

通过创建新特征提升模型性能:

import pandas as pd

# 假设数据中有'year'和'month'列
df['year_month'] = df['year'] * 100 + df['month']  # 创建组合特征

3. 模型评估:检验魔法效果

分类任务常用指标:

  • 准确率(Accuracy)
  • 混淆矩阵
  • F1 分数

回归任务常用指标:

  • 均方误差(MSE)
  • 平均绝对误差(MAE)
  • R² 分数

四、选择合适的魔法工具

算法类型
适用场景
优点
缺点
K 近邻
小数据集、分类任务
简单易懂
计算量大、对噪声敏感
线性回归
线性关系明显的回归任务
快速、可解释性强
无法处理非线性关系
决策树
分类 / 回归、特征重要性分析
可视化强、可处理非线性
容易过拟合
随机森林
复杂数据集、高准确率需求
鲁棒性强、泛化能力好
计算资源消耗大

五、魔法实践:从零开始的监督学习项目

  1. 数据收集:可以从公开数据集(如 Kaggle)或自有数据获取数据
  2. 数据清洗:处理缺失值、异常值
  3. 特征选择:挑选与目标最相关的特征
  4. 模型训练:尝试不同算法,调整超参数
  5. 模型评估:用测试集验证模型性能
  6. 部署应用:将模型集成到实际系统中
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号