机器学习浅讲

机器学习(Machine Learning)是人工智能的一个分支,它使计算机能够从数据中学习并在没有明确编程的情况下进行预测或决策。以下是机器学习基础知识的详细讲解及示例:

1. 机器学习的类型

1.1 监督学习 (Supervised Learning)

监督学习是通过使用带标签的数据进行训练的。目标是学习输入数据和输出标签之间的映射关系。

示例:

  • 回归:预测连续值,如房价预测。
  • 分类:预测离散类别,如垃圾邮件检测。

Python 示例:

复制代码
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 假设我们有一个数据集,其中 X 是输入特征,y 是目标变量
X = [[1], [2], [3], [4], [5]]
y = [2, 4, 6, 8, 10]

# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化和训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测和评估
predictions = model.predict(X_test)
print("均方误差:", mean_squared_error(y_test, predictions))

1.2 无监督学习 (Unsupervised Learning)

无监督学习是使用没有标签的数据进行训练的。目标是从数据中发现隐藏的模式或结构。

示例:

  • 聚类:将数据分组,如客户细分。
  • 降维:降低数据维度,如主成分分析 (PCA)。

Python 示例

复制代码
from sklearn.cluster import KMeans
import numpy as np

# 假设我们有一个无标签的数据集
data = np.array([[1, 2], [1, 4], [1, 0],
                 [10, 2], [10, 4], [10, 0]])

# 初始化和训练聚类模型
kmeans = KMeans(n_clusters=2, random_state=0).fit(data)

# 打印聚类结果
print("聚类标签:", kmeans.labels_)
print("聚类中心:", kmeans.cluster_centers_)

1.3 强化学习 (Reinforcement Learning)

强化学习是通过与环境的交互进行学习,目标是通过奖励和惩罚机制学习策略。
示例:

  • 游戏 AI:学习玩游戏,如 AlphaGo。
  • 机器人控制:学习控制机器人,如自动驾驶。

2. 模型评估与选择

2.1 交叉验证 (Cross-Validation)

交叉验证是评估模型性能的一种技术,它通过将数据集分成 k 个子集,多次训练和评估模型,减少过拟合。
Python 示例:

复制代码
from sklearn.model_selection import cross_val_score

# 使用线性回归模型进行交叉验证
scores = cross_val_score(model, X, y, cv=5)
print("交叉验证得分:", scores)
print("平均得分:", scores.mean())

2.2 性能度量 (Performance Metrics)

根据任务类型不同,选择合适的性能度量方法。

示例:

  • 回归任务:均方误差 (MSE)、平均绝对误差 (MAE) 等。

  • 分类任务:准确率、精确率、召回率、F1 值等。

    from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

    假设我们有预测结果和真实标签

    y_true = [0, 1, 1, 0, 1]
    y_pred = [0, 0, 1, 0, 1]

    计算分类性能指标

    print("准确率:", accuracy_score(y_true, y_pred))
    print("精确率:", precision_score(y_true, y_pred))
    print("召回率:", recall_score(y_true, y_pred))
    print("F1 值:", f1_score(y_true, y_pred))

3. 特征工程

特征工程是机器学习过程中非常重要的一部分,通过处理原始数据来创建更好的特征,以提高模型的性能。

3.1 数据预处理

包括数据清洗、缺失值处理、标准化和归一化等。
Python 示例:

复制代码
from sklearn.preprocessing import StandardScaler, MinMaxScaler
import numpy as np

# 标准化
scaler = StandardScaler()
data_standardized = scaler.fit_transform(data)

# 归一化
min_max_scaler = MinMaxScaler()
data_normalized = min_max_scaler.fit_transform(data)

3.2 特征选择

通过选择对模型有显著影响的特征来减少维度,提高模型性能。

复制代码
from sklearn.feature_selection import SelectKBest, f_classif

# 假设我们有数据集 X 和标签 y
X_new = SelectKBest(score_func=f_classif, k=2).fit_transform(X, y)

4. 常见的机器学习算法

4.1 线性回归 (Linear Regression)

用于回归任务,假设目标变量与特征之间的关系是线性的。
Python 示例

复制代码
from sklearn.linear_model import LinearRegression

# 初始化和训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

4.2 逻辑回归 (Logistic Regression)

用于分类任务,输出一个概率值。
Python 示例:

复制代码
from sklearn.linear_model import LogisticRegression

# 初始化和训练模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

4.3 决策树 (Decision Tree)

用于回归和分类任务,通过树形结构做出决策。
Python 示例:

复制代码
from sklearn.tree import DecisionTreeClassifier

# 初始化和训练模型
model = DecisionTreeClassifier()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

4.4 支持向量机 (SVM)

用于回归和分类任务,通过找到最佳超平面进行分类。

Python 示例:

复制代码
from sklearn.svm import SVC

# 初始化和训练模型
model = SVC()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

4.5 K近邻算法 (K-Nearest Neighbors, KNN)

通过计算输入样本与训练样本之间的距离进行分类或回归。

Python 示例

复制代码
from sklearn.neighbors import KNeighborsClassifier

# 初始化和训练模型
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

4.6 随机森林 (Random Forest)

通过集成多棵决策树进行分类或回归,提高模型的泛化能力。

Python 示例:

复制代码
from sklearn.ensemble import RandomForestClassifier

# 初始化和训练模型
model = RandomForestClassifier()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

以上是机器学习基础的详细讲解及示例,涵盖了机器学习的主要类型、模型评估方法、特征工程以及常见的机器学习算法。

相关推荐
聚客AI1 小时前
🌟大模型为什么产生幻觉?预训练到推理的漏洞全揭秘
人工智能·llm·掘金·日新计划
Juchecar1 小时前
一文讲清 nn.Sequential 等容器类
人工智能
阿里云云原生2 小时前
如何快速看懂「祖传项目」?Qoder 强势推出新利器
人工智能
美团技术团队2 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
程序员小袁3 小时前
基于C-MTEB/CMedQAv2-rerankingv的Qwen3-1.7b模型微调-demo
人工智能
飞哥数智坊4 小时前
AI 编程一年多,我终于明白:比技巧更重要的,是熟练度
人工智能·ai编程
新智元5 小时前
收手吧 GPT-5-Codex,外面全是 AI 编程智能体!
人工智能·openai
IT_陈寒5 小时前
Java 性能优化:5个被低估的JVM参数让你的应用吞吐量提升50%
前端·人工智能·后端
阿里云云原生5 小时前
阿里云基础设施 AI Tech Day AI 原生,智构未来——AI 原生架构与企业实践专场
人工智能
Memene摸鱼日报6 小时前
「Memene 摸鱼日报 2025.9.16」OpenAI 推出 GPT-5-Codex 编程模型,xAI 发布 Grok 4 Fast
人工智能·aigc