【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']
代码解读:
load_iris():加载特别经典的鸢尾花数据集,包含 3 类共 150 朵花的特征train_test_split:将数据分为 80% 训练集和 20% 测试集KNeighborsClassifier:K 近邻算法,通过寻找最近的 K 个邻居来判断类别fit():用训练数据教会模型识别规律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千美元
代码解读:
load_boston():也是加载特别经典的波士顿房价数据集,包含 506 个样本和 13 个特征LinearRegression:线性回归模型,寻找特征与房价的线性关系fit():通过最小二乘法拟合最佳直线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 近邻 | 小数据集、分类任务 | 简单易懂 | 计算量大、对噪声敏感 |
线性回归 | 线性关系明显的回归任务 | 快速、可解释性强 | 无法处理非线性关系 |
决策树 | 分类 / 回归、特征重要性分析 | 可视化强、可处理非线性 | 容易过拟合 |
随机森林 | 复杂数据集、高准确率需求 | 鲁棒性强、泛化能力好 | 计算资源消耗大 |
五、魔法实践:从零开始的监督学习项目
- 数据收集:可以从公开数据集(如 Kaggle)或自有数据获取数据
- 数据清洗:处理缺失值、异常值
- 特征选择:挑选与目标最相关的特征
- 模型训练:尝试不同算法,调整超参数
- 模型评估:用测试集验证模型性能
- 部署应用:将模型集成到实际系统中
热门推荐
劳动保护费一年发几次?法律解读与实务分析
1梯2户和2梯4户的区别及优缺点对比
合同协议费用动态图表:实时呈现合同费用变化趋势
张建云院士团队深度剖析南水北调工程生态环境影响:成效显著,挑战犹存
痛风患者应如何饮食以获得快速缓解
爹爹爱喝骨头汤,膝盖长满痛风石,医生提醒:高尿酸患者这些汤要少喝
职场英语:收到坏消息除了"Oh..."不知说什么好?即学20句英语回应免尴尬
走进白云山景区(广东)
广州中山纪念堂:一座融合传统与现代的历史文化地标
报案回执单有什么用
为什么晒太阳能促进钙吸收?
美尼尔综合症怎么治
帕特里克的箱子无穷奇遇Patrick's Parabox
员工上厕所须持“离岗证”?工厂限时如厕被曝光,官方介入调查
如何降低三菱翼神的油耗?
定向增发从受理到批准的时间周期及影响因素
厨房里的中药房:10种常见食材的药用价值
饮食干预对糖尿病肾病的影响
海运THC是什么费用?一文读懂集装箱码头装卸作业费
贴现资产的账务处理怎么做?
什么是贴现值?贴现值的计算方法是怎样的?
什么是磨玻璃结节?成都中医专家彭先珍解答,磨玻璃结节的危害!
世界上人数最多的宗教:基督教信徒超过22亿
中国十大名粥:从砂锅粥到腊八粥,每一种都是舌尖上的温暖记忆
如何将C盘以外的其他磁盘空间(D,E,F,G等)合并到C盘/如何增加C盘容量
科学健身!碎片化运动成为新趋势,每天仅4分钟,心血管疾病风险或降低45%
根尖周炎消不下去能不能拔牙?这里有根尖周炎的治疗方法请熟知
学步车是神器还是魔鬼?学步车的利与弊,教你如何正确使用和选择
如何确认自己是否交过社保?这种确认方式有哪些可靠性?
广东124个镇跻身全国千强镇,它们做对了什么?