《零基础入门AI:传统机器学习入门(从理论到Scikit-Learn实践)》

一、机器学习介绍

1. 定义

机器学习(ML)是人工智能的分支,核心是让计算机从数据中自动学习规律,并根据所得到的规律对未来数据进行预测,而非显式编程。例如:通过历史房价数据预测新房价,系统自动学习"面积-位置-价格"的关系。

2. 发展简史

  • 1950s:图灵提出"学习机器"概念
  • 1980s:决策树、反向传播算法诞生
  • 1990s:支持向量机(SVM)兴起
  • 2000s:集成方法(如随机森林)突破
  • 2010s:深度学习爆发,但传统ML仍主导结构化数据处理

3. 分类

类型 特点 典型算法
监督学习 有标注数据 线性回归、KNN、SVM
无监督学习 无标注数据 K-Means、PCA
半监督学习 部分标注数据 标签传播算法
强化学习 通过奖励机制学习 Q-Learning

4. 必备基础知识

  • 数学:线性代数(矩阵运算)、概率论(贝叶斯定理)、微积分(梯度计算)

  • 编程:Python基础 + NumPy/Pandas库

  • 学习路径

    Python基础 NumPy/Pandas Matplotlib可视化 Scikit-Learn实战

5. 应用场景

  • 金融:信用评分
  • 医疗:疾病预测
  • 零售:推荐系统
  • 工业:设备故障检测

6. 趋势分析

传统ML优势:小数据高效训练模型可解释性强(如决策树规则),与深度学习形成互补。

7. 项目开发流程

plaintext 复制代码
1. 问题定义 → 2. 数据收集 → 3. 数据清洗 → 4. 特征工程 → 5. 模型训练 → 6. 模型评估 → 7. 部署应用

二、Scikit-Learn工具详解

Scikit-Learn:Python最流行的机器学习库,提供统一API接口,涵盖完整机器学习工作流。

**1. 安装与验证 **:

bash 复制代码
pip install scikit-learn  # 需预先安装NumPy和SciPy
python 复制代码
import sklearn
print(sklearn.__version__)  # 输出:1.4.0

2. 核心模块

模块 功能
sklearn.datasets 数据集加载
sklearn.preprocessing 数据预处理
sklearn.feature_extraction 特征提取
sklearn.model_selection 模型选择与验证
sklearn.metrics 评估指标

三、数据集详解

1. 玩具数据集(内置示例)

  • 鸢尾花数据集(load_iris):150朵花,4个特征(花瓣长宽)
  • 手写数字(load_digits):8x8像素的0-9数字图片

2. 现实世界数据集

  • 房价预测(fetch_california_housing):20,640条房屋数据
  • 新闻分类(fetch_20newsgroups):18,000篇新闻文本

3. 数据加载示例

python 复制代码
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target  # X是特征矩阵,y是标签向量

4. 本地CSV数据加载

python 复制代码
import pandas as pd
df = pd.read_csv('data.csv')
X = df[['feature1', 'feature2']]  # 选择特征列
y = df['target']                  # 目标列

5. 数据集划分

数据划分原理

https://scikit-learn.org/stable/_images/grid_search_cross_validation.png

为什么划分? 防止模型"死记硬背"训练数据(过拟合)

python 复制代码
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)  # 80%训练,20%测试

四、特征工程:数据到模型的桥梁

1. 概念

特征工程是将原始数据转换为更能表达问题本质的特征的过程,是提升模型性能的关键。类比烹饪:食材(原始数据)→ 切配调味(特征工程)→ 更易烹制(模型训练)。

2. 关键API与原理
(1)字典特征提取(DictVectorizer

  • 原理:将分类特征转换为数值矩阵

  • 场景:处理类别型特征(如"城市"=["北京","上海"])

  • 独热编码(One-Hot)原理

    将分类变量转换为二进制向量:

python 复制代码
原始数据:
[{'城市': '北京', '温度': 25}, 
 {'城市': '上海', '温度': 30}]

转换后:
[[1, 0, 25],  # 北京 → [1,0]
 [0, 1, 30]]  # 上海 → [0,1]

(2)文本特征提取

  • 词频统计(CountVectorizer

    将文本转换为词频矩阵

  • 处理流程

    1. 分词:["我","爱","机器学习"]
    2. 构建词汇表:{"我":0, "爱":1, "机器学习":2}
    3. 生成向量:[1, 1, 1](每个词出现1次)
    python 复制代码
    corpus = ["I love ML", "ML is fun"]
    → 词汇表:["I", "love", "ML", "is", "fun"]
    → 向量化:[[1,1,1,0,0], [0,0,1,1,1]]
  • TF-IDF(TfidfVectorizer

    核心思想:衡量词语在文档中的重要程度

    解决痛点 :抑制高频但无意义的词(如"的"、"是")
    公式

    复制代码
    TF = 词在文档中出现次数 / 文档总词数
    IDF = log(总文档数 / (包含该词的文档数 + 1))
    TF-IDF = TF(词频) × IDF(逆文档频率)

    物理意义

    • 常见词(如"的")→ IDF值低 → 权重低
    • 专业词(如"梯度下降")→ IDF值高 → 权重高

    举例

    在1000篇文档中,"机器学习"出现在20篇,某文档中该词出现5次:
    TF = 5 / 文档总词数
    IDF = log(1000/20) ≈ 3.9
    TF-IDF = TF * 3.9

(3)无量纲化(预处理)

  • 标准化(StandardScaler)
    z = (x - μ) / σ (μ:均值, σ:标准差)

    将数据缩放到均值为0,标准差为1

  • 归一化(MinMaxScaler)
    x' = (x - min) / (max - min)

    将数据压缩到[0,1]区间

(4)特征降维(PCA)

  • 为什么降维? 消除冗余特征,加速训练
  • 核心思想:找到数据最大方差方向,用更少维度保留主要信息
  • 数学本质 :找到数据方差最大的方向(主成分)
    步骤
    1. 计算协方差矩阵
    2. 求矩阵的特征值和特征向量
    3. 按特征值从大到小保留前k个特征向量
      投影公式:新坐标 = 原始数据 × 特征向量矩阵

完整示例:鸢尾花分类

python 复制代码
# 1. 导入工具库
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import make_pipeline

# 2. 创建处理管道
pipeline = make_pipeline(
    StandardScaler(),   # 标准化
    PCA(n_components=2), # 降维到2维
    RandomForestClassifier() # 分类模型
)

# 3. 训练评估
pipeline.fit(X_train, y_train)
accuracy = pipeline.score(X_test, y_test)
print(f"模型准确率:{accuracy:.2f}")
相关推荐
EndingCoder20 分钟前
Three.js + AI:结合 Stable Diffusion 生成纹理贴图
开发语言·前端·javascript·人工智能·stable diffusion·ecmascript·three.js
俊哥V33 分钟前
字节跳动“扣子”(Coze)开源:AI智能体生态的技术革命
人工智能·开源
Sherlock Ma36 分钟前
字节跳动GR-3:可泛化、支持长序列复杂操作任务的机器人操作大模型(技术报告解读)
人工智能·计算机视觉·语言模型·机器人·大模型·aigc·具身智能
蚝油菜花37 分钟前
将GLM 4.5接入Claude Code,打造最具性价比的AI工程师
人工智能·ai编程·claude
汪子熙40 分钟前
什么是大语言模型性能评估的 pass@5 指标
人工智能
亚马逊云开发者44 分钟前
基于 Amazon Nova 实现优化呼叫中心导航场景
人工智能
涛思数据(TDengine)1 小时前
时序数据库厂商 TDengine 发布 AI 原生的工业数据管理平台 IDMP,“无问智推”改变数据消费范式
大数据·运维·数据库·人工智能·tdengine
那年一路北1 小时前
Deforum Stable Diffusion,轻松实现AI视频生成自由!
人工智能·stable diffusion·音视频
正经教主1 小时前
【n8n】如何跟着AI学习n8n【02.5】:第一部分总练习
人工智能·学习·教程·n8n
CV工程师丁Sir2 小时前
Vibe Coding vs 规范驱动开发:AI 时代编程范式的冲突与融合
人工智能·驱动开发