欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 机器学习总结

机器学习总结

2025/6/16 5:36:41 来源:https://blog.csdn.net/m0_56691516/article/details/148676132  浏览:    关键词:机器学习总结

写在前面

        转眼机器学习已经结束(时间过得挺快的哈哈),以下是针对机器学习的知识点总结,本文将从是什么、为什么、怎么用三个方面详细分析每个算法。本文覆盖机器学习基础,以及具体算法:kNN算法、线性回归算法、逻辑回归算法、决策树算法、集成学习、聚类算法。


机器学习概述

        机器学习(Machine Learning, ML)是人工智能的核心分支,致力于让计算机系统从数据中“学习”模式,而无需显式编程。它通过算法构建数学模型,实现预测、分类、聚类等任务。知识体系涵盖监督学习(如分类、回归)、无监督学习(如聚类)、强化学习等。机器学习的关键在于数据驱动,能够处理复杂数据关系,是现代大数据、AI应用的基础

  • 是什么​:机器学习通过训练数据自动学习规则,核心要素包括数据、特征、模型和评估指标。例如,输入特征(如房屋面积)输出预测(如房价)。知识体系包括:

    • 监督学习​:使用标签数据训练模型(如kNN、线性回归、逻辑回归、决策树)。
    • 无监督学习​:未标签数据,寻找内在结构(如聚类算法)。
    • 强化学习​:通过试错学习决策策略(本次不重点讨论)。
  • 为什么​:机器学习解决传统编程难以处理的复杂问题,如高维数据、非线性关系。优势包括自动化决策、模式发现(如图像识别)、效率提升(如推荐系统)。应用场景广泛:医疗诊断、金融风控、工业预测等。挑战包括过拟合、数据噪声等。

  • 怎么用​:一般流程:数据预处理(清洗、标准化)→ 特征工程 → 选择算法 → 训练模型 → 评估(如准确率、F1分数)→ 优化(调参)。常用工具:Python库(如Scikit-learn、TensorFlow)、云端平台(如Google AI Platform)。

接下来,我们将逐个深入每个算法,从kNN开始。每个算法都按是什么、为什么、怎么用结构展开。


kNN算法:K-Nearest Neighbors

        kNN是一种简单的监督学习算法,主要用于分类和回归任务。

是什么

        kNN基于“物以类聚”原理:给定一个新数据点,算法查找训练数据中距离最近的k个邻居,通过多数投票(分类)或平均值(回归)预测结果。核心公式是距离计算(如欧几里得距离:∑i=1n​(xi​−yi​)2​)。例如,k=5时,预测新点的类别是邻居中频率最高的类别。

  • 关键术语​:k值(邻居数量)、距离度量(欧几里得、曼哈顿等)、权重(如反比权重)。k选择是关键:小k噪声敏感,大k计算量大。
  • 数学基础​:无显式训练阶段,属于实例学习(lazy learning),直接存储数据。
为什么

        kNN适用于简单、低维数据,优势是直观易理解、无需训练模型(适合小数据集)。适用场景:图像识别、文本分类(如情感分析)。其劣势:计算量大(高维数据慢)、对噪声敏感、需归一化数据。Why kNN?因为它是非参数方法,无需假设数据分布,适合探索性分析。

怎么用
  1. 步骤​:
    • 数据准备:清洗数据、归一化特征以避免尺度影响。
    • 选择k:通过交叉验证测试(如k=3,5,10),选择最佳k。
    • 距离计算:使用Scikit-learn的KNeighborsClassifierKNeighborsRegressor
    • 评估:分类任务用准确率、召回率;回归任务用MSE(均方误差)。
  2. 代码示例​(Python Scikit-learn):
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import accuracy_score# 数据加载和分割
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    knn = KNeighborsClassifier(n_neighbors=5)  # k=5
    knn.fit(X_train, y_train)
    y_pred = knn.predict(X_test)
    print("Accuracy:", accuracy_score(y_test, y_pred))
  3. 工具建议​:Scikit-learn默认实现;调参用网格搜索GridSearchCV

线性回归算法:Linear Regression

        线性回归是监督学习算法,用于预测连续数值变量。

是什么

        线性回归假设自变量(特征)与因变量(目标)存在线性关系,通过拟合一条直线(或超平面)实现预测。模型公式:y=β0​+β1​x1​+⋯+βn​xn​+ϵ,其中β是系数,ϵ是误差。目标是minimize残差平方和(RSS),使用梯度下降或最小二乘法求解系数。

  • 关键术语​:系数(斜率)、截距(bias)、多元线性回归(多个特征)。核心是R²指标评估拟合度。
  • 数学基础​:OLS(普通最小二乘法)或梯度下降优化;标准化特征以改善收敛。
为什么

        线性回归简单高效,解释性强(系数反映特征重要性),适用于预测型任务如房价、销量。优势:计算快、可解释;劣势:假设数据线性、易受异常值影响。Why线性回归?作为基础模型,它可作为更复杂算法的起点,或用于简单可解释场景。

怎么用
  1. 步骤​:
    • 数据预处理:处理缺失值、特征归一化、探索相关关系。
    • 模型训练:拟合直线,评估假设(线性、独立误差)。
    • 评估:用MSE、MAE或R²(决定系数)。
  2. 代码示例​:
    from sklearn.linear_model import LinearRegression
    from sklearn.metrics import mean_squared_errormodel = LinearRegression()
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    print("MSE:", mean_squared_error(y_test, y_pred))
  3. 工具建议​:Scikit-learn的LinearRegression;检查残差图验证假设。

逻辑回归算法:Logistic Regression

        逻辑回归是监督学习算法,专门用于二分类问题。

是什么

        逻辑回归基于线性回归,但通过Sigmoid函数输出概率,将连续预测压缩到0-1之间。它是广义线性模型,使用最大似然估计训练参数。

  • 关键术语​:Sigmoid函数、log损失函数、正则化项(L1/L2防止过拟合)。适合概率输出,但本质是分类。
  • 数学基础​:梯度下降优化损失函数;输出是目标类别的概率。
为什么

        逻辑回归适用于二分类场景(如垃圾邮件检测、医疗诊断),优势是概率输出、解释性强(系数可读)、高效。Why逻辑回归?相比其他分类器,它计算轻量、不易过拟合,是基准模型。劣势:仅限线性决策边界,需特征工程。

怎么用
  1. 步骤​:
    • 数据准备:确保二分类标签、特征编码(如独热编码)。
    • 模型训练:设置正则化(如Scikit-learn的C参数)。
    • 评估:用准确率、精度、召回率、F1分数;ROC曲线验证阈值。
  2. 代码示例​:
    from sklearn.linear_model import LogisticRegressionmodel = LogisticRegression(penalty='l2', C=1.0)  # L2正则化
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    # 输出概率:model.predict_proba(X_test)
  3. 工具建议​:Scikit-learn默认实现;多分类问题用OneVsRest

决策树算法:Decision Tree

        决策树是监督学习算法,用于分类和回归,模拟人类决策过程。

是什么

        决策树通过树形结构递归分裂数据:每个节点代表特征测试,分支代表测试结果,叶节点代表预测结果。分裂基于信息增益(分类)或方差减少(回归)。公式:信息增益基于熵(H(D)=−∑pi​logpi​)或基尼系数。

  • 关键术语​:根节点、内部节点、叶节点、剪枝(防止过拟合)、特征重要性。
  • 数学基础​:递归二分分裂,max_depth控制树深;CART算法常用。
为什么

        决策树直观、可解释(可视化)、处理非线性数据(不需特征缩放),适用场景如客户流失预测。优势:无需数据预处理、支持混合特征;劣势:易过拟合(需剪枝)。Why决策树?作为基础集成模型组件,它在复杂数据中表现好。

怎么用
  1. 步骤​:
    • 数据准备:处理缺失值、类别特征编码。
    • 训练树:选择分裂标准(基尼或熵)、设置深度限制。
    • 评估:分类用混淆矩阵、回归用MSE;可视化树结构。
  2. 代码示例​:
    from sklearn.tree import DecisionTreeClassifier
    import matplotlib.pyplot as plt
    from sklearn import treemodel = DecisionTreeClassifier(max_depth=4, criterion='gini')
    model.fit(X_train, y_train)
    # 可视化
    plt.figure(figsize=(12,8))
    tree.plot_tree(model, feature_names=X.columns, class_names=['Class0', 'Class1'])
    plt.show()
  3. 工具建议​:Scikit-learn的DecisionTreeClassifier;剪枝用min_samples_leaf

集成学习:Ensemble Learning

        集成学习不是单一算法,而是组合多个弱模型(如决策树)构建强模型的技术。

是什么

集成学习通过投票或平均提升模型鲁棒性和准确率。常见方法:

  • Bagging​:如随机森林(多棵树并行训练,减少方差)。

  • Boosting​:如AdaBoost或梯度提升树(GBM),顺序训练模型纠正错误。

  • Stacking​:组合不同模型输出作为新输入。
    核心是“多样性误差减少”原理。

  • 关键术语​:弱学习者、bagging、boosting、超参数(如树的数量)。

  • 数学基础​:偏差-方差分解;Boosting用加权损失函数优化。

为什么

        集成学习显著提高准确性(尤其复杂数据),抗噪声、防过拟合。Why集成?单模型易受限,集成可平衡偏差-方差,如随机森林处理高维数据;应用在竞赛(如Kaggle)、风控系统。劣势:计算开销大、解释性差。

怎么用
  1. 步骤​:
    • 选择方法:Bagging用于高方差数据(如随机森林),Boosting用于高偏差。
    • 训练:使用Scikit-learn集成类。
    • 评估:交叉验证验证性能。
  2. 代码示例​(随机森林):
    from sklearn.ensemble import RandomForestClassifier
    model = RandomForestClassifier(n_estimators=100, max_depth=10)  # 100棵树
    model.fit(X_train, y_train)
    # 特征重要性:model.feature_importances_
  3. 工具建议​:Scikit-learn的RandomForestClassifierGradientBoostingClassifier;XGBoost库更高效。

7. 聚类算法:Clustering Algorithms

        聚类是无监督学习,用于数据分组。

是什么

        聚类算法基于相似性(如距离)将数据分为多个簇。最常见算法(本系列着重讲解K-Means​算法):

  • K-Means​:迭代优化簇中心,最小化簇内平方和。

  • DBSCAN​:基于密度分组,处理噪声。

  • 层次聚类​:构建树状结构。

  • 关键术语​:簇中心、肘方法选择k值、轮廓系数评估质量。

  • 数学基础​:K-Means用欧几里得距离最小化目标函数;DBSCAN用核心点概念。

为什么

        聚类发现数据内在结构,无需标签,适用场景如客户分群、图像分割。Why聚类?揭示隐藏模式,支持后续监督学习(如特征工程);简单高效。劣势:需预定义簇数(如K-Means)、敏感尺度。

怎么用
  1. 步骤​:
    • 数据准备:归一化特征、探索合适簇数(用肘方法)。
    • 训练模型:应用算法。
    • 评估:用轮廓系数(-1到1)或内部指标;可视化簇分布。
  2. 代码示例​(K-Means):
    from sklearn.cluster import KMeans
    from sklearn.metrics import silhouette_scorekmeans = KMeans(n_clusters=3, random_state=42)
    kmeans.fit(X)
    labels = kmeans.labels_
    print("Silhouette Score:", silhouette_score(X, labels))
  3. 工具建议​:Scikit-learn的KMeansDBSCAN;选择k值用KElbowVisualizer

总结

        机器学习从数据学习模式,核心知识点覆盖监督学习(如kNN、线性回归、逻辑回归、决策树、集成)和无监督学习(如聚类)。每个算法各有重点:

  • 是什么​:定义基本运作原理。
  • 为什么​:分析适用场景、优势劣势。
  • 怎么用​:提供实际步骤、Python代码示例。

        应用建议:选择算法取决于数据(监督或未监督)、任务类型(如分类或聚类)。实践中,通过交叉验证和调参优化模型。入门可先用Scikit-learn实践小项目(如Iris数据集),再扩展到真实数据。总结构架强调理解基础概念,构建系统知识。

尾声

        哈哈,机器学习系列终于结束啦,这里附上系列全篇的链接供大家及时查漏补缺。接下来笔者将会开一个新的系列:深度学习。希望友友们多多支持,点赞收藏搞起来哈哈哈😘。笔者也是从零开始学习ai,文章内难免有不足之处,也希望友友们多多评论指正o(*^@^*)o。

        系列链接(全):

1.机器学习概要

2.k-近邻算法

3.线性回归的概念和案例

4.逻辑回归的概念和案例

5.决策树的概念和案例

6.集成学习的概念和案例

7.聚类算法的概念和案例

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词