机器学习简介:从小白到入门的第一课
写在前面
恭喜你打开了这篇文章!这意味着你对”机器学习”这个听起来很高大上的东西产生了兴趣。
别担心,这篇文章就是写给完全零基础的小白的。我不会一上来就给你扔一堆公式和术语,而是先用大白话跟你聊聊天,让你搞清楚机器学习到底是什么玩意儿。
学完之后,你不仅会理解什么是机器学习,还能写出自己的第一个机器学习程序。准备好了吗?我们开始!
一、机器学习到底是什么?一个生活例子讲清楚
1.1 先聊聊我们人类是怎么学习的
在说机器学习之前,咱们先想想自己是怎么学习的。
你小时候是怎么学会识别猫和狗的?你的爸妈会拿着一只猫跟你说:“看,这是猫,猫的特点是尖耳朵、胡子、会喵喵叫。“然后又指着狗说:“这是狗,狗的特点是垂耳朵、摇尾巴、会汪汪叫。”
看多了之后,你就自然能区分猫和狗了——即使遇到一只你没见过的流浪猫,你也能一眼认出来:“哦,这是只猫。”
这个过程,就是人类的学习:通过观察大量的例子,总结出规律,然后用规律去判断新的事物。
1.2 那机器学习是什么呢?
机器学习干的其实就是同一件事——让计算机通过看大量的例子,自己总结出规律,然后用来判断新的东西。
举个具体的例子:
你想让计算机会识别猫。你不用告诉它”猫有尖耳朵”这种规则——说实话,你也不知道该怎么用代码精确描述一只猫。
你只需要这样做:
- 找一万张图片,有些是猫,有些不是猫
- 把这些图片和答案(是猫/不是猫)一起扔给计算机
- 计算机会自己研究这些图片,慢慢摸索出猫长什么样
- 训练完之后,你给它一张新图片,它就能告诉你这是不是猫
整个过程中,你没有写一行代码告诉它”猫长什么样”。它是自己从数据里学出来的。
这就是机器学习的核心思想:不是你来教它,而是让它自己学。
1.3 再来一个更接地气的例子
想象一下你要教一个小孩子学做饭。
传统编程的方式是:你手把手教他——“先放油,油开了放葱花,葱花变黄了放鸡蛋,翻炒三十秒,再放盐…”你得把每个步骤都说得清清楚楚。
机器学习的方式是:你把一百道宫保鸡丁的照片和成品都给他看,然后说:“去研究研究,看看做好这道菜都需要什么。“然后这个孩子自己会去分析、去尝试,最终自己摸索出一套做菜的方法。
后者就是机器学习——计算机不是在执行你写好的步骤,而是在从数据中发现规律。
1.4 用一句话总结
机器学习就是:给计算机一堆数据,让它自己找出规律,然后用这些规律去处理新的数据。
就这么简单!
二、三种学习方式:监督、无监督、强化学习一看就懂
当你开始了解机器学习,会经常听到”监督学习”、“无监督学习”、“强化学习”这些词。一听名字挺吓人的,但其实特别好理解。
2.1 监督学习:你告诉它标准答案
监督学习是最常用的一种方式,也是最符合我们日常认知的学习方式。
什么叫”监督”?就像考试的时候有老师监督一样——你做题的时候,旁边有标准答案告诉你对不对。
所以监督学习的特点是:训练数据是有标准答案的。
继续用猫和狗的例子:
- 你给计算机一万张图片,每张图片都标注好了”这是猫”或”这是狗”
- 计算机学习的时候,知道自己每次判断是对还是错
- 就像有个老师在旁边说:“对了,这个判断正确”、“错了,这个应该是猫不是狗”
- 学完之后,给它新图片,它就能自己判断了
监督学习的典型任务有两种:
分类:把东西分到某个类别里
- 垃圾邮件识别(是垃圾/不是垃圾)
- 猫狗图片识别(猫/狗)
- 疾病诊断(有病/没病)
回归:预测一个数值
- 预测房价(给你房子的大小、位置,预测价格)
- 预测明天的气温
- 预测股票的走势
简单记:有标准答案的学习 = 监督学习
2.2 无监督学习:没有答案,让它自己发现
无监督学习正好相反——你给计算机数据,但不告诉它答案,让它自己去发现点什么。
这听起来有点玄,但例子很好懂:
比如你有一堆顾客的消费数据,但你不知道这些顾客可以分成几类。
- 你把这些数据扔给计算机
- 计算机会自己分析,发现:“哦,这堆顾客虽然各不相同,但其实可以分成3类——A类喜欢买数码产品、B类经常买母婴用品、C类是注重健康养生的…”
- 这些分类是你之前不知道的,是计算机自己发现的
无监督学习最典型的任务是聚类和降维:
聚类:把相似的东西自动归为一组
- 用户分群(电商平台把用户分成不同群体)
- 新闻自动分类(把相似主题的新闻归到一起)
- 图片压缩(把相似的颜色区域合并)
降维:把复杂的信息简化
- 比如一个人可以有100个特征(年龄、收入、消费习惯…),降维后可能用5个关键特征就能描述
- 让计算机处理起来更轻松
简单记:没有标准答案的学习 = 无监督学习
2.3 强化学习:做对了奖励,做错了惩罚
强化学习最经典的例子就是下棋——AlphaGo用的就是强化学习。
它的思路是:
- 有一个”智能体”(可以理解为机器人/程序)
- 它存在于一个”环境”中(可以理解为一个游戏或者真实世界的一部分)
- 智能体做某个动作,环境会给出反馈——做得好就奖励,做得差就惩罚
- 智能体通过不断尝试,慢慢学会什么情况下应该做什么动作
举个更生活化的例子——训练一只狗:
你不可能教狗说:“坐下的时候后腿要弯曲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有三个优势:
- 简单易学:语法很接近英语,入门快
- 生态丰富:有大量现成的机器学习库,比如scikit-learn、TensorFlow、PyTorch
- 社区活跃:遇到问题容易找到答案
需要学多深?
作为机器学习入门,你需要掌握:
- 基本语法(变量、循环、函数)
- 面向对象编程(类和方法)
- 常用数据结构(列表、字典、数组)
不用学多深,能够看懂和修改代码就可以了。
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: 如何选择算法?
没有万能算法,只有合适的算法。通常的思路是:
- 先用简单的算法(线性回归、逻辑回归)
- 效果不好再试复杂的(随机森林、XGBoost)
- 最后才考虑深度学习
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环境管理工具
- 帮你管理各种依赖
- 入门选手必备
结语
好啦,这篇文章就到这里。看完之后,你应该已经理解了:
- 什么是机器学习:让计算机从数据中自己学习规律
- 三种学习方式:监督、无监督、强化学习
- 机器学习的应用:推荐系统、人脸识别、语音助手、金融风控、医疗诊断…
- 如何入门:Python → sklearn → 基础算法 → 项目实践
- 能写第一个机器学习程序了
机器学习没有你想的那么难,但也没有那么简单。它需要持续的学习和实践。
建议你:
- 看完这篇文章后,立刻去跑一遍上面的代码
- 然后去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