首页 > 编程语言 >白话机器学习算法入门笔记

白话机器学习算法入门笔记

时间:2024-01-30 12:55:43浏览次数:185  
标签:负类 预测 白话 模型 分类 特征 算法 入门

机器学习中常见的十大算法包括:

1.线性回归(Linear Regression) - 用于预测连续值的简单线性回归模型。

2.逻辑回归(Logistic Regression) - 用于分类问题的logistic回归模型。

3.决策树(Decision Tree) - 一种流行的树形分类与回归方法。

4.支持向量机(SVM) - 一种二分类模型, Finds an optimal hyperplane in an N-dimensional space that distinctly classifies the data points.

5.朴素贝叶斯(Naive Bayes) - 一种基于贝叶斯定理与特征条件独立假设的分类算法。

6.K-近邻(K-Nearest Neighbors) - 一种基于实例的学习,通过测量不同特征的距离进行分类。

7.K-均值聚类(K-Means Clustering) - 一种简单的无监督学习聚类算法。

8.随机森林(Random Forest) - 包含多个决策树的集成学习方法,对过拟合有稳定的抗性。

9.提升树(Boosted Trees) - 一种把多个弱学习器组合成一个强学习器的集成算法。

10.神经网络(Neural Network) - 模拟生物神经网络的人工神经网络,可用于复杂的函数逼近。

好的,我用简明的语言并给出关键公式和图例简要介绍这十大机器学习算法:

  1. 线性回归(Linear Regression)
    预测连续值的线性模型。公式:y = wx + b

  2. 逻辑回归(Logistic Regression)
    分类模型,基于Sigmoid函数将线性回归的输出转换为概率。公式: y = 1 / (1 + e^(-wx+b))

  3. 决策树(Decision Tree)
    基于特征的条件划分,树形模型。

  4. 支持向量机(SVM)
    找到最大间隔超平面进行分类。

  5. 朴素贝叶斯(Naive Bayes)
    基于贝叶斯定理与特征条件独立假设的分类器。

  6. K近邻(K-NN)
    基于距离度量确定K个最近邻居分类。

  7. K均值聚类(K-Means)
    基于距离度量将样本划分为K个簇。

  8. 随机森林(Random Forest)
    多个决策树集成,提高泛化能力。

  9. AdaBoost
    多轮迭代提升弱分类器性能。

  10. 神经网络(NN)
    模拟生物神经网络,可表示复杂函数。

<白话机器学习算法_黄莉婷苏川集>
数据->算法->参数调优->创建模型->比较选择最好的一个

行:数据点
列:变量,属性,特征,维度
变量类型:二值,分类,整型,连续(用来表示小数)

变量选择(一开始借助简单的图来研究变量相关性6.5节)

特征工程:

合并变量: 降维 - > 提取最有用的信息,获得更精简的变量集
特征工程是机器学习中非常重要的一个步骤,其目标是从原始数据中派生出描述样本的特征,以便机器学习算法可以效果地作用。特征工程主要包含以下几个方面:

  1. 特征选取(Feature Selection)

从原始特征中选择对模型最有用的特征子集。例如从图像数据中选取颜色、纹理、形状等有区分能力的特征。特征选取可以减少训练时间,防止过拟合,提高模型性能。

  1. 特征提取(Feature Extraction)

将原始特征转换或组合成更有代表性的新特征。例如通过主成分分析(PCA)算法对图像特征进行降维。特征提取可以减少特征冗余,凝聚特征信息。

  1. 特征变换(Feature Transformation)

对特征应用数学函数变换以增强特征表达能力。例如对文本特征取对数可以使高频和低频特征更加区分。特征变换可以提高模型训练效果。

  1. 特征缩放(Feature Scaling)

调整特征值范围到相似的尺度,防止某些特征远大于其他特征。例如进行最小-最大规范化(Min-Max Normalization),将特征缩放到0-1区间。特征缩放可以提高优化效率和模型稳定性。

  1. 特征交互(Feature Interaction)

探索特征之间的交互作用和相关性。例如结合年龄和工作年限作为新特征。特征交互可以创建更复杂和富表达能力的特征。

总体来说,良好的特征工程可以大大提升机器学习的效果和泛化能力,需要对数据和问题有深刻理解,才能设计出区分样本的优秀特征。

缺失数据

近似, 计算, 移除(万不得已)

选择算法

image

强化学习

参数调优

image

控制模型整体复杂度的一种方法是,通过正则化引入惩罚参数。这个新参数会通过人为增大预测误差,对模型复杂度的增加进行惩罚,从而使算法同时考虑复杂度和准确度。使模型保持简单有助于提高模型的泛化能力。

评价模型

  • 预测准确率
  • 混淆矩阵
  • 均方根误差

image
假正类(False Positive)和假负类(False Negative)是评估分类模型性能常用的两个指标。

假正类指被模型误判为正类的负类样本。比如病人实际上不患某种疾病,但分类模型判断其患病。

假负类则反之,指被模型误判为负类的正类样本。如病人实际上患某种疾病,但分类模型判断其不患病。

混淆矩阵(Confusion Matrix)给出了这四类情况的汇总:

  • 真正类(True Positive):正类预测为正类
  • 假正类(False Positive):负类预测为正类
  • 假负类(False Negative):正类预测为负类
  • 真负类(True Negative):负类预测为负类

混淆矩阵直观显示了分类模型的预测力,常用来评估二分类和多分类模型的性能。

针对假正类和假负类的比例,还可以计算精确率(Precision)和召回率(Recall)等指标,全面评价模型的预测偏差。

交叉验证

image

第二章 K类聚值

image

组群数量

首先,群组数量要足够大,以便提取有意义的模式,用作商业决策参考;其次,还要足够小,
image

迭代过程

image

步骤 1:首先猜测每个群组的中心点。因为暂时不能确定通过猜测
得到的中心点是否正确,所以称它们为伪中心点。
步骤 2:把每个数据点分配给最近的伪中心点。这样一来,就得到
了两个群组,即红色群组和蓝色群组,如图 2-3 所示。
步骤 3:根据群组成员的分布,调整伪中心点的位置。
步骤 4:重复步骤 2 和步骤 3,直至群组成员不再发生变化。

第三章:主成分分析

image
image

第四章:关联规则

识别关联规则的常用指标有 3 个:支持度、置信度和提升度。

image

image

先验原则

image

网络关系分析

image

image

Louvain 方法

PageRange算法

image

第六章:回归关系

梯度下降法

image

image

image

image

更高阶技术: 套索回归或岭回归 ->消除多重共线性

第七章:K最近邻算法和异常检测

image

image

image

第8章 支持向量机 (可跳过)

image

支持向量机具备在高维空间操纵数据的能力,这使得它在分析有多个变量的数据集时大受欢迎。支持向量机的常见应用场景包括遗传信息破译以及文本情感分析。

第9章决策树

生成决策树: 递归拆分
image

决策树的多样化方法: (黑盒,难以可视化)

  • 随机森林: 随机选择二元选择题,多棵决策树,综合预测结果
  • 梯度提升: 有策略选择二元选择题,逐步提高预测准确度,然后将所有预测结果加权平均.

第10章: 随机森林

这基于以下事实:虽然错误的预测结果可能有很多,但是正确的只有一个。通过组合具有不同优缺点的模型,往往能强化正确的预测结果,同时使错误相互抵消。这种通过组合不同模型来提高预测准确度的方法被称为集成方法
image
image

image

不可解释性可能会带来伦理问题,尤其适用于那些预测准确度比可解释性更重要的场合。
虽然随机森林的预测结果不具有可解释性,但是仍然可以根据对预测结果的贡献度大小对各个预测变量进行排序。

第11章: 神经网络

image

损失层:虽然图 11-7 并未显示损失层,但是在神经网络的训练过程中,损失层是存在的。该层通常位于最后,并提供有关输入是否识别正确的反馈;如果不正确,则给出误差量。
在训练神经网络的过程中,损失层至关重要。若预测正确,来自于损失层的反馈会强化产生该预测结果的激活路径;若预测错误,则错误会沿着路径逆向返回,这条路径上的神经元的激活条件就会被重新调整,以减少错误。这个过程称为反向传播。
通过不断重复这个训练过程,神经网络会学习输入信号和正确输出标签之间的联系,并且把这些联系作为激活规则编入每个神经元。因此,为了提高神经网络的预测准确度,需要调整管
理激活规则的部件。

第12章: A/B测试和多臂tiger机

image

image

附录

image

image

image

苏川集(Kenneth Soo)毕业于美国斯坦福大学,并取得统计学硕士学位。此前,他在英国华威大学学习 MORSE,不仅名列前茅,还是运筹学和管理科学组的助理研究员,从事网络随机故障下应用程序的双目标稳健优化研究。
MORSE 的全称是 Mathematics, Operational Research, Statistics and Economics,即数
学、运筹学、统计学和经济学。——编者注

标签:负类,预测,白话,模型,分类,特征,算法,入门
From: https://www.cnblogs.com/clamber/p/17996865

相关文章

  • 代码随想录算法训练营第六天 |242. 有效的字母异位词 349. 两个数组的交集 202. 快乐
    1.两数之和 已解答简单 相关标签相关企业 提示 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同......
  • kettle从入门到精通 第三十六课 kettle carte 集群
    1、carte服务可以单体运行也可以集群方式运行,今天我们一起来学习下carte的集群模式部署和使用。本次示例用一个master和两个slave从节点演示。carte-config-master-8080.xml 配置文件:1<slave_config>2<!--3Documentdescription...45-masters:Youcanlistt......
  • 基于注意力机制与改进TF-IDF的推荐算法
    前言本篇文章是2020年8月发表于《计算机工程》的一篇期刊论文,文章名称《基于注意力机制与改进TF-IDF的推荐算法》。文章针对传统推荐系统主要依赖用户对物品的评分数据而无法学习到用户和项目的深层次特征的问题,提出基于注意力机制与改进TF-IDF的推荐算法(AMITI)。将双层注意力......
  • SpringBoot中集成Minio高性能分布式存储文件服务入门
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662参考上面搭建项目。MinioMinio是基于Go语言编写的对象存储服务,适合于存储大容量非结构化的数据,例如图片、音频、视频、日志文件、备份数据和容器/......
  • WebAssembly入门笔记[4]:利用Global传递全局变量
    利用WebAssembly的导入导出功能可以灵活地实现宿主JavaScript程序与加载的单个wasm模块之间的交互,那么如何在宿主程序与多个wasm之间传递和共享数据呢?这就需要使用到Global这个重要的对象了。一、数值类型全局变量二、将JavaScript函数设置为全局变量三、利用全局变量处理字符......
  • 算法模板 v1.5.1.20240130
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • 文心一言 VS 讯飞星火 VS chatgpt (189)-- 算法导论14.1 6题
    六、用go语言,在OS-SELECT或OS-RANK中,注意到无论什么时候引用结点的size属性都是为了计算一个秩。相应地,假设每个结点都存储它在以自己为根的子树中的秩。试说明在插入和删除时,如何维护这个信息。(注意,这两种操作都可能引起旋转。)文心一言:在OS-SELECT和OS-RANK中,我们维护一个树形结......
  • (算法)高精度运算
    为什么要有高精度就是因为当数字长度很长的时候都超过了longlong了那么我们就可以通过开数组,集合等方式运算,其原理就是小学生的竖式运算,没想到一个竖式运算竟然可以这么恶,现在的算法已经折磨了后面的路不好走了……先来搞一下+,-,*,/的高精度运算(都是高进度之间的运算),其实就是进位,取......
  • 如何评价搜索算法的好坏?多角度解析
    前言大家好,我是chowley,搜索算法无处不在,程序员中比较高级的算法工程师,也大多数是做搜推广方向的,今天我就简单讲解一下,如何评价搜索算法!评价搜索算法搜索算法影响着用户的搜索体验和信息获取效率。在评价搜索算法的好坏时,需要从多个角度综合考量。本文将从准确性、排序质量、响......
  • day27 代码随想录算法训练营 39. 组合总和
    题目:39.组合总和我的感悟:还是没太理解这个index和i的区别感觉要继续听继续做剪枝要进行排序,这题,我先理解到不剪枝的版本就行 代码示例:classSolution:defcombinationSum(self,candidates:List[int],target:int)->List[List[int]]:res=[]......