机器学习基本概念
1. 监督学习 vs 无监督学习
监督学习 (Supervised Learning)
- 定义:使用带有标签的数据进行训练,模型学习从输入特征到输出标签的映射关系
- 特点:有明确的"正确答案"(标签)指导学习过程
- 主要类型:
- 分类(Classification):预测离散的类别标签
- 例如:垃圾邮件检测(垃圾邮件/非垃圾邮件)、图像识别(猫/狗)
- 回归(Regression):预测连续的数值
- 例如:房价预测、温度预测
- 分类(Classification):预测离散的类别标签
无监督学习 (Unsupervised Learning)
- 定义:使用没有标签的数据,模型自行发现数据中的模式或结构
- 特点:没有明确的"正确答案",让数据自己"说话"
- 主要类型:
- 聚类(Clustering):将相似的数据点分组
- 例如:客户细分、新闻主题分类
- 降维(Dimensionality Reduction):减少特征数量同时保留重要信息
- 例如:PCA(主成分分析)
- 关联规则学习:发现数据中的关联规则
- 例如:购物篮分析(啤酒和尿布的故事)
- 聚类(Clustering):将相似的数据点分组
2. 基本术语
特征 (Features)
- 也称为"自变量"或"输入变量"
- 描述数据的属性或特征
- 在表格数据中通常对应列(除了标签列)
- 例如:预测房价时,特征可能包括面积、卧室数量、地理位置等
标签 (Label)
- 也称为"目标变量"、"因变量"或"输出变量"
- 我们想要预测的值
- 在监督学习中才有
- 例如:房价预测中的实际房价、垃圾邮件检测中的"垃圾/非垃圾"分类
训练集 (Training Set)
- 用于训练模型的数据子集
- 模型从中学习特征与标签之间的关系
- 通常占原始数据的70-80%
测试集 (Test Set)
- 用于评估模型性能的数据子集
- 模拟模型在真实世界中的表现
- 通常占原始数据的20-30%
- 重要原则:测试集在训练过程中绝对不能使用!
验证集 (Validation Set, 可选)
- 用于调整模型超参数和选择最佳模型
- 防止模型在测试集上过拟合
- 当数据量很大时常用
3. 机器学习流程示例
- 收集数据:获取原始数据集
- 数据预处理:清洗、转换数据
- 划分数据集:分为训练集和测试集
- 选择模型:根据问题类型选择适当算法
- 训练模型:用训练集拟合模型
- 评估模型:用测试集评估性能
- 调优模型:调整参数提高性能
- 部署模型:将模型应用到实际问题中
Scikit-learn中的对应概念
在Scikit-learn中,这些概念通常表现为:
from sklearn.model_selection import train_test_split# 特征矩阵(X)和标签向量(y)
X = [[特征1, 特征2], [特征1, 特征2], ...] # 通常是二维数组/矩阵
y = [标签1, 标签2, ...] # 通常是一维数组/向量# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 选择模型
from sklearn.linear_model import LogisticRegression # 分类示例
model = LogisticRegression()# 训练模型
model.fit(X_train, y_train)# 评估模型
score = model.score(X_test, y_test)