机器学习
文章平均质量分 71
基础内容概念以及算法的实现和简单应用,初步了解机器学习
xiaoming1999
这个作者很懒,什么都没留下…
展开
-
boosting算法
目录boosting概念AdaBoost算法步骤AdaBoost训练过程boosting代码实现boosting概念AdaBoost,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大(即下次被抽样的概率增大),而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。在直觉上:把学习器的重点放在容易出错的样本上,可以提高学习器的性能。如下图原创 2021-11-13 20:29:34 · 348 阅读 · 0 评论 -
随机森林(RF)
RF概念随机森林指的是利用多棵树对样本进行训练并预测的一种分类器RF = 决策树+bagging+随机属性选择RF算法流程样本的随机:从样本集中用bagging的方式,随机选择n个样本。 特征的随机:从所有属性d中随机选择k个属性(k<d),然后从k个属性中选择最佳分割属性作为节点建立CART决策树。 重复以上两个步骤m次,建立m棵CART决策树。 这m棵CART决策树形成随机森林,通过投票表决结果,决定数据属于哪一类。...原创 2021-11-11 17:37:37 · 3872 阅读 · 0 评论 -
集成学习-bagging算法
目录集成学习概念集成学习算法bagging算法bagging算法的使用实现集成学习概念 集成学习就是组合多个学习器,最后可以得到一个更好的学习器。(就好比当做重要决定时,大家可能都会考虑吸取多个专家而不只是一个人的意见,集成学习亦是如此)集成学习算法个体学习器之间不存在强依赖关系。装袋(bagging) 随机森林(Random Forest) 个体学习器之间存在强依赖关系。 提升(boosting) Stacking本文先讲解bagging算法:bag...原创 2021-11-10 17:29:22 · 3432 阅读 · 0 评论 -
决策树---ID3算法、C4.5算法、CART算法
决策树是一种树形结构,它每一个内部节点都表示一个属性的判断,每一个分支表示的是一种结果的输出,最后的叶子节点是代表一种分类的结果。决策树比较适合分析离散数据,如果是连续数据要先转成离散数据然后再进行分析。下面以一个例题来分析:RID age income student credit_rating Class:buys_computer 1 youth high no fair no 2 youth high no原创 2021-11-04 21:31:50 · 1037 阅读 · 1 评论 -
KNN算法思想与实现
KNN算法的思想为了判断未知实例的类别,以所有已知类别的实例作为参照选择参数k 计算未知实例与所有已知实例的距离 选择最近k个已知实例 根据少数服从多数的投票法则,让未知实例归类为k个最邻近样本中最多数的类别算法的缺点算法复杂度较高(需要比较所有已知实例与要分类的实例) 当其样本分布不平衡时,比如其中一类样本过大(实例数量过多)占主导的时候,新的未知实例容易被归类为这个主导样本,因为这类样本实例的数量过大,但这个新的未知实例实际并没有接近目标样本。欧氏距离欧式距离就是计算两个点之间的原创 2021-11-03 20:32:27 · 197 阅读 · 0 评论 -
Jupyter出现No module named ‘sklearn.model_selection‘的解决办法
今天在写代码导入from sklearn.model_selection import train_test_split包的时候,突然出现了No module named 'sklearn.model_selection。出现这个错误的原因是scikit- learn 的版本过低。解决办法:打开Anaconda Prompt,输入命令conda update scikit-learn 输入完成后,加载会出现一些选项,输入y。如上图出现了COMPLETE,代表下载完成,重新启动Jup...原创 2021-11-02 10:52:56 · 3324 阅读 · 1 评论 -
BP神经网络
目录BP神经网络概述BP神经网络算法推导过程BP神经网络解决异或问题BP神经网络概述BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为 BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,使网络的实际输出值和期望输出值的误差和方差为最小。 基本BP算法包括信号的前向传播和误差的反向传播两个过程。BP神经网络算法推导过程在算式中出现的一些例如y.j,j表示的是第j个隐层输出节点,为了辨析清楚中间用.隔开以下图所示的单隐层网络为例,所谓三层即包.原创 2021-10-31 21:45:37 · 1602 阅读 · 0 评论 -
线性神经网络
目录线性神经网络概述Delta学习规则解决异或问题线性神经网络概述线性神经网络在结构上与感知器非常相似,只是激活函数不同,是在模型训练时把原来的sign函数改成了purelin函数:y=x。感知器的输出只能是两个数-1和1,但是线性神经网络的输出可以取任何值,其传输函数是线性函数。下图就是一个线性神经网络模型,如图:x1,x2,xN为输入节点,w1,w2,wN为权向量,b为偏置因子,f为激活函数(purelin函数),神经网络的输出不仅产生二值输出以外(q),还可以产生模拟输出(原创 2021-10-31 21:29:03 · 1116 阅读 · 0 评论 -
神经网络---单层感知器
目录单层感知器感知器学习规则模型收敛的条件单层感知器程序代码实现单层感知器单层感知器是最简单的神经网络。它包含输入层和输出层,而输入层和输出层是直接相连的。它的神经元突触权值可变,因此可以通过一定规则进行学习。可以快速、可靠地解决线性可分的问题。但是它训练完后的模型可能不是最优的并且不能解决非线性的问题。上图也可以简化如下:(将偏置因子b换成x0w0,x0=1)感知器学习规则上边表示学习率,它的取值一般取0-1之间,学习率太大容易造成权值调...原创 2021-10-29 21:25:46 · 946 阅读 · 0 评论 -
回归----非线性逻辑回归
目录梯度下降法实现非线性逻辑回归代码sklearn实现非线性逻辑回归代码非线性逻辑回归和线性逻辑回归原理差不多,但是非线性逻辑回归的决策边界是一条曲线梯度下降法实现非线性逻辑回归代码导入所用的包import numpy as npimport matplotlib.pyplot as pltfrom sklearn.metrics import classification_report #对模型进行评估from sklearn import preprocessing #原创 2021-10-29 16:42:55 · 393 阅读 · 0 评论 -
回归----逻辑回归
引入逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射,使得逻辑回归称为了一个优秀的分类算法。本质上来说,两者都属于广义线性模型,但他们两个要解决的问题不一样,逻辑回归解决的是分类问题,输出的是离散值,线性回归解决的是回归问题,输出的连续值。我们定义逻辑回归的预测函数为,其中g(x)函数是sigmoid函数,如下图:决策的边界 假设w0 = -3 ,w1 = 1, w2 =1 ,那么代价函数...原创 2021-10-29 15:15:38 · 472 阅读 · 0 评论 -
LASSO、弹性网
LASSO此算法通过构造一个一阶惩罚函数获得一个精炼的模型,通过最终确定一些指标(变量)的系数为0(岭回归估计系数等于0的概率微乎其微,造成筛选变量困难),解释力很强。LASSO算法擅长处理具有多重共线性的数据,与岭回归一样是有偏估计。岭回归代价函数:LASSO代价函数:LASSO回归和岭回归最大的区别就是LASSO回归更容易使一些对回归没有贡献的系数等于0,直接可以去掉为0的系数,模型的输出不会改变。但是岭回归只能让系数趋于0,如果去掉这些系数,会对模型的效果有所损伤。sklearn.原创 2021-10-28 08:53:37 · 1473 阅读 · 0 评论 -
回归----岭回归
目录标准方程法之岭回归sklearn之岭回归标准方程法之岭回归这个数是我们在用标准方程法求线性回归时所求出来需要求解的数,但是如果数据的特征比样本点还多,那么在计算时,就会出错,因为不是满秩矩阵,所以不可逆。为了解决此问题,所以引入了岭回归概念。岭回归最早是用来处理特征数多于样本的情况,现在也用于在估计中加入偏差,从而得到更好的估计。同时也可以解决多重共线性的问题。岭回归是一种有偏估计。岭回归代价函数:将代价函数写成矩阵形式,然后对参数求导,令求导的倒数等于0,求出参数的表达原创 2021-10-27 22:22:21 · 1287 阅读 · 0 评论 -
特征缩放、交叉验证、拟合、正则化概念
特征缩放原创 2021-10-27 21:45:39 · 246 阅读 · 0 评论 -
线性回归之标准方程法
目录引入梯度下降法VS标准方程法标准方程法代码实现引入假设引入一个买房子的问题,如下表,记录了房子大小,卧室数,客厅数,拥有几年了以及价格我们将这些数据转换成矩阵形式,如下:转换成矩阵形式后,也可以将我们之前的方程转成矩阵形式如下,我们可以看到只需要求解出w即可。从第一张图,我们可以看到需要求最小的值,根据数学知识我们可以直到可以对函数进行求导来求最小的值。矩阵求导,我们需要引入一些概念以及求导公式(公式可以在网页中搜索):分子布局:分子为列向量或...原创 2021-10-27 11:25:27 · 978 阅读 · 2 评论 -
回归----多项式回归
目录多项式回归多项式代码实现多项式回归假如我们不是要找直线(或超平面),而是一个需要找到一个用多项式所表示的曲线(或超曲面)。例如二次曲线:y=at^2 + bt + c散点分布时,我们也可以清楚看到,有时我们找一条曲线,它的拟合度会更高多项式回归可以写成下面的这种形式:多项式代码实现import numpy as npimport matplotlib.pyplot as pltfrom sklearn.linear_model import LinearR...原创 2021-10-26 21:59:44 · 583 阅读 · 0 评论 -
回归----多元线性回归
多元线性回归当Y值的影响因素不是唯一时,采用多元线性回归参数:代价函数:梯度下降法:更新参数:梯度下降法实现首先把需要用到的库导入import numpy as npfrom numpy import genfromtxtimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D%matplotlib inline载入数据#载入数据data = np.genfr...原创 2021-10-26 21:44:28 · 218 阅读 · 0 评论 -
回归 ----一元线性回归
目录回归分析代价函数 (损失函数)梯度下降法 ---一元线性回归sklearn ---一元线性回归回归分析用来建立方程模拟两个或者多个变量之间如何关联被预测的变量叫做:因变量,输出被用来进行预测的变量叫做:自变量,输入一元线性回归包含一个自变量一个因变量两个变量的关系用一条直线来模拟如果包含两个以上的自变量,则称作多元回归分析hθ(x) =θ0 +θ1x 这条直线称为回归线 θ1为回归线斜率θ0为回归线截距代价函数 (损失函数)方法:最小...原创 2021-10-25 19:30:35 · 1266 阅读 · 0 评论