当前位置: 首页 > news >正文

13种常见机器学习算法总结

目录

1. K近邻(K-NN)

2. 线性回归(一元/多元)

3. 逻辑回归

4. 决策树

5. 集成学习之随机森林

6. 贝叶斯(朴素/高斯)

7. SVM(支持向量机)

8. K-means聚类

9. DBSCAN

10. TF-IDF

11. 词向量转换(如Word2Vec)

12. PCA降维

13. XGBoost


1. K近邻(K-NN)

​原理​​:无训练过程,预测时找测试样本最近的K个邻居,按邻居类别投票(分类)或取平均(回归)。

​Python实现流程​​:

  1. 导入库,加载数据并标准化(消除量纲影响)。

  2. 划分训练集(X_train, y_train)与测试集(X_test, y_test)。

  3. 初始化KNN模型(指定K值)。

  4. 用训练集"拟合"(仅存储数据,model.fit(X_train, y_train))。

  5. 预测(model.predict(X_test))并评估(分类用accuracy,回归用MSE)。

​核心库​​:scikit-learn(sklearn.neighbors.KNeighborsClassifier/Regressor)、numpy、pandas

​重要概念与关键参数​​:

  • 概念:​​距离度量​​(如欧氏距离,衡量样本相似度)、​​K值选择​​(K过小易过拟合,过大欠拟合)。

  • 参数:n_neighbors(K值,默认5)、metric(距离度量,默认'minkowski'即欧氏距离)。

​适用问题​​:简单分类(手写数字识别)、回归(房价初步预测),适合小数据、低维度场景。


2. 线性回归(一元/多元)

​原理​​:构建线性方程(y=wx+b),通过最小二乘法最小化预测值与实际值的平方误差,拟合数据趋势(一元单特征,多元多特征)。

​Python实现流程​​:

  1. 导入库,加载数据,预处理(处理缺失值、标准化多元特征)。

  2. 划分训练集与测试集。

  3. 初始化线性回归模型。

  4. 训练模型(model.fit(X_train, y_train))。

  5. 预测(y_pred = model.predict(X_test))并评估(MAE、R²)。

​核心库​​:scikit-learn(sklearn.linear_model.LinearRegression)、numpy、pandas

​重要概念与关键参数​​:

  • 概念:​​最小二乘法​​(最小化平方误差)、​​多重共线性​​(多元特征高相关,影响系数稳定性)。

  • 参数:fit_intercept(是否计算截距,默认True)、normalize(是否标准化特征,默认False)。

​适用问题​​:连续值预测(房价、销售额、气温),特征与目标呈线性关系的场景。


3. 逻辑回归

​原理​​:用sigmoid函数将线性回归输出映射到[0,1],输出类别概率,通过阈值判断实现二分类。

​Python实现流程​​:

  1. 导入库,加载数据,预处理(编码分类特征、标准化)。

  2. 划分训练集与测试集。

  3. 初始化模型(指定正则化类型)。

  4. 训练模型(model.fit(X_train, y_train))。

  5. 预测类别(model.predict(X_test))或概率(predict_proba),评估用AUC、混淆矩阵。

​核心库​​:scikit-learn(sklearn.linear_model.LogisticRegression)、numpy、pandas

​重要概念与关键参数​​:

  • 概念:​​sigmoid函数​​(将线性输出转为概率)、​​正则化​​(L1/L2,防止过拟合)。

  • 参数:penalty(正则化类型,'l1'/'l2',默认'l2')、C(正则强度倒数,C越小正则越强)。

​适用问题​​:二分类任务(垃圾邮件识别、疾病诊断、客户流失预测)。


4. 决策树

​原理​​:基于信息增益(分类)或MSE(回归)递归划分特征,构建树状模型,通过路径决策输出结果。

​Python实现流程​​:

  1. 导入库,加载数据,预处理(无需标准化)。

  2. 划分训练集与测试集。

  3. 初始化模型(指定任务类型:分类/回归)。

  4. 训练模型(model.fit(X_train, y_train))。

  5. 预测并评估(分类用accuracy,回归用MSE),可可视化树结构。

​核心库​​:scikit-learn(sklearn.tree.DecisionTreeClassifier/Regressor)、matplotlib(可视化)

​重要概念与关键参数​​:

  • 概念:​​信息增益​​(划分后不确定性降低程度)、​​剪枝​​(预剪枝/后剪枝,防止过拟合)。

  • 参数:max_depth(树最大深度,限制过拟合)、min_samples_split(节点分裂最小样本数)。

​适用问题​​:分类(鸢尾花品种识别)、回归(房价预测),适合解释性要求高的场景。


5. 集成学习之随机森林

​原理​​:集成多棵决策树,每棵树用Bootstrap采样数据和随机特征训练,结果通过投票(分类)或平均(回归)输出。

​Python实现流程​​:

  1. 导入库,加载数据,预处理(无需标准化)。

  2. 划分训练集与测试集。

  3. 初始化模型(指定树数量)。

  4. 训练模型(model.fit(X_train, y_train))。

  5. 预测并评估,可查看特征重要性(model.feature_importances_)。

​核心库​​:scikit-learn(sklearn.ensemble.RandomForestClassifier/Regressor)

​重要概念与关键参数​​:

  • 概念:​​集成学习​​(多模型融合降低误差)、​​Bootstrap采样​​(随机抽取样本训练单树)。

  • 参数:n_estimators(树数量,默认100)、max_features(单树最大特征数,默认'auto')。

​适用问题​​:复杂分类(图像分类)、回归(股票价格预测),抗过拟合能力强,适合高维数据。


6. 贝叶斯(朴素/高斯)

​原理​​:基于贝叶斯定理,假设特征条件独立,计算样本属于各类的概率,取最大概率类为结果(高斯贝叶斯假设特征服从高斯分布)。

​Python实现流程​​:

  1. 导入库,加载数据,预处理(文本转词频向量,连续特征无需标准化)。

  2. 划分训练集与测试集。

  3. 初始化模型(文本用MultinomialNB,连续特征用GaussianNB)。

  4. 训练模型(model.fit(X_train, y_train),计算类概率与特征概率)。

  5. 预测并评估(accuracy、混淆矩阵)。

​核心库​​:scikit-learn(sklearn.naive_bayes.GaussianNB/MultinomialNB)

​重要概念与关键参数​​:

  • 概念:​​条件独立性假设​​(简化计算,忽略特征关联)、​​先验概率​​(样本属于某类的初始概率)。

  • 参数:GaussianNB中var_smoothing(平滑方差,避免概率为0,默认1e-9)。

​适用问题​​:文本分类(情感分析、垃圾邮件识别)、高维稀疏数据场景,速度快。


7. SVM(支持向量机)

​原理​​:找到最优超平面最大化两类样本间隔,非线性问题通过核函数映射到高维空间实现线性可分。

​Python实现流程​​:

  1. 导入库,加载数据,预处理(必须标准化)。

  2. 划分训练集与测试集。

  3. 初始化模型(指定核函数)。

  4. 训练模型(model.fit(X_train, y_train))。

  5. 预测并评估(分类用accuracy,回归用MSE)。

​核心库​​:scikit-learn(sklearn.svm.SVC/SVR)、numpy

​重要概念与关键参数​​:

  • 概念:​​核函数​​(如RBF,低维转高维)、​​软间隔​​(允许少量样本越界,平衡间隔与误差)。

  • 参数:kernel(核函数类型,'linear'/'rbf',默认'rbf')、C(软间隔惩罚系数,C越大惩罚越重)。

​适用问题​​:小样本分类(文本分类)、回归,高维数据(基因数据)场景。


8. K-means聚类

​原理​​:无监督学习,指定K个初始聚类中心,迭代将样本分配到最近中心并更新中心,最小化簇内方差。

​Python实现流程​​:

  1. 导入库,加载数据,标准化(消除量纲影响)。

  2. 用肘部法则确定最优K值。

  3. 初始化模型(指定K值)。

  4. 训练模型(model.fit(X),迭代优化中心)。

  5. 获取聚类标签(model.labels_),可视化聚类结果。

​核心库​​:scikit-learn(sklearn.cluster.KMeans)、matplotlib

​重要概念与关键参数​​:

  • 概念:​​聚类中心​​(簇的代表点)、​​肘部法则​​(通过簇内误差变化找最优K)。

  • 参数:n_clusters(K值,需指定)、n_init(初始化中心次数,默认10,避免局部最优)。

​适用问题​​:数据聚类(用户分群、客户画像)、异常检测初步,适合凸形簇。


9. DBSCAN

​原理​​:密度聚类,基于样本密度划分簇,通过"核心点"(邻域内样本数达标)和"密度可达"关系形成任意形状簇,无需指定K。

​Python实现流程​​:

  1. 导入库,加载数据,标准化。

  2. 调整参数eps(邻域半径)和min_samples(核心点最小样本数)。

  3. 初始化DBSCAN模型。

  4. 训练模型(model.fit(X)),得到聚类标签。

  5. 可视化聚类结果,-1表示异常点。

​核心库​​:scikit-learn(sklearn.cluster.DBSCAN)、numpy

​重要概念与关键参数​​:

  • 概念:​​核心点​​(邻域内样本数≥min_samples)、​​密度可达​​(通过核心点链连接的样本)。

  • 参数:eps(邻域半径,需根据数据分布调整)、min_samples(核心点最小样本数,默认5)。

​适用问题​​:非凸形状聚类(空间点聚类)、异常检测(欺诈识别),能处理噪声。


10. TF-IDF

​原理​​:文本特征提取方法,通过词频(TF)和逆文档频率(IDF)衡量词在文档中的重要性(词频高且少文档出现的词更重要)。

​Python实现流程​​:

  1. 导入库,准备文本数据(如句子列表)。

  2. 初始化TF-IDF转换器。

  3. 拟合文本数据(学习词表与IDF)。

  4. 转换文本为TF-IDF向量(X = model.transform(texts))。

  5. 用向量做后续任务(如分类、检索)。

​核心库​​:scikit-learn(sklearn.feature_extraction.text.TfidfVectorizer)

​重要概念与关键参数​​:

  • 概念:​​词频(TF)​​(词在文档中出现次数)、​​逆文档频率(IDF)​​(log(总文档数/含该词的文档数))。

  • 参数:max_features(保留最高频的词数,控制维度)、stop_words(停用词列表,如'english'去除英文虚词)。

​适用问题​​:文本分类、信息检索、关键词提取,处理结构化文本数据。


11. 词向量转换(如Word2Vec)

​原理​​:将词映射到低维稠密向量,通过上下文训练使语义相近的词向量距离近(如"国王-男人+女人≈女王")。

​Python实现流程​​:

  1. 导入库,准备文本数据(分词后的句子列表)。

  2. 初始化Word2Vec模型(指定向量维度、窗口大小)。

  3. 训练模型(model.build_vocab(texts);model.train(texts, ...))。

  4. 获取词向量(model.wv['word'])。

  5. 用向量做NLP任务(如文本分类、相似度计算)。

​核心库​​:gensim(gensim.models.Word2Vec)、nltk(分词)

​重要概念与关键参数​​:

  • 概念:​​分布式表示​​(向量包含语义信息)、​​CBOW/Skip-gram​​(两种训练模式,前者用上下文预测词,后者用词预测上下文)。

  • 参数:vector_size(向量维度,默认100)、window(上下文窗口大小,默认5)、sg(0=CBOW,1=Skip-gram,默认0)。

​适用问题​​:NLP任务(情感分析、机器翻译、命名实体识别),处理语义理解场景。


12. PCA降维

​原理​​:无监督降维,通过线性变换找到数据方差最大的主成分,将高维数据投影到低维空间,保留关键信息。

​Python实现流程​​:

  1. 导入库,加载数据,标准化(保证各特征方差可比)。

  2. 初始化PCA模型(指定降维后维度或方差保留比例)。

  3. 训练模型(model.fit(X),计算主成分)。

  4. 对数据降维(X_pca = model.transform(X))。

  5. 分析主成分解释的方差比例(model.explained_variance_ratio_)。

​核心库​​:scikit-learn(sklearn.decomposition.PCA)、numpy

​重要概念与关键参数​​:

  • 概念:​​主成分​​(数据方差最大的方向)、​​方差解释率​​(主成分保留的原数据信息比例)。

  • 参数:n_components(降维后维度,可设0-1间的数表示方差保留比例,如0.95保留95%信息)。

​适用问题​​:高维数据降维(图像、基因数据)、去噪,简化后续模型计算。


13. XGBoost

​原理​​:优化的梯度提升树,串行训练决策树,每棵树拟合前序模型的残差,通过正则化和并行计算提升效率与性能。

​Python实现流程​​:

  1. 导入库,加载数据,预处理(处理缺失值、编码分类特征)。

  2. 划分训练集与测试集,转为DMatrix格式(XGBoost专用)。

  3. 定义参数(学习率、树深度等)。

  4. 训练模型(model = xgb.train(params, dtrain, num_boost_round))。

  5. 预测(model.predict(dtest))并评估(分类用accuracy,回归用MSE)。

​核心库​​:xgboost(xgboost.XGBClassifier/XGBRegressor)、pandas

​重要概念与关键参数​​:

  • 概念:​​正则化提升​​(加入树复杂度惩罚,减少过拟合)、​​并行计算​​(特征分裂候选点并行,加速训练)。

  • 参数:learning_rate(学习率,默认0.1)、max_depth(树深度,默认3)、n_estimators(树数量,默认100)、objective(损失函数,如'binary:logistic'用于二分类)。

​适用问题​​:高维数据分类(信用风险评估)、回归(销量预测),竞赛与工业界常用,精度高。

http://www.xdnf.cn/news/1361215.html

相关文章:

  • 青少年软件编程(python六级)等级考试试卷-客观题(2023年3月)
  • 学习制作记录(选项UI以及存档系统)8.24
  • 基于RISC-V架构的国产MCU在eVTOL领域的应用研究与挑战分析
  • 【Ollama】本地OCR
  • 波兰密码破译机bomba:二战密码战的隐形功臣
  • Shell 循环实战:while 与 until 的趣味编程之旅
  • 3.4 磁盘存储器 (答案见原书 P194)
  • 【重学MySQL】八十八、8.0版本核心新特性全解析
  • Unity的Cursor.lockState
  • DeepSeek对采用nginx实现透传以解决OpenShift 4.x 私有数据中心和公有云混合部署一套集群的解答
  • 【SBP】Unity 打包构建管线原理解析于对比
  • 联想win11笔记本音频失效,显示差号(x)
  • 半年网络安全转型学习计划表(每天3小时)
  • 从成本中心到价值创造者:网络安全运维的实施框架与价值流转
  • VMware centos磁盘容量扩容教程
  • Windows 系统下 Android SDK 配置教程
  • 使用 Frida 运行时检测 Android 应用的真实权限状态 (App Ops)
  • 强逆光干扰漏检率↓78%!陌讯多模态融合算法在光伏巡检的实战优化
  • Java全栈开发面试实战:从基础到高并发场景的深度解析
  • Python性能优化实战(二):让循环跑得比博尔特还快
  • 27.编程思想
  • 【golang长途旅行第30站】channel管道------解决线程竞争的好手
  • Teams Bot机器人实时语音识别的多引擎的处理
  • TCP--执行Linux命令(虚拟xshell)
  • 数据建模怎么做?一文讲清数据建模全流程
  • 一、基因组选择(GS)与基因组预测(GP)
  • 网络安全转型书籍清单
  • 【Java开发日记】我们来讲一讲 Channel 和 FileChannel
  • 深度学习之第一课深度学习的入门
  • VirtualBox安装openEuler24.03