AI算法机器学习主要类型
文章目录
- 1. **什么是机器学习?**
- 2. **机器学习的主要类型**
- 🟢 监督学习(Supervised Learning)
- 🔵 无监督学习(Unsupervised Learning)
- 🟡 半监督学习(Semi-Supervised Learning)
- 🟣 强化学习(Reinforcement Learning)
- 3. **常见术语解释**
- 4. **典型流程示例(以监督学习为例)**
- 5. **Python实现简单示例(监督学习)**
1. 什么是机器学习?
机器学习(Machine Learning)是人工智能的一个分支,其核心思想是让计算机通过分析数据自动“学习”规律,并利用这些规律对未知数据进行预测或决策。与传统编程不同,机器学习不是由人明确写出规则,而是从数据中自动归纳出模型。
2. 机器学习的主要类型
🟢 监督学习(Supervised Learning)
- 定义:使用带有标签的数据进行训练,模型学习输入特征与输出标签之间的映射关系。
- 任务类型:
- 分类(Classification):预测离散的类别(如垃圾邮件/非垃圾邮件)。
- 回归(Regression):预测连续值(如房价、温度)。
- 常用算法:
- 线性回归、逻辑回归
- 支持向量机(SVM)
- 决策树、随机森林
- K近邻(KNN)
- 神经网络
🔵 无监督学习(Unsupervised Learning)
- 定义:使用没有标签的数据进行训练,模型试图发现数据中的结构或模式。
- 任务类型:
- 聚类(Clustering):将相似的数据分组(如用户分群)。
- 降维(Dimensionality Reduction):压缩数据维度,保留主要信息。
- 异常检测(Anomaly Detection):识别异常样本。
- 常用算法:
- K均值聚类(K-Means)
- 主成分分析(PCA)
- 自编码器(Autoencoder)
🟡 半监督学习(Semi-Supervised Learning)
- 定义:结合少量有标签数据和大量无标签数据进行训练。
- 适用场景:当标注数据成本较高时(如医疗图像标注)。
- 优势:在数据稀缺的情况下仍能获得较好的模型性能。
🟣 强化学习(Reinforcement Learning)
- 定义:智能体(Agent)通过与环境交互来学习策略,以最大化累积奖励。
- 核心元素:
- 智能体(Agent)
- 环境(Environment)
- 状态(State)
- 动作(Action)
- 奖励(Reward)
- 应用场景:
- 游戏 AI(如 AlphaGo)
- 机器人控制
- 自动驾驶
- 常用算法:
- Q-learning
- Deep Q-Network(DQN)
- Policy Gradient 方法
3. 常见术语解释
术语 | 含义 |
---|---|
特征(Feature) | 描述数据的属性或变量(如身高、年龄、颜色)。 |
标签(Label) | 在监督学习中,目标输出(如是否购买商品)。 |
训练集(Training Set) | 用于训练模型的数据集。 |
验证集(Validation Set) | 用于调参和选择模型的数据集。 |
测试集(Test Set) | 用于最终评估模型泛化能力的数据集。 |
过拟合(Overfitting) | 模型在训练集上表现很好但在新数据上表现差。 |
欠拟合(Underfitting) | 模型无法捕捉数据的基本模式。 |
交叉验证(Cross-Validation) | 将数据多次划分以更可靠地评估模型性能。 |
损失函数(Loss Function) | 衡量模型预测值与真实值之间的误差。 |
优化器(Optimizer) | 调整模型参数以最小化损失函数(如SGD、Adam)。 |
4. 典型流程示例(以监督学习为例)
-
数据收集与预处理
- 获取带标签数据
- 清洗、标准化、特征工程
-
模型选择与训练
- 选择合适的算法(如随机森林)
- 使用训练集训练模型
-
模型评估
- 使用验证集调整超参数
- 使用测试集评估准确率、召回率等指标
-
部署与应用
- 将模型集成到系统中
- 实时预测新数据
5. Python实现简单示例(监督学习)
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score# 加载数据(假设X为特征矩阵,y为标签)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 特征标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)# 训练模型
model = RandomForestClassifier()
model.fit(X_train, y_train)# 预测与评估
y_pred = model.predict(X_test)
print(f"准确率: {accuracy_score(y_test, y_pred):.2f}")