L1 Sklearn 衍生概念辨析 - 回归/分类/聚类/降维

背景

前文中我们提到:

Scikit-Learn 库的算法主要有四类:分类、回归、聚类、降维:

  1. 回归:线性回归、决策树回归、SVM回归、KNN 回归;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees。
  2. 分类:线性分类、决策树、SVM、KNN,朴素贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees。
  3. 聚类:K均值(K-means)、层次聚类(Hierarchical clustering)、DBSCAN。
  4. 降维:LinearDiscriminantAnalysis、PCA。

本文将展开解释回归分类聚类降维的区别,并使用 Scikit-learn 中的自带数据集来说明各自的用途以及它们所达到的效果,可以帮助我们更直观地理解这几类机器学习任务。

1. 回归(Regression)

回归 任务用于预测连续变量。它的目标是根据输入特征,预测一个连续的数值结果。

波士顿房价数据集(已被替换为加利福尼亚房价数据集)

使用线性回归模型。

python 复制代码
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_size=0.3, random_state=42)

# 训练线性回归模型
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近邻进行分类。

python 复制代码
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_size=0.3, random_state=42)

# 训练K近邻分类模型
knn_model = KNeighborsClassifier(n_neighbors=3)
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进行聚类。

python 复制代码
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_clusters=10, random_state=42)
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], cmap='gray')
    plt.title(f"Cluster: {clusters[i]}")
plt.show()

用途

  • 聚类常用于探索性数据分析,目标群体细分(如市场细分)、推荐系统(用户行为分组)等场景。

效果

  • 聚类算法通过发现数据中潜在的模式,将数据划分为多个簇。例如,在手写数字数据集中,虽然没有标签,但通过聚类算法可以自动将相似的数字图像聚为一类。每个聚类代表一类相似的手写数字。

4. 降维(Dimensionality Reduction)

降维 用于减少数据的特征维度,保留尽可能多的信息。通过降维,能使数据在低维空间中表现,同时减少噪声和计算复杂度。

手写数字数据集

通过主成分分析(PCA)进行降维。

python 复制代码
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# 导入手写数字数据集
digits = load_digits()
X = digits.data

# 使用PCA将数据降维到2维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# 可视化降维后的数据
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=digits.target, cmap='viridis', s=50)
plt.colorbar()
plt.title('PCA降维后的手写数字数据')
plt.show()

用途

  • 降维 常用于数据可视化、减少数据维度以提升算法效率、降低计算复杂度和去噪等场景。

效果

  • 通过降维,原来多维度的数据被压缩到低维空间(如2维),便于可视化和分析。在手写数字数据集中,降维后的数据能保留关键信息,并显示不同类别的分布情况。

总结

回归、分类、聚类、降维的区别

类型 任务目标 常见算法 用途
回归 预测连续值 线性回归、决策树回归等 房价预测、天气预测等
分类 预测离散类别 KNN、SVM、决策树等 图像识别、垃圾邮件检测、疾病诊断等
聚类 将数据点分组,无预定义标签 K-Means、层次聚类等 市场细分、推荐系统、图像分割等
降维 减少数据特征维度 PCA、t-SNE、LDA等 数据可视化、降噪、特征提取等
  • 回归 用于预测数值结果,分类 用于预测类别标签,聚类 则无监督地将数据分组,降维用于在降低数据维度的同时保留重要信息。
  • 这些任务在各自的应用场景中帮助解决不同问题,通过Scikit-learn自带数据集,可以直观地理解和实践这些概念。

资源

作者同步上传了 Jupyter 资源,可自行下载查看跑通代码运算结果:sklearn机器学习包应用 - 辨析回归/分类/聚类/降维作用效果

相关推荐
皓悦编程记30 分钟前
【YOLO26 系列】基于YOLO26的垃圾分类检测系统【python源码+Pyqt5界面/WEB+数据集+训练代码】
python·qt·分类
deephub1 天前
用 Scikit-LLM 和 Groq 搭建情感分析 pipeline
人工智能·大语言模型·sklearn
AI科技星1 天前
全域三极公理统一篇——所有分析、代数、拓扑、算子理论同源归一,回归0/1/∞创世本源闭环《全域数学vs传统数学:人类文明进阶200讲》第91讲
人工智能·线性代数·机器学习·数据挖掘·回归·乖乖数学·全域数学
AI科技星2 天前
线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲
线性代数·算法·矩阵·数据挖掘·回归·乖乖数学·全域数学
有Li2 天前
通过渐进式域变换实现组织分类的无监督单域泛化文献速递/基于多模态的医学影像分割与理解
人工智能·学习·分类·数据挖掘·文献·医学生
YOLO数据集集合2 天前
果蔬视觉识别数据集全量使用指南|计算机视觉图像分类工程落地|PyTorch迁移学习训练全流程
pytorch·计算机视觉·分类
机器学习之心2 天前
基于GA-CNN-LSTM的多输出回归预测与SHAP可解释性分析
回归·cnn·lstm
王莎莎-MinerU2 天前
解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚
人工智能·算法·数据挖掘·回归·pdf·ocr
糯米导航3 天前
AI 视觉回归实战:截图对比不是“找不同”,如何让智能差异分析真正服务 UI 质量
人工智能·ui·回归
程序员羽痕3 天前
基于深度学习的眼疾识别系统
人工智能·pytorch·深度学习·分类·django