4 机器学习基础之监督学习与非监督学习

在前一篇中,我们探讨了机器学习的发展历程,如何从早期的数据挖掘技术演变为如今广泛应用的智能算法。随着对机器学习的深入理解,我们接下来要讨论的就是机器学习的两大主要类型:监督学习非监督学习

监督学习

监督学习是一种机器学习任务,其中模型在具有标签的数据集上进行训练。换句话说,监督学习的目标是根据输入的特征(feature)预测输出的标签(label)。这是通过建立输入和标签之间的模型来实现的。

监督学习的工作原理

在监督学习中,我们通常有一个包含输入特征和对应标签的数据集。训练过程会用这些已标记的数据来调整模型的参数,使得模型能够捕捉到特征与标签之间的关系。一旦模型训练完成,它就可以用在新的、未标记的数据上进行预测。

监督学习的常见算法

  1. 线性回归:对于回归问题,线性回归尝试找到一个最适合的直线来描述特征与标签之间的关系。

  2. 逻辑回归:用于二分类任务,逻辑回归通过一个Sigmoid函数将输出映射到[0, 1]的范围内。

  3. 决策树:通过创建树形结构来对数据进行分类,决策树根据特征的值做出不同的决策。

  4. 支持向量机(SVM):寻找一个最优超平面,将不同类的数据点分开。

案例:线性回归

假设我们想要根据房屋面积预测房价。我们可以使用线性回归来建立一个模型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# 生成一些示例数据
X = np.array([[100], [150], [200], [250], [300]]) # 房屋面积
y = np.array([150, 200, 250, 300, 350]) # 房价

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

# 进行预测
X_new = np.array([[120], [170], [220]]).reshape(-1, 1)
y_pred = model.predict(X_new)

# 可视化结果
plt.scatter(X, y, color='blue', label='实际房价')
plt.plot(X_new, y_pred, color='red', label='预测房价')
plt.xlabel('房屋面积')
plt.ylabel('房价')
plt.legend()
plt.show()

在这个例子中,我们建立了一个简单的线性回归模型,利用房屋面积预测房价。X是面积,y是对应的房价。通过模型的训练,我们能够得到对新房屋面积的房价预测。

非监督学习

非监督学习与监督学习相反,它不依赖于标签数据。非监督学习的目标是从未标记的数据中发现模式和结构,寻找数据的内在关系

非监督学习的工作原理

在非监督学习中,模型通过输入数据的特征进行自主学习,寻找数据之间的相似性或差异性。这类学习常用于聚类、降维以及图像处理等任务。

非监督学习的常见算法

  1. K-均值聚类:将数据点划分为K个聚类,使得同一聚类内的数据点彼此尽可能相似,而不同聚类的数据点则更为不同。

  2. 主成分分析(PCA):用于数据降维,通过找到数据的主成分来减少特征的数量,同时保留大部分的信息。

  3. 异常检测:识别与正常模式显著不同的数据点。

案例:K-均值聚类

假设我们想要对一组客户进行分群,以便更好地制定市场策略。我们可以使用K-均值聚类算法来完成这一任务。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 客户数据(例如:年收入与消费水平)
X = np.array([[15, 200], [16, 250], [17, 230], [30, 150], [35, 145], [40, 100]])

# 创建K均值聚类模型
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)

# 获取聚类结果
labels = kmeans.labels_

# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='rainbow')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], color='black', marker='X', s=200)
plt.xlabel('年收入')
plt.ylabel('消费水平')
plt.title('客户聚类结果')
plt.show()

在这个例子中,我们对客户数据进行了K-均值聚类分析。通过将客户分为两类,我们可以更好地理解他们的行为模式,并针对性地进行营销策略的制定。

结论

在本篇中,我们详细探讨了监督学习非监督学习的基本概念,并结合实际案例进行了说明。这两种学习模式各自有其优缺点,选择哪种模式往往取决于待解决问题的具体需求和数据的可用性。在下一篇教程中,我们将继续深入探索常见的机器学习算法,这将为读者提供更广泛的工具和技术,以解决实际问题。

4 机器学习基础之监督学习与非监督学习

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

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论