5 机器学习基础之常见的机器学习算法

在上一篇中,我们讨论了机器学习的两大主要类型:监督学习非监督学习。在这一部分中,我们将重点介绍一些常见的机器学习算法,包括它们的基本原理、应用场景以及与实际案例的结合。

监督学习算法

1. 线性回归

线性回归是一种用于回归问题的基础算法,目的是通过最小化预测值与真实值之间的误差来寻找最佳拟合直线。其数学模型可以表示为:

$$
y = w_0 + w_1x_1 + w_2x_2 + … + w_nx_n + \epsilon
$$

其中,$w_0$为偏置项,$w_1, w_2, …, w_n$为特征的权重,$\epsilon$为误差项。

案例:假设我们希望预测房价,可以用线性回归模型来根据房屋面积、房间数量和位置等特征来进行预测。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
from sklearn.linear_model import LinearRegression

# 模拟数据
X = np.array([[1500, 3], [1700, 4], [2000, 4], [2500, 5]])
y = np.array([300000, 340000, 360000, 400000])

# 训练线性回归模型
model = LinearRegression()
model.fit(X, y)

# 进行预测
predicted_price = model.predict(np.array([[2000, 4]]))
print(f"预测房价:{predicted_price[0]}")

2. 决策树

决策树是一种常见的分类和回归算法,其通过树形模型进行决策,先进行特征划分,然后在每一个叶节点中输出结果。决策树的优点在于可解释性强,易于理解。

案例:在银行信贷审批中,我们可以通过决策树来判断一个客户是否值得信赖。

1
2
3
4
5
6
7
8
9
10
11
12
13
from sklearn.tree import DecisionTreeClassifier

# 模拟数据
X = [[25, 50000], [45, 64000], [35, 54000], [50, 70000]]
y = [0, 1, 1, 0] # 0: 不值得信赖, 1: 值得信赖

# 训练决策树模型
tree_model = DecisionTreeClassifier()
tree_model.fit(X, y)

# 预测客户信任等级
predicted_trust = tree_model.predict([[30, 60000]])
print(f"客户信任预测:{'值得信赖' if predicted_trust[0] == 1 else '不值得信赖'}")

3. 支持向量机 (SVM)

支持向量机是一种强有力的分类算法,特别适合高维数据。SVM通过寻找最佳的超平面来最大化不同类别之间的间隔。其目标是解决以下优化问题:

$$
\text{minimize} \quad \frac{1}{2}||w||^2 \
\text{subject to} \quad y_i(w \cdot x_i + b) \geq 1 \quad \forall i
$$

案例:SVM常用于文本分类,如判断一篇文章是否为“体育”类文章。

1
2
3
4
5
6
7
8
9
10
11
12
13
from sklearn import svm

# 模拟数据
X = [[0, 0], [1, 1], [1, 0], [0, 1]]
y = [0, 1, 1, 0] # 0: 类别A, 1: 类别B

# 训练SVM模型
svm_model = svm.SVC(kernel='linear')
svm_model.fit(X, y)

# 预测新样本的类别
predicted_class = svm_model.predict([[0.5, 0.5]])
print(f"样本的预测类别:{predicted_class[0]}")

非监督学习算法

1. K均值聚类

K均值聚类是一种用于非监督学习的聚类算法,其通过将数据分为K个簇,每个簇的中心(质心)最小化点到质心的平方距离。算法流程如下:

  1. 随机选择K个初始质心。
  2. 分配每个数据点到离其最近的质心。
  3. 更新质心为每个簇的均值。
  4. 重复步骤2和3,直到收敛。

案例:在市场分析中,我们可以使用K均值聚类将客户分群,从而提供更加个性化的服务。

1
2
3
4
5
6
7
8
9
10
11
12
from sklearn.cluster import KMeans

# 模拟数据
X = [[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]

# 训练 K 均值模型
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)

# 预测新样本的簇
predicted_cluster = kmeans.predict([[0, 0], [4, 4]])
print(f"样本的簇预测:{predicted_cluster}")

2. 主成分分析 (PCA)

主成分分析是一种降维技术,通过线性变换将数据投影到低维空间中,保留数据中尽可能多的变异性。PCA通过找到数据的主要分量来实现降维。

案例:在图像处理领域,PCA常用于减少特征维数,从而加速后续的机器学习模型训练。

1
2
3
4
5
6
7
8
9
10
11
12
13
from sklearn.decomposition import PCA

# 模拟数据
X = [[2.5, 2.4], [0.5, 0.7], [2.2, 2.9],
[1.9, 2.2], [3.1, 3.0], [2.3, 2.7],
[2, 1.6], [1, 1.1], [1.5, 1.6], [1.1, 0.9]]

# 进行PCA处理
pca = PCA(n_components=1)
X_reduced = pca.fit_transform(X)

print("降维后的数据:")
print(X_reduced)

小结

在这一部分中,我们介绍了几种常见的机器学习算法,包括线性回归决策树支持向量机K均值聚类主成分分析。每种算法都有其独特的应用场景和

5 机器学习基础之常见的机器学习算法

https://zglg.work/machine-learning-zero/5/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论