Login
首页 > 精选好文 > AI大模型

机器学习实战全解析:从监督学习到强化学习的开发者指南

聚客AI 2025-05-12 13:04:44 人看过

一. 机器学习分类体系

1.1 按学习范式分类

image.png

image.png


二. 监督学习(Supervised Learning)

2.1 基本定义

在给定输入-输出对(X,Y)(X,Y)的条件下,学习从输入到输出的映射函数f:X→Yf:XY

2.2 典型应用

  • 分类:垃圾邮件检测(准确率>99%)

  • 回归:房价预测(MAE<$10,000)

  • 序列标注:命名实体识别(F1>0.92)

2.3 常见算法与代码

2.3.1 线性回归

from sklearn.linear_model import LinearRegression  
import numpy as np  
# 生成数据  
X = np.array([[1], [2], [3]])  
y = np.array([2, 4, 6])  
# 训练模型  
model = LinearRegression()  
model.fit(X, y)  
# 预测  
print(model.predict([[4]]))  # 输出: [8.]

2.3.2 决策树分类

from sklearn.tree import DecisionTreeClassifier  
from sklearn.datasets import load_iris  
# 加载数据  
iris = load_iris()  
X, y = iris.data, iris.target  
# 训练模型  
clf = DecisionTreeClassifier(max_depth=2)  
clf.fit(X, y)  
# 可视化决策树  
from sklearn.tree import plot_tree  
plot_tree(clf, feature_names=iris.feature_names)

image.png


三. 无监督学习(Unsupervised Learning)

3.1 基本定义

从未标注数据中挖掘隐藏模式,无需人工标注指导。

3.2 典型应用

  • 客户分群:电商用户行为聚类

  • 异常检测:金融交易异常识别(检出率>85%)

  • 数据压缩:MNIST图像从784维降至2维可视化

3.3 常见算法与代码

3.3.1 K-Means聚类

from sklearn.cluster import KMeans  
import matplotlib.pyplot as plt  
# 生成数据  
X = np.random.rand(300,2)  
# 聚类  
kmeans = KMeans(n_clusters=3)  
labels = kmeans.fit_predict(X)  
# 可视化  
plt.scatter(X[:,0], X[:,1], c=labels)  
plt.show()

3.3.2 PCA降维

from sklearn.decomposition import PCA  
# MNIST降维  
pca = PCA(n_components=2)  
X_pca = pca.fit_transform(X)  
# 可视化  
plt.scatter(X_pca[:,0], X_pca[:,1], c=y)  
plt.show()


四. 自监督学习(Self-Supervised Learning)

4.1 基本定义

通过设计代理任务从无标注数据中自动生成监督信号,学习通用表示。

4.2 典型应用

  • 文本预训练:BERT的掩码语言建模

  • 图像对比学习:SimCLR的特征对齐

  • 视频时序预测:预测下一帧

代码示例:BERT掩码预测

from transformers import BertTokenizer, BertForMaskedLM  
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')  
model = BertForMaskedLM.from_pretrained('bert-base-uncased')  
input_text = "The capital of France is [MASK]."  
inputs = tokenizer(input_text, return_tensors='pt')  
outputs = model(**inputs)  
predicted_index = outputs.logits[0, 4].argmax()  
print(tokenizer.decode([predicted_index]))  # 输出: paris


五. 强化学习(Reinforcement Learning)

5.1 基本定义

智能体通过与环境交互,根据奖励信号优化策略π:S→Aπ:SA

5.2 典型应用

  • 游戏AI:AlphaGo、Dota2 OpenAI Five

  • 机器人控制:机械臂抓取(成功率>95%)

  • 资源调度:云计算任务分配

5.3 常见算法与代码

5.3.1 Q-Learning

import gym  
import numpy as np  
env = gym.make('FrozenLake-v1')  
Q = np.zeros([env.observation_space.n, env.action_space.n])  
# 训练参数  
alpha = 0.8  
gamma = 0.95  
num_episodes = 2000  
for i in range(num_episodes):  
    state = env.reset()  
    done = False  
    while not done:  
        action = np.argmax(Q[state,:] + np.random.randn(1,env.action_space.n)*(1./(i+1)))  
        next_state, reward, done, _ = env.step(action)  
        Q[state,action] += alpha * (reward + gamma*np.max(Q[next_state,:]) - Q[state,action])  
        state = next_state

5.3.2 深度强化学习(DQN)

import torch  
import torch.nn as nn  
import torch.optim as optim  
class DQN(nn.Module):  
    def __init__(self, input_dim, output_dim):  
        super().__init__()  
        self.fc = nn.Sequential(  
            nn.Linear(input_dim, 128),  
            nn.ReLU(),  
            nn.Linear(128, output_dim)  
        )  
    def forward(self, x):  
        return self.fc(x)  
# 使用PyTorch实现经验回放与目标网络...

931e7896f4b92a3c184f737381d9e54a_174745dyznzyfufyp3uxcn.jpg


:本文代码需安装以下依赖:

pip install scikit-learn matplotlib gym transformers torch

更多AI大模型应用开发学习内容,尽在聚客AI学院



版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章

大厂标准培训
海量精品课程
汇聚优秀团队
打造完善体系
Copyright © 2023-2025 聚客AI 版权所有
网站备案号:湘ICP备2024094305号-1