机器学习简介:从小白到入门的第一课

写在前面

恭喜你打开了这篇文章!这意味着你对”机器学习”这个听起来很高大上的东西产生了兴趣。

别担心,这篇文章就是写给完全零基础的小白的。我不会一上来就给你扔一堆公式和术语,而是先用大白话跟你聊聊天,让你搞清楚机器学习到底是什么玩意儿。

学完之后,你不仅会理解什么是机器学习,还能写出自己的第一个机器学习程序。准备好了吗?我们开始!


一、机器学习到底是什么?一个生活例子讲清楚

1.1 先聊聊我们人类是怎么学习的

在说机器学习之前,咱们先想想自己是怎么学习的。

你小时候是怎么学会识别猫和狗的?你的爸妈会拿着一只猫跟你说:“看,这是猫,猫的特点是尖耳朵、胡子、会喵喵叫。“然后又指着狗说:“这是狗,狗的特点是垂耳朵、摇尾巴、会汪汪叫。”

看多了之后,你就自然能区分猫和狗了——即使遇到一只你没见过的流浪猫,你也能一眼认出来:“哦,这是只猫。”

这个过程,就是人类的学习:通过观察大量的例子,总结出规律,然后用规律去判断新的事物。

1.2 那机器学习是什么呢?

机器学习干的其实就是同一件事——让计算机通过看大量的例子,自己总结出规律,然后用来判断新的东西。

举个具体的例子:

你想让计算机会识别猫。你不用告诉它”猫有尖耳朵”这种规则——说实话,你也不知道该怎么用代码精确描述一只猫。

你只需要这样做:

  1. 找一万张图片,有些是猫,有些不是猫
  2. 把这些图片和答案(是猫/不是猫)一起扔给计算机
  3. 计算机会自己研究这些图片,慢慢摸索出猫长什么样
  4. 训练完之后,你给它一张新图片,它就能告诉你这是不是猫

整个过程中,你没有写一行代码告诉它”猫长什么样”。它是自己从数据里学出来的。

这就是机器学习的核心思想:不是你来教它,而是让它自己学。

1.3 再来一个更接地气的例子

想象一下你要教一个小孩子学做饭。

传统编程的方式是:你手把手教他——“先放油,油开了放葱花,葱花变黄了放鸡蛋,翻炒三十秒,再放盐…”你得把每个步骤都说得清清楚楚。

机器学习的方式是:你把一百道宫保鸡丁的照片和成品都给他看,然后说:“去研究研究,看看做好这道菜都需要什么。“然后这个孩子自己会去分析、去尝试,最终自己摸索出一套做菜的方法。

后者就是机器学习——计算机不是在执行你写好的步骤,而是在从数据中发现规律

1.4 用一句话总结

机器学习就是:给计算机一堆数据,让它自己找出规律,然后用这些规律去处理新的数据。

就这么简单!


二、三种学习方式:监督、无监督、强化学习一看就懂

当你开始了解机器学习,会经常听到”监督学习”、“无监督学习”、“强化学习”这些词。一听名字挺吓人的,但其实特别好理解。

2.1 监督学习:你告诉它标准答案

监督学习是最常用的一种方式,也是最符合我们日常认知的学习方式。

什么叫”监督”?就像考试的时候有老师监督一样——你做题的时候,旁边有标准答案告诉你对不对。

所以监督学习的特点是:训练数据是有标准答案的。

继续用猫和狗的例子:

  • 你给计算机一万张图片,每张图片都标注好了”这是猫”或”这是狗”
  • 计算机学习的时候,知道自己每次判断是对还是错
  • 就像有个老师在旁边说:“对了,这个判断正确”、“错了,这个应该是猫不是狗”
  • 学完之后,给它新图片,它就能自己判断了

监督学习的典型任务有两种:

分类:把东西分到某个类别里

  • 垃圾邮件识别(是垃圾/不是垃圾)
  • 猫狗图片识别(猫/狗)
  • 疾病诊断(有病/没病)

回归:预测一个数值

  • 预测房价(给你房子的大小、位置,预测价格)
  • 预测明天的气温
  • 预测股票的走势

简单记:有标准答案的学习 = 监督学习

2.2 无监督学习:没有答案,让它自己发现

无监督学习正好相反——你给计算机数据,但不告诉它答案,让它自己去发现点什么。

这听起来有点玄,但例子很好懂:

比如你有一堆顾客的消费数据,但你不知道这些顾客可以分成几类。

  • 你把这些数据扔给计算机
  • 计算机会自己分析,发现:“哦,这堆顾客虽然各不相同,但其实可以分成3类——A类喜欢买数码产品、B类经常买母婴用品、C类是注重健康养生的…”
  • 这些分类是你之前不知道的,是计算机自己发现

无监督学习最典型的任务是聚类降维

聚类:把相似的东西自动归为一组

  • 用户分群(电商平台把用户分成不同群体)
  • 新闻自动分类(把相似主题的新闻归到一起)
  • 图片压缩(把相似的颜色区域合并)

降维:把复杂的信息简化

  • 比如一个人可以有100个特征(年龄、收入、消费习惯…),降维后可能用5个关键特征就能描述
  • 让计算机处理起来更轻松

简单记:没有标准答案的学习 = 无监督学习

2.3 强化学习:做对了奖励,做错了惩罚

强化学习最经典的例子就是下棋——AlphaGo用的就是强化学习。

它的思路是:

  1. 有一个”智能体”(可以理解为机器人/程序)
  2. 它存在于一个”环境”中(可以理解为一个游戏或者真实世界的一部分)
  3. 智能体做某个动作,环境会给出反馈——做得好就奖励,做得差就惩罚
  4. 智能体通过不断尝试,慢慢学会什么情况下应该做什么动作

举个更生活化的例子——训练一只狗:

你不可能教狗说:“坐下的时候后腿要弯曲90度…”你只会说”坐下”,然后:

  • 它坐下了 → 你说”好狗!”+ 奖励小零食
  • 它站起来了 → 你说”不对”(或者什么都不给)

狗慢慢地就学会了:坐下这个动作能带来奖励,所以要多做。

强化学习就是这样:

  • 智能体尝试各种动作
  • 环境给反馈(奖励或惩罚)
  • 智能体慢慢学会最优策略

简单记:在试错中学习 = 强化学习

2.4 一张图总结三种学习方式

学习方式有没有标准答案像什么典型应用
监督学习考试有标准答案猫狗识别、房价预测、垃圾邮件分类
无监督学习没有自己探索发现用户分群、新闻聚类、异常检测
强化学习有反馈训练宠物/玩游戏AlphaGo、游戏AI、自动驾驶

三、机器学习的应用场景:你身边已经离不开ML了

说了这么多,你可能还是觉得”机器学习”是个离自己很远的高科技名词。但其实,它已经悄悄渗透到你生活的方方面面了。

3.1 每天都在用的推荐系统

打开抖音/小红书,为什么总能刷到你感兴趣的内容?是因为算法在分析你的行为:

  • 你看了什么?停留了多久?点赞了哪些?
  • 然后它就学习你的喜好,给你推送更多类似的内容

打开淘宝/京东,为什么”猜你喜欢”总能正中你下怀?因为它从你和其他用户的购物记录中学习,发现了你的消费偏好。

这就是推荐系统,背后是机器学习在支撑。

3.2 你的手机比你自己更懂你

人脸识别:解锁手机的时候,后置摄像头拍一下,它怎么知道是不是你?因为机器学习模型已经学会了识别你的脸部特征。

语音助手:跟Siri、小爱同学说话的时候,它们怎么听懂你的?因为声音被转换成了数据,机器学习模型从大量语音数据中学会了理解人类语言。

输入法:现在的手机输入法,能根据你打字的习惯预测你想打什么词。你用得越多,它就越懂你的表达方式。

3.3 网购和金融里的风险控制

垃圾邮件识别:为什么你的邮箱能自动把垃圾邮件归到垃圾箱?因为机器学习模型学会了识别垃圾邮件的特征。

信用卡欺诈检测:银行怎么知道你这笔消费是不是盗刷?因为机器学习模型学会了识别”正常消费”和”异常消费”的模式。

贷款审批:为什么有些贷款秒批,有些要被拒?因为机器学习模型根据你提供的各种信息,预测了你违约的风险。

3.4 医疗领域的突破

现在机器学习可以帮助医生:

  • 看CT片、X光片,发现早期肿瘤(比人眼更敏锐)
  • 预测某些疾病的风险
  • 分析基因数据,帮助精准医疗

这些应用正在慢慢改变医疗行业。

3.5 自动驾驶:下一个十年的大变革

自动驾驶汽车需要:

  • 识别路上的行人、车辆、交通标志
  • 预测其他车辆和行人的行为
  • 实时做出驾驶决策

这些全都离不开机器学习。


四、零基础入门路线图:数学和编程要学什么?

终于到了你最关心的问题:我数学不好、编程也不会,能学机器学习吗?

答案是:能学,但需要补一些基础知识。 下面给你画一个清晰的学习路线图。

4.1 编程:Python是必须的

机器学习的主流编程语言是Python。不是说Python有多特别,而是因为Python有三个优势:

  1. 简单易学:语法很接近英语,入门快
  2. 生态丰富:有大量现成的机器学习库,比如scikit-learn、TensorFlow、PyTorch
  3. 社区活跃:遇到问题容易找到答案

需要学多深?

作为机器学习入门,你需要掌握:

  • 基本语法(变量、循环、函数)
  • 面向对象编程(类和方法)
  • 常用数据结构(列表、字典、数组)

不用学多深,能够看懂和修改代码就可以了。

4.2 数学:这三块是基础

机器学习确实需要一些数学基础,但好消息是:不需要你数学很牛,只需要有基本概念就行。

线性代数:机器学习里到处是向量和矩阵

  • 理解什么是向量、矩阵
  • 知道矩阵相乘是什么意思
  • 能看懂代码里矩阵运算的结果

概率论与统计:机器学习本质上是在做预测,而预测就离不开概率

  • 理解什么是概率、期望值
  • 知道什么是正态分布(就是那个钟形曲线)
  • 理解条件概率(贝叶斯思维)

微积分:这块要求最低

  • 理解”梯度”是什么意思就行
  • 知道”求导”的几何意义

数学要学到什么程度?

入门阶段:能理解公式背后的含义就够了,不需要会推导复杂公式。 进阶级别:需要能看懂主流算法的数学原理。

4.3 推荐的入门学习顺序

第一步:学Python基础(2-4周)
    ↓
第二步:学NumPy、Pandas(数据处理必备)(1-2周)
    ↓
第三步:学scikit-learn(机器学习入门神器)(2-4周)
    ↓
第四步:学基础算法(KNN、线性回归、决策树)(2-4周)
    ↓
第五步:学深度学习基础(可选)(4-8周)

按照这个顺序,半年左右可以入门。


五、第一个机器学习程序:30行代码实现分类

终于到了激动人心的环节!让我们写一个真正的机器学习程序。

我们用Python最流行的机器学习库scikit-learn(简称sklearn),它把复杂的机器学习算法封装成了简单的函数。

5.1 问题背景:鸢尾花分类

我们要解决的问题叫”鸢尾花分类”——这是机器学习最经典的入门案例。

任务是这样的:有一种花叫鸢尾花,它有三个品种。我们根据鸢尾花的花瓣长度、花瓣宽度等特征,来预测它属于哪个品种。

这个数据集内置在sklearn里,直接加载就能用。

5.2 完整代码

# 导入必要的库
from sklearn.datasets import load_iris          # 导入内置数据集
from sklearn.model_selection import train_test_split  # 划分训练集和测试集
from sklearn.neighbors import KNeighborsClassifier   # KNN分类器
from sklearn.metrics import accuracy_score          # 计算准确率
 
# 1. 加载数据
iris = load_iris()
X = iris.data      # 特征数据(花瓣长度、宽度等)
y = iris.target    # 标签数据(品种0、1、2)
 
# 2. 划分训练集和测试集(80%训练,20%测试)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
 
# 3. 创建模型(KNN分类器)
model = KNeighborsClassifier(n_neighbors=3)
 
# 4. 训练模型(用训练集数据)
model.fit(X_train, y_train)
 
# 5. 预测(用测试集数据)
y_pred = model.predict(X_test)
 
# 6. 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2%}")

运行结果大概是:模型准确率: 100.00%

5.3 代码逐行解释

让我用大白话解释一下每一步在干什么:

第1步:加载数据 就像做菜之前要准备食材一样,做机器学习要先有数据。sklearn自带了一个经典的数据集,我们直接拿来用。

第2步:划分数据集 为什么要划分?因为我们要用一部分数据让计算机学习(训练集),然后用另一部分数据测试它的学习效果(测试集)。就像考试一样,你不能拿老师教过的题目来考学生。

第3步:创建模型 我们选了一个叫”KNN”的算法(全称K-Nearest Neighbors,K近邻算法)。它的原理很朴素:判断一个新东西属于哪类,就看看离它最近的K个邻居是什么类。比如你想知道一个人是穷是富,看看他最亲近的5个朋友大概是什么水平就知道了。

第4步:训练模型 fit就是”训练”的意思。你可以理解为:计算机在学习数据中的规律。

第5步:预测 predict就是”预测”的意思。用训练好的模型,对测试数据进行预测。

第6步:评估 accuracy_score计算预测的准确率——预测正确的比例是多少。

5.4 运行代码的方法

如果你还没装Python环境,推荐使用Anaconda或者直接用Google Colab(网页版,点点鼠标就能用,不需要安装任何东西)。


六、数据预处理实战:StandardScaler和MinMaxScaler

拿到数据之后,通常不能直接喂给模型,需要先做”预处理”。这一步非常重要,有时候直接决定了模型效果的好坏。

6.1 为什么要预处理?

举个简单的例子:

假设你要根据两个特征预测一个人的健康程度:

  • 特征1:身高(单位:厘米,范围150-190)
  • 特征2:每天喝水量(单位:升,范围1.5-2.5)

你会发现,身高的数值范围是150-190,喝水量的数值范围是1.5-2.5。两个特征的数值范围差了几十倍!

如果直接喂给模型,模型会”觉得”身高更重要(因为它的数值大),但实际上这两个特征可能同样重要。

数据预处理就是解决这个问题的。

6.2 StandardScaler:标准化

StandardScaler会把数据变成均值0、标准差1的分布。啥意思?

简单说:把数据变成以0为中心,范围大致在-3到3之间的数。

from sklearn.preprocessing import StandardScaler
 
# 创建StandardScaler对象
scaler = StandardScaler()
 
# 用训练集数据来学习转换规则
scaler.fit(X_train)
 
# 转换训练集和测试集
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)

注意:一定要用X_train去fit,再用这个规则去transform测试集。不能各自fit自己的,否则标准不一样,就没有意义了。

6.3 MinMaxScaler:归一化

MinMaxScaler会把数据变成0到1之间的范围。

from sklearn.preprocessing import MinMaxScaler
 
# 创建MinMaxScaler对象
scaler = MinMaxScaler()
 
# 用训练集数据来学习转换规则
scaler.fit(X_train)
 
# 转换训练集和测试集
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)

6.4 什么时候用哪个?

  • StandardScaler:数据大致符合正态分布的时候用它
  • MinMaxScaler:你想把数据压缩到固定范围(比如神经网络喜欢0-1之间的输入)的时候用它

大多数情况下,StandardScaler是更稳健的选择。


七、模型训练与预测:fit/predict/transform详解

sklearn里有三个最常用的方法,记住它们就能上手大部分模型:

7.1 fit - 训练

fit方法是用来”训练模型”的。就是让模型学习数据中的规律。

model.fit(X_train, y_train)
  • X_train:训练特征(输入)
  • y_train:训练标签(正确答案)

执行完这步,模型就”学会”了。

7.2 predict - 预测

predict方法是用来”预测”的。就是用训练好的模型,对新数据进行预测。

y_pred = model.predict(X_test)
  • X_test:测试特征(新数据)
  • 返回y_pred:预测结果

7.3 transform - 转换

transform方法用在数据预处理阶段,把数据按照某种规则转换。

X_train_scaled = scaler.transform(X_train)

这个和fit/predict不同:

  • fit + transform = 训练时用
  • transform = 推理时用(因为转换规则已经学好了,不需要再学)

7.4 完整的机器学习流程

# 完整的流程是这样的:
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
 
# 1. 数据预处理
scaler = StandardScaler()
scaler.fit(X_train)      # 学习转换规则
X_train_scaled = scaler.transform(X_train)  # 转换训练数据
X_test_scaled = scaler.transform(X_test)    # 用同样的规则转换测试数据
 
# 2. 创建并训练模型
model = LogisticRegression()  # 逻辑回归分类器
model.fit(X_train_scaled, y_train)  # 训练
 
# 3. 预测
y_pred = model.predict(X_test_scaled)  # 预测
 
# 4. 评估
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2%}")

八、模型评估基础:准确率、精确率、召回率

模型训练完之后,怎么知道它好不好?这就要用到模型评估指标。

8.1 准确率(Accuracy)

最直观的一个指标:预测正确的比例

from sklearn.metrics import accuracy_score
 
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy:.2%}")

但准确率不是万能的!考虑一个例子:

某医院要用机器学习检测一种发病率只有1%的罕见病。如果模型总是预测”没病”,准确率也能达到99%——但这个模型其实是没用的,因为它一个病人都没检测出来。

所以有时候,准确率高不代表模型就好。

8.2 精确率(Precision)

精确率回答的问题是:“模型说它是正类,有多少次是对的?”

场景:垃圾邮件分类

  • 精确率高 = 模型标记为垃圾邮件的,确实是垃圾邮件的比率高
  • 精确率低 = 模型可能把正常邮件也误判为垃圾邮件了
from sklearn.metrics import precision_score
 
precision = precision_score(y_test, y_pred, pos_label=1)

8.3 召回率(Recall)

召回率回答的问题是:“所有真正的正类,模型找到了多少?”

场景:还是垃圾邮件分类

  • 召回率高 = 真正的垃圾邮件大多被揪出来了
  • 召回率低 = 可能漏掉了不少垃圾邮件
from sklearn.metrics import recall_score
 
recall = recall_score(y_test, y_pred, pos_label=1)

8.4 一图理解精确率和召回率

想象你是一个质检员,要从1000个零件里挑出50个次品:

  • 精确率高:你挑出来的50个都是次品,一个好零件都没有
  • 召回率高:1000个零件里的50个次品,你全都挑出来了
  • F1分数:精确率和召回率的调和平均,综合评价两者

8.5 完整的评估代码

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
 
# 假设y_test是真实标签,y_pred是预测标签
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='weighted')
recall = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')
 
print(f"准确率: {accuracy:.2%}")
print(f"精确率: {precision:.2%}")
print(f"召回率: {recall:.2%}")
print(f"F1分数: {f1:.2%}")

九、新手最常问的10个问题

Q1: 我数学不好,能学机器学习吗?

能!入门阶段不需要你数学很强。你只需要:

  • 能理解概念(什么是均值、方差、正态分布)
  • 能看懂代码在做什么
  • 知道什么情况下用什么算法

等你深入学习的时候,再去补数学。但入门阶段,完全可以先跳过复杂的公式推导。

Q2: 需要多少时间才能入门?

如果每天学习2-3小时:

  • Python基础:1-2个月
  • sklearn和基础算法:1-2个月
  • 能做简单项目:3-4个月

半年左右可以入门,一年左右可以去找实习或做项目。

Q3: 学机器学习需要GPU吗?

入门阶段不需要。跑sklearn的代码,普通的电脑就够用。

只有训练深度学习模型(需要大量计算)的时候,才需要GPU。

Q4: 学sklearn还是TensorFlow/PyTorch?

入门阶段先学sklearn!因为:

  • sklearn封装的接口统一,学会一个就能用其他的
  • sklearn适合学习经典机器学习算法
  • sklearn跑得快,调试方便

等你sklearn熟练了,再学深度学习框架。

Q5: 机器学习和深度学习有什么区别?

简单说:

  • 机器学习:需要人工提取特征,比如告诉你”用花瓣长度、宽度作为特征”
  • 深度学习:自动提取特征,端到端学习

深度学习是机器学习的一个分支,主要用于图像、语音、自然语言处理这些复杂任务。

Q6: 训练模型需要多少数据?

没有标准答案,取决于:

  • 问题的复杂程度
  • 模型的复杂度
  • 数据的质量

入门阶段,用sklearn内置的数据集就够了(几百条数据)。真实项目的话,通常需要几千到几十万条数据。

Q7: 过拟合是什么意思?

过拟合就是模型”死记硬背”了训练数据,但没学会真正的规律。

就像一个学生,把课本上的题都背下来了,但换个问法就不会了。

应对方法:

  • 增加训练数据
  • 用更简单的模型
  • 使用正则化技术

Q8: 如何选择算法?

没有万能算法,只有合适的算法。通常的思路是:

  1. 先用简单的算法(线性回归、逻辑回归)
  2. 效果不好再试复杂的(随机森林、XGBoost)
  3. 最后才考虑深度学习

Q9: 机器学习工程师的日常工作是什么?

  • 80%时间在处理数据(清洗、特征工程)
  • 10%时间在调参
  • 10%时间在训练模型

很多人开玩笑说:“机器学习其实是数据清洗科学。“

Q10: 学完之后能做什么项目?

推荐几个适合新手的项目:

  • 房价预测(回归问题)
  • 手写数字识别(分类问题)
  • 电影评分预测
  • 客户流失预测
  • 信用卡欺诈检测

去Kaggle找入门级别的比赛做做,收获会很大。


十、学习资源推荐

10.1 免费课程

吴恩达机器学习课程(Coursera)

  • 机器学习入门必看
  • 英文授课但有字幕
  • 缺点:作业是Octave/MATLAB,不是Python

菜菜的机器学习sklearn课堂(B站)

  • 中文讲解,适合零基础
  • 配套代码是Python/sklearn
  • 强烈推荐入门看这个

李宏毅机器学习(B站/YouTube)

  • 台大课程,中文讲授
  • 深入浅出,例子丰富
  • 进阶内容也很有价值

10.2 书籍推荐

《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》

  • 入门到进阶都覆盖
  • 代码丰富,偏实战
  • 适合有Python基础的人

《统计学习方法》李航

  • 偏理论,适合想深入理解算法的
  • 数学公式比较多
  • 进阶必读

10.3 练习平台

Kaggle

  • 全球最大的数据科学竞赛平台
  • 有大量入门级Notebook和数据集
  • 参加比赛是提升最快的方式

阿里云天池

  • 国内的数据科学竞赛平台
  • 有中文赛题
  • 国内找工作的话参加这里更有用

10.4 工具推荐

Jupyter Notebook / JupyterLab

  • 写Python代码的神器
  • 可以边写边看结果
  • 数据科学必备

Google Colab

  • 免费在线Jupyter
  • 送免费GPU
  • 不需要本地安装任何东西

Anaconda

  • Python环境管理工具
  • 帮你管理各种依赖
  • 入门选手必备

结语

好啦,这篇文章就到这里。看完之后,你应该已经理解了:

  1. 什么是机器学习:让计算机从数据中自己学习规律
  2. 三种学习方式:监督、无监督、强化学习
  3. 机器学习的应用:推荐系统、人脸识别、语音助手、金融风控、医疗诊断…
  4. 如何入门:Python → sklearn → 基础算法 → 项目实践
  5. 能写第一个机器学习程序

机器学习没有你想的那么难,但也没有那么简单。它需要持续的学习和实践。

建议你:

  • 看完这篇文章后,立刻去跑一遍上面的代码
  • 然后去Kaggle找个入门比赛做做
  • 遇到不懂的概念就去查,这是最好的学习方式

祝你在机器学习的道路上越走越远!


机器学习基本概念

机器学习是一门让计算机通过数据进行学习和改进的科学。与传统编程不同,机器学习不需要程序员编写详细的规则,而是通过算法让计算机从数据中”自己发现”规律。

机器学习算法分类

机器学习算法有多种分类方式,主要可以按学习风格和功能进行分类:

按学习风格分类

监督学习(Supervised Learning)

  • 使用有标签的数据进行训练
  • 典型任务:分类、回归
  • 代表算法:线性回归、逻辑回归、决策树、支持向量机、K近邻

无监督学习(Unsupervised Learning)

  • 使用无标签的数据进行训练
  • 典型任务:聚类、降维
  • 代表算法:K-Means、PCA、层次聚类

半监督学习(Semi-supervised Learning)

  • 结合少量有标签数据和大量无标签数据
  • 适用于标注成本较高的场景

强化学习(Reinforcement Learning)

  • 通过与环境交互,以奖励/惩罚为反馈进行学习
  • 代表应用:AlphaGo、游戏AI、机器人控制

按功能分类

分类(Classification):预测离散标签,如垃圾邮件识别 回归(Regression):预测连续数值,如房价预测 聚类(Clustering):将相似数据分组,如用户分群 降维(Dimensionality Reduction):减少特征数量,保留关键信息


常见的机器学习模型

线性回归(Linear Regression)

最简单的监督学习算法之一,用于预测连续值。通过找到一条直线来拟合数据点。

逻辑回归(Logistic Regression)

虽然名字带”回归”,实际上是分类算法。用于二分类问题,输出概率值。

决策树(Decision Tree)

通过构建树状结构来进行决策,每个节点是一个特征的判断条件。

随机森林(Random Forest)

集成多棵决策树,通过投票机制给出最终预测,通常比单棵树效果更好。

支持向量机(Support Vector Machine, SVM)

通过寻找最优超平面来分类数据,在高维空间中表现优秀。

K近邻(K-Nearest Neighbors, KNN)

根据最近的K个邻居的类别来预测当前数据点的类别。


参考资料

https://cloud.tencent.com/developer/article/1966721

https://zhuanlan.zhihu.com/p/154094723

https://scikit-learn.org/

https://www.coursera.org/learn/machine-learning