英文外贸网站建设网站设计方案,商标设计模板,wordpress的标签页,建设宣传网站上的请示背景
前文中我们提到#xff1a; Scikit-Learn 库的算法主要有四类#xff1a;分类、回归、聚类、降维#xff1a; 回归#xff1a;线性回归、决策树回归、SVM回归、KNN 回归#xff1b;集成回归#xff1a;随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees。…背景
前文中我们提到 Scikit-Learn 库的算法主要有四类分类、回归、聚类、降维 回归线性回归、决策树回归、SVM回归、KNN 回归集成回归随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees。分类线性分类、决策树、SVM、KNN朴素贝叶斯集成分类随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees。聚类K均值(K-means)、层次聚类(Hierarchical clustering)、DBSCAN。降维LinearDiscriminantAnalysis、PCA。 本文将展开解释回归、分类、聚类和降维的区别并使用 Scikit-learn 中的自带数据集来说明各自的用途以及它们所达到的效果可以帮助我们更直观地理解这几类机器学习任务。
1. 回归Regression
回归任务用于预测连续变量。它的目标是根据输入特征预测一个连续的数值结果。
波士顿房价数据集已被替换为加利福尼亚房价数据集
使用线性回归模型。
from sklearn.datasets import fetch_california_housing
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error# 导入加州房价数据集
data fetch_california_housing()
X data.data
y data.target# 数据划分为训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)# 训练线性回归模型
lr_model LinearRegression()
lr_model.fit(X_train, y_train)# 预测房价
y_pred lr_model.predict(X_test)# 评估回归模型均方误差
mse mean_squared_error(y_test, y_pred)
print(f均方误差: {mse:.2f})用途
回归主要用于预测连续型数值例如预测房价、股票价格、温度等。
效果
通过训练回归模型可以预测目标值并评估模型的准确度。在房价预测中预测的房价是连续变量模型输出具体的房价数值。我们通过均方误差等评价指标评估预测的准确性。 2. 分类Classification
分类任务用于预测数据的类别标签。它的目标是将数据点分类到某个预定义的类中。
鸢尾花数据集
使用K近邻进行分类。
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 导入鸢尾花数据集
iris load_iris()
X iris.data
y iris.target# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)# 训练K近邻分类模型
knn_model KNeighborsClassifier(n_neighbors3)
knn_model.fit(X_train, y_train)# 预测鸢尾花类别
y_pred knn_model.predict(X_test)# 评估分类模型准确率
accuracy accuracy_score(y_test, y_pred)
print(f分类准确率: {accuracy:.2f})用途
分类用于分类任务如垃圾邮件检测、图像识别、疾病诊断等。
效果
通过分类模型能准确将数据点分配到预定的类别中。在鸢尾花分类中模型可以识别不同种类的鸢尾花并输出其对应的类别。通过准确率等指标评估分类的精确度。 3. 聚类Clustering
聚类是无监督学习的一种用于将数据点分组使得同一组内的点尽可能相似而不同组间的点差异尽可能大。聚类任务没有预定义的标签。
手写数字数据集无标签
使用KMeans进行聚类。
from sklearn.datasets import load_digits
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 导入手写数字数据集
digits load_digits()
X digits.data# 使用KMeans进行聚类
kmeans KMeans(n_clusters10, random_state42)
clusters kmeans.fit_predict(X)# 可视化部分聚类结果
plt.figure(figsize(8, 8))
for i in range(10):plt.subplot(2, 5, i 1)plt.imshow(digits.images[i], cmapgray)plt.title(fCluster: {clusters[i]})
plt.show()用途
聚类常用于探索性数据分析目标群体细分如市场细分、推荐系统用户行为分组等场景。
效果
聚类算法通过发现数据中潜在的模式将数据划分为多个簇。例如在手写数字数据集中虽然没有标签但通过聚类算法可以自动将相似的数字图像聚为一类。每个聚类代表一类相似的手写数字。 4. 降维Dimensionality Reduction
降维用于减少数据的特征维度保留尽可能多的信息。通过降维能使数据在低维空间中表现同时减少噪声和计算复杂度。
手写数字数据集
通过主成分分析PCA进行降维。
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt# 导入手写数字数据集
digits load_digits()
X digits.data# 使用PCA将数据降维到2维
pca PCA(n_components2)
X_pca pca.fit_transform(X)# 可视化降维后的数据
plt.scatter(X_pca[:, 0], X_pca[:, 1], cdigits.target, cmapviridis, s50)
plt.colorbar()
plt.title(PCA降维后的手写数字数据)
plt.show()用途
降维常用于数据可视化、减少数据维度以提升算法效率、降低计算复杂度和去噪等场景。
效果
通过降维原来多维度的数据被压缩到低维空间如2维便于可视化和分析。在手写数字数据集中降维后的数据能保留关键信息并显示不同类别的分布情况。 总结
回归、分类、聚类、降维的区别
类型任务目标常见算法用途回归预测连续值线性回归、决策树回归等房价预测、天气预测等分类预测离散类别KNN、SVM、决策树等图像识别、垃圾邮件检测、疾病诊断等聚类将数据点分组无预定义标签K-Means、层次聚类等市场细分、推荐系统、图像分割等降维减少数据特征维度PCA、t-SNE、LDA等数据可视化、降噪、特征提取等
回归用于预测数值结果分类用于预测类别标签聚类则无监督地将数据分组降维用于在降低数据维度的同时保留重要信息。这些任务在各自的应用场景中帮助解决不同问题通过Scikit-learn自带数据集可以直观地理解和实践这些概念。
资源
作者同步上传了 Jupyter 资源可自行下载查看跑通代码运算结果sklearn机器学习包应用 - 辨析回归/分类/聚类/降维作用效果