📜  有监督和无监督学习(1)

📅  最后修改于: 2023-12-03 15:26:30.796000             🧑  作者: Mango

有监督学习和无监督学习

在机器学习中,有监督学习和无监督学习是两种重要的学习方式。

有监督学习

有监督学习是指训练数据集中包含了正确答案或标签的学习方式。在有监督学习中,我们将原始数据和其对应的标签输入到算法中,算法通过学习数据和标签间的关系来进行预测或分类任务。常见的有监督学习算法有线性回归、逻辑回归、支持向量机、决策树、随机森林等。有监督学习的优势在于可以通过数据和标签间的关系来进行预测,适用于需要进行分类或预测任务的场景。

线性回归

线性回归是一种最简单也最广泛使用的有监督学习算法。它的目标是找到一个线性模型,使得输入数据和输出数据之间的误差最小化。线性回归常用于回归问题。

from sklearn.linear_model import LinearRegression

# 创建模型
model = LinearRegression()

# 输入数据和标签,进行训练
model.fit(X_train, y_train)

# 预测测试数据
y_pred = model.predict(X_test)
支持向量机

支持向量机是一种常用于分类问题的有监督学习算法。其目标是通过在高维空间中找到一个超平面,将数据划分为不同的类别。支持向量机通过最小化两类样本之间的距离来寻找最佳的超平面,从而实现分类。

from sklearn import svm

# 创建模型
model = svm.SVC(kernel='rbf')

# 输入数据和标签,进行训练
model.fit(X_train, y_train)

# 预测测试数据
y_pred = model.predict(X_test)
无监督学习

无监督学习是指训练数据集中不包含正确答案或标签的学习方式。在无监督学习中,算法需要从原始数据中发现数据间的模式和结构。常见的无监督学习算法有聚类、降维、关联规则等。无监督学习的优势在于可以从整个数据集中自动发现模式和结构,适用于需要从数据中挖掘潜在信息的场景。

K-Means 聚类

K-Means 是一种常用的聚类算法,其目的是将数据集划分为 K 类,使得每一类内的数据之间的距离最小化。K-Means 算法的核心是选择 K 个聚类中心,然后将每个数据点分配到离其最近的聚类中心,反复迭代,直到聚类中心稳定下来。

from sklearn.cluster import KMeans

# 创建 k-means 聚类模型
model = KMeans(n_clusters=k)

# 输入数据,进行聚类
model.fit(X)

# 获取聚类结果
y_pred = model.labels_
主成分分析 (PCA)

PCA 是一种常用的降维算法,其目的是将高维度的数据集映射到低维度的空间中,在保留数据集主要特征的同时,减少数据集的维度,以便于分析和可视化。PCA 通过计算数据集的协方差矩阵,然后通过特征值分解来找到主成分向量,将高维数据映射到低维空间中。

from sklearn.decomposition import PCA

# 创建 PCA 模型
model = PCA(n_components=n)

# 输入数据,进行降维
X_new = model.fit_transform(X)
总结

有监督和无监督学习是机器学习中的两种重要的学习方式。有监督学习通过数据与标签间的关系,进行预测或分类任务;无监督学习则通过在原始数据中寻找模式和结构,进行聚类或降维任务。机器学习的应用需要根据具体情况选择适合的学习方式。