![](https://img-blog.csdnimg.cn/20200324093230703.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【机器学习】
.
Giyn
个人博客:https://giyn.work
联系邮箱:490601115@qq.com
展开
-
【MDS算法】—— Multiple Dimensional Scaling降维算法简介
在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维数灾难” (curse ofdimensionality)。缓解维数灾难的一个重要途径是降维 (dimension reduction),亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”(subspace), 在这个子空间中样本密度大幅提高,距离计算也变得更为容易.为什么能进行降维?这是因为在很多时候,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维原创 2020-08-19 16:31:45 · 1769 阅读 · 1 评论 -
【随机森林算法】{0} —— Bagging和随机森林算法的简单介绍
BaggingBaggingBagging 与随机森林 由个体与集成的知识可知,欲得到泛化性能强的集成,集成中的个体学习器应尽可能相互独立;虽然“独立”在现实任务中无法做到,但可以设法使基学习器尽可能具有较大的差异。给定一个训练数据集,一种可能的做法是对训练样本进行采样,产生出若干个不同的子集,再从每个数据子集中训练出一个基学习器。这样,由于训练数据不同,我们获得的基学习器可望具有比较大的差异。然而,为获得好的集成,我们同时还希望个体学习器不能太差。如果采样出的每个子集都完全不同,则每个基学习器只用到了原创 2020-08-03 10:10:36 · 325 阅读 · 1 评论 -
【GBDT模型】{0} —— GBDT模型简介及数学推导
什么是 GBDTGBDTGBDT ?GBDTGBDTGBDT 是机器学习领域中浅层模型的优秀模型,也是各大数据挖掘比赛中经常出现的框架,其全称是 GradientBoostingDecisionTreeGradient Boosting Decision TreeGradientBoostingDecisionTree,中文名是梯度提升树。在学习 GBDT 前,先普及一下关于 BoostingBoostingBoosting 的概念和性质:BoostingBoostingBoostingBoost原创 2020-08-01 17:29:06 · 1386 阅读 · 1 评论 -
【决策树算法】{3} —— CART算法
CART算法CART(Classification and Regression Tree,即分类回归树算法)是一种著名的决策树学习算法,可用于分类和回归任务。CARTCARTCART 算法使用“基尼指数”来选择划分属性。基尼指数假定当前样本集合 DDD 中第 kkk 类样本所占的比例为Pk(k=1,2,...,∣y∣)P_k (k=1,2,...,|y|)Pk(k=1,2,...,∣y∣)。数据集 DDD 的纯度可用基尼值来度量:Gini(D)=∑k=1∣y∣∑k′≠kpkpk′=∑k=原创 2020-07-22 15:43:30 · 192 阅读 · 1 评论 -
【决策树算法】{2} —— C4.5算法
C4.5C4.5C4.5 算法是基于 ID3ID3ID3 算法的改良,C4.5C4.5C4.5 算法不直接使用信息增益,而是使用“信息增益率”来选择最优划分属性。基于 ID3ID3ID3 算法的优化:1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;2) 在树构造过程中进行剪枝;3) 能够完成对连续属性的离散化处理;4) 能够对不完整数据进行处理。信息增益率信息增益准则对可取值数目较多的属性有所偏好,然而这样的决策树显然不具有泛化能力,无法对新样本进原创 2020-07-19 11:52:33 · 556 阅读 · 1 评论 -
【朴素贝叶斯算法】{3} —— 电子邮件分类
使用朴素贝叶斯对电子邮件进行分类收集数据:提供文本文件。准备数据:将文本文件解析成词条向量。分析数据:检查词条确保解析的正确性。训练算法:使用我们之前建立的trainNB0()函数。测试算法:使用classifyNB,并且构建一个新的测试函数来计算文档集的错误率。使用算法:构建一个完整的程序对一组文档进行分类,将错分的文档输出到屏幕上。一、准备数据:切分文本如何从文本文档中构...原创 2020-05-02 12:41:36 · 1612 阅读 · 1 评论 -
【Softmax回归算法】{0} —— Softmax回归算法的简单介绍
Softmax回归对于多分类问题,有一种 Logistic回归的一般形式,叫做 Softmax回归,用于处理多分类问题,例如:假设你需要识别多种动物,把猫作为类1,狗作为类2,小鸡作为类3,如果不属于以上任何一类,就分到类0。上述图片及其对应的分类就是一个例子,第一幅图片是一只小鸡,所以是类3,猫是类1,狗是类2,第四幅图片是考拉,所以以上均不符合,那就是类0,以此类推……我们用大写的 ...原创 2020-05-01 08:45:08 · 795 阅读 · 1 评论 -
【朴素贝叶斯算法】{2} —— 构建朴素贝叶斯文档分类器
机器学习的一个重要应用就是文档的自动分类。在文档分类中,整个文档(如一封电子邮件)是实例,而文档中的某些元素则构成特征。我们可以观察文档中出现的词,把每个词的出现或者不出现作为一个特征,这样得到的特征数目就会跟词汇表中的词目一样多。朴素贝叶斯是贝叶斯分类器的一个扩展,是用于文档分类的常用算法。朴素贝叶斯算法大致步骤收集数据:可以使用任何方法。如RSS源。准备数据:数值型或布尔型数...原创 2020-04-29 15:59:44 · 1199 阅读 · 1 评论 -
【朴素贝叶斯算法】{1} —— 使用条件概率来分类
条件概率:条件概率(英语:conditional probability)就是事件A在事件B发生的条件下发生的概率。条件概率表示为 P(A∣B)P(A|B)P(A∣B),读作“A在B发生的条件下发生的概率”。文氏图:根据条件概率推导贝叶斯定理:由 P(A∣B)=P(A∩B)P(B) ,由\,\,P(A|B)=\frac{P(A\cap{B})}{P(B)}\,,由P(A∣B)=P(B...原创 2020-04-29 10:52:06 · 959 阅读 · 1 评论 -
【朴素贝叶斯算法】{0} —— 朴素贝叶斯算法的简单介绍
朴素贝叶斯算法是一种有监督学习算法,用于解决分类问题。“朴素”是因为整个形式化过程只做最原始、最简单的假设。朴素贝叶斯的优缺点:优点:– 在数据较少的情况下仍然有效,可以处理多类别问题。– 简单易懂、学习效率高、在某些领域的分类问题中能够与决策树、神经网络相媲美。缺点:– 对于输入数据的准备方式较为敏感。适用数据类型:标称型数据。朴素贝叶斯是贝叶斯决策理论的一部分。...原创 2020-04-29 08:39:25 · 426 阅读 · 1 评论 -
【SVM算法】{1} —— 基于最大间隔分隔数据
mark原创 2020-04-25 13:16:49 · 873 阅读 · 1 评论 -
【SVM算法】{0} —— SVM算法的简单介绍
SVM算法简介:支持向量机(support vector machine,简称为SVM)是分类与回归分析中的一种监督学习算法,也是一种二分类模型,其基本模型定义为特征空间上间隔最大的线性分类器,且基于最大间隔分隔数据,可转化为求解凸二次规划的问题。SVM算法大致思路:SVM算法会创建一个非概率二元线性分类器,它会对我们给定的实例进行二分类。SVM算法将实例表示为空间中的点,这使得单独...原创 2020-04-25 09:50:39 · 933 阅读 · 1 评论 -
【决策树算法】{1} —— ID3算法
什么是ID3算法?ID3算法是构建决策树模型的一种常用方法,根据信息增益来选择特征。ID3算法的步骤:参数:训练集D,特征集A,阈值ε返回:决策树T若D中全部实例同属一类C,则用C作为该结点的标注,返回T。(异常处理)若A为空,则将D中实例数最多的类C作为该结点的标注,并返回T。(异常处理)计算A中每个特征对D的信息增益,并选择信息增益最大的特征a。(最优决策)如果a带来的信...原创 2020-04-24 12:13:32 · 571 阅读 · 1 评论 -
【决策树算法】{0} —— 决策树模型简介
什么是决策树?决策树是一种逻辑简单的机器学习算法,可用作分类,也可用作回归,属于监督学习(Supervised learning)。决策树的模型表达式f(x)很难被写出,却很容易被画出决策树是一种树形结构:树形结构:①结点+有向边②没有回路,根结点为始、叶子结点为终或者这么画:根节点:包含样本的全集内部节点:对应特征属性测试叶节点:代表决策的结果决策树学习的步...原创 2020-04-24 11:41:56 · 519 阅读 · 1 评论 -
【Bisecting K-Means算法】{1} —— 使用Python实现Bisecting K-Means算法并处理iris数据集
此处基于Bisecting K-means算法处理Iris数据集bisecting_kmeans.py模块:import numpy as npclass KMeansClassifier(): """初始化KMeansClassifier类""" def __init__(self, k=3, initCent='random', max_iter=500): ...原创 2020-04-23 18:36:33 · 651 阅读 · 2 评论 -
【Bisecting K-Means算法】{0} —— Bisecting K-Means算法的简单介绍
K-means算法通常只能收敛于局部最小值,这可能导致“反直观”的错误结果。因此,为了优化K-means算法,提出了Bisecting K-means算法,也就是二分K-means算法。Bisecting K-means算法 是一种层次聚类方法。层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别的相似度类创建一个有层次的嵌套的树。Bisect...原创 2020-04-23 12:29:34 · 1026 阅读 · 1 评论 -
【K-Means算法】{1} —— 使用Python实现K-Means算法并处理iris数据集
mark原创 2020-04-23 08:42:41 · 2879 阅读 · 4 评论 -
【K-Means算法】{0} —— K-Means算法的简单介绍
K-means算法是聚类算法中的一种。分类:事先知道数据的类别,使用已知的数据训练出分类器,再对未分类的数据进行分类,属于监督学习。聚类:事先不知道数据的类别,根据特征的相似度对数据进行聚类,属于非监督学习。K-means算法的基本思想:在数据集中选择K个点作为每个簇的初始中心,然后观察剩余的数据,将数据划分到距离这K个点最近的簇中,也就是说将数据划分成K个簇完成一次划分,但形成的新...原创 2020-04-22 13:56:58 · 400 阅读 · 1 评论 -
【逻辑回归算法】{3} ——实现逻辑回归算法
此处用代码展示一下,如何用梯度下降法获取逻辑回归算法的参数。一、加载sklearn中的鸢尾花数据进行测试为了数据可视化,我们选择2种类型的鸢尾花,并且只选择2个特征。import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsiris = datasets.load_iris()X...原创 2020-04-11 17:47:55 · 399 阅读 · 1 评论 -
【逻辑回归算法】{2} ——逻辑回归损失函数的梯度
目标:求出逻辑回归损失函数的最小值。逻辑回归的损失函数:逻辑回归损失函数的梯度:计算预测函数Sigmoid函数的导数:代入:计算过程:最后得出逻辑回归损失函数的梯度:回顾一下线性回归代价函数的梯度:对损失函数的梯度进行向量化:回顾一下线性回归代价函数的梯度的向量化:参考资料:bobo老师机器学习教程...原创 2020-04-10 08:44:12 · 410 阅读 · 1 评论 -
【逻辑回归算法】{1} ——逻辑回归的损失函数
逻辑回归(Logistic Regression)前面说到,对于给定的样本数据集X, y,我们需要找到参数theta,使得用这样的方式,可以最大程度获得样本数据集 X 对应的分类输出 y。要解决这个问题,就需要逻辑回归的损失函数。逻辑回归的损失函数:画出函数图像:将上述损失函数变成一个函数:预测函数:将预测函数代入逻辑回归损失函数:此函数没有公式解,只能使用梯度下...原创 2020-04-09 10:13:38 · 1057 阅读 · 3 评论 -
【逻辑回归算法】{0} ——什么是逻辑回归
逻辑回归(Logistic Regression)逻辑回归是一种用于解决二分类问题的机器学习算法,用于估计某种事物的可能性。逻辑回归既可以看作是一个回归算法,也可以看作是一个分类算法,通常用于分类,并且是二分类。 分类主要是根据概率来进行分类。逻辑回归和线性回归的区别:逻辑回归与线性回归都是一种广义线性模型。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。...原创 2020-04-08 11:49:42 · 405 阅读 · 2 评论 -
【梯度下降算法】{4} ——梯度下降法的向量化和数据标准化
一、线性回归中梯度下降法的向量化:正规方程:import numpy as npfrom sklearn import datasetsfrom playML.model_selection import train_test_splitfrom playML.LinearRegression import LinearRegressionboston = datasets.loa...原创 2020-04-07 08:54:09 · 545 阅读 · 1 评论 -
【梯度下降算法】{3} ——实现线性回归中的梯度下降法
此处准备实现线性回归中的梯度下降法。一、构造数据:import numpy as npimport matplotlib.pyplot as pltx = 2 * np.random.random(size=100) # 在[0,1)范围内返回随机生成的实数y = x * 3. + 4. + np.random.normal(size=100) # 添加噪声X = x.resha...原创 2020-04-02 10:44:09 · 208 阅读 · 3 评论 -
【梯度下降算法】{2} ——多元线性回归中的梯度下降法
此处分析一下多元线性回归模型中的梯度下降法。线性回归模型的损失函数:即使是对于样本特征数只有1的线性回归中,θ中也包含两个值θ0和θ1。梯度下降法的实现过程:代价函数:梯度下降法:当使用梯度下降法求代价函数函数最小值的时候,有时要对目标函数进行设计,例如▽J(θ)式子后面的分母m就是后期添加上去的,以防梯度大小和样本数量m有关,这是不合理的。参考资...原创 2020-04-01 08:50:13 · 513 阅读 · 1 评论 -
【梯度下降算法】{1} ——模拟实现梯度下降法
此处我们模拟一下梯度下降法的实现。一、画出损失函数的图像:import numpy as npimport matplotlib.pyplot as pltplot_x = np.linspace(-1, 6, 141) # 返回-1到6均匀间隔的数字plot_y = (plot_x-2.5)**2-1plt.plot(plot_x, plot_y)plt.show()二...原创 2020-03-31 09:38:50 · 264 阅读 · 2 评论 -
【梯度下降算法】{0} ——梯度下降法的简单介绍
什么是梯度下降法?● 不是一个机器学习算法● 是一种基于搜索的最优化方法● 作用:最小化一个损失函数● 梯度上升法:最大化一个效用函数损失函数:● η称为学习率(learning rate)● η的取值影响获得最优解的速度● η取值不合适,甚至得不到最优解● η是梯度下降法的一个超参数η取值的不同,导致的结果也可能不同:有些函数不止有一个极值点:那么如何才能获得...原创 2020-03-30 13:08:40 · 416 阅读 · 1 评论 -
【线性回归算法】{4} ——自己创建多元线性回归模型
import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsfrom playML.model_selection import train_test_splitboston = datasets.load_boston()X = boston.datay = boston.target...原创 2020-03-29 09:03:33 · 2497 阅读 · 2 评论 -
【线性回归算法】{3} ——衡量线性回归算法的指标MSE、RMSE、MAE和R Squared
此处介绍三种线性回归算法的衡量指标。第一种:MSE(均方误差)第二种:RMSE(均方根误差)使用RMSE,采用同样的量纲的话,误差背后的意义更加明显。量纲,又叫作因次,是表示一个物理量由基本量组成的情况。确定若干个基本量后,每个导出量都可以表示为基本量的幂的乘积的形式。引入量纲这一概念可以进行量纲分析,这既是物理学的基础,又有着很多重要应用。——维基百科第三种:MAE(平均绝对...原创 2020-03-28 18:48:19 · 1979 阅读 · 1 评论 -
【线性回归算法】{2} ——向量化实现线性回归
此处于之前创建的SimpleLinearRegression模块中,创建一个新的类,用于实现向量化线性回归。一、编写向量化线性回归的类:import numpy as npclass SimpleLinearRegression2(object): """使用向量化实现线性回归""" def __init__(self): """计算出来的变量,后缀加上...原创 2020-03-26 12:20:03 · 505 阅读 · 1 评论 -
【线性回归算法】{1} ——自己创建一个线性回归模型
前面只是用简单的几行代码实现线性回归,这样的缺点是可移植性差、扩展性差,多次运用的时候需要重写很多代码,这就很糟糕了。而如果直接调用 sklearn库来实现,又无法深刻理解线性回归的实现原理,因此在此试着自己创造一个线性回归模型。一、新建一个文件夹,用于放置线性回归模型模块:二、在上述文件夹中先写一个用于计算所需数值的模块metrics:import numpy as npfrom ...原创 2020-03-25 10:38:20 · 1648 阅读 · 1 评论 -
【线性回归算法】{0} ——线性回归算法的介绍及简单实现
线性回归法(Linear Regression)特点:● 解决回归问题● 思想简单,实现容易● 许多强大的非线性模型的基础● 结果具有很好的可解释性● 蕴含机器学习中的很多重要思想在分类问题中,横纵轴都是特征。在回归问题中,预测的是一个具体的数值,该数值是在一个连续的空间里的,所以要占有一个坐标轴的位置,如果想要看有两个样本特征的回归问题,就需要在三维空间中进行观察。在线...原创 2020-03-24 09:19:44 · 418 阅读 · 1 评论