![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
NongfuSpring-wu
这个作者很懒,什么都没留下…
展开
-
梯度下降算法
梯度下降算法概念梯度下降的基本过程就和下山的场景很类似。首先,我们有一个可微分的函数。这个函数就代表着一座山。我们的目标就是找到这个函数的最小值,也就是山底。根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向(在后面会详细解释)...转载 2020-03-31 17:30:30 · 267 阅读 · 0 评论 -
模型评估的重要指标
模型的测试一般在以下几个方面进行比较,即模型的重要评价指标,分别是 准确率/召回率/精准率/F值/ROC曲线/AUC曲线接下来针对模型的评价指标进行相关的阐述。在介绍各项指标之前先简单介绍下混淆矩阵真正例(TP):实际上是正例的数据点被标记为正例假正例(FP):实际上是反例的数据点被标记为正例真反例(TN):实际上是反例的数据点被标记为反例假反例(FN):实际上是正例的...原创 2020-03-29 20:51:05 · 555 阅读 · 0 评论 -
机器学习之交叉验证法
交叉验证的定义顾名思义,把得到的数据进行切分,一部分为训练集,剩下的为测试集,训练集用来训练模型,测试集来评估模型的好坏。由于可以重复使用数据进行改变数据集中训练集和测试集的百分比进行训练,得到多组不同的训练集测试集,因此训练集和测试集的数据在不同的划分次数中可能出现来交叉使用,因此称为交叉验证。交叉验证作用为了得到可靠稳定的模型,机器学习中的交叉验证主要用于在多个模型(不同种类模型或...原创 2020-03-29 11:17:40 · 2108 阅读 · 0 评论 -
随机森林API的理解(sklearn.ensemble.RandomForest)
sklearn.ensemble.RandomForestClassifierclasssklearn.ensemble.RandomForestClassifier(n_estimators ='warn',criterion ='gini',max_depth = None,min_samples_split = 2,min_samples_leaf = 1,min_weight_f...翻译 2019-08-05 10:46:08 · 1285 阅读 · 0 评论 -
LDA(线性判别分析 )
在主成分分析(PCA)原理总结中,对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。思想: LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别...原创 2019-07-31 19:10:38 · 1084 阅读 · 0 评论 -
PCA(主成分分析)
1.相关背景在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律。多变量大数据集无疑会为研究和应用提供丰富的信息,但是也在一定程度上增加了数据采集的工作量。更重要的是在很多情形下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性。如果分别对每个指标进行分析,分析往往是孤立的,不能完全利用数据中的信息,因此盲目减少指标会损失很多有用的信息,从而产生错...转载 2019-07-21 11:17:53 · 2425 阅读 · 0 评论 -
密度聚类(DBSCAN)
classsklearn.cluster.DBSCAN(eps=0.5,min_samples=5,metric=’euclidean’,metric_params=None,algorithm=’auto’,leaf_size=30,p=None,n_jobs=None)参数: eps:float,可选 两个样本之间的最大距离,一个被认为是另一个样本...翻译 2019-07-12 09:43:23 · 565 阅读 · 0 评论 -
层次聚类优化方法BIRCH(聚类特征树的多阶段聚类)
classsklearn.cluster.Birch(threshold = 0.5,branching_factor = 50,n_clusters = 3,compute_labels = True,copy = True)参数: threshold:float,默认值为0.5 通过合并新样本和最近的子集群获得的子集群的半径应小于阈值。否则,将启动...翻译 2019-07-12 09:33:54 · 688 阅读 · 0 评论 -
SKlearn库层次聚类凝聚
classsklearn.cluster.AgglomerativeClustering(n_clusters = 2,affinity ='euclidean',memory = None,connectivity = None,compute_full_tree ='auto',linkage ='ward',pooling_func ='deprecated',distance_thr...翻译 2019-07-11 17:15:34 · 2162 阅读 · 2 评论 -
密度聚类算法(DBSCAN解析)
密度聚类方法的指导思想: 只要样本点的密度大于某个阈值,则将该样本添加到最近的簇中这类算法可以克服基于距离的算法只能发现凸聚类的缺点,可以发现任意形状的聚类,而且对噪声数据不敏感。计算复杂度高,计算量大、一次扫描、需要密度参数作为停止条件。常用密度聚类算法:DBSCAN、MDCA、OPTICS、DENCLUE等DBSCAN(Density-Based Spatial Clustering ...原创 2019-07-11 17:13:20 · 9974 阅读 · 0 评论 -
BIRCH层次聚类优化算法(平衡迭代规约聚类树
BIRCH算法(平衡迭代削减聚类法):聚类特征使用3元组进行一个簇的相关信息,通过构建满足分枝因子和簇直径限制的聚类特征树来求聚类,聚类特征树其实是一个具有两个参数分枝因子和类直径的高度平衡树;分枝因子规定了树的每个节点的子女的最多个数,而类直径体现了对这一类点的距离范围;非叶子节点为它子女的最大特征值;聚类特征树的构建可以是动态过程的,可以随时根据数据对模型进行更新操作。优缺点: ...原创 2019-07-11 14:54:21 · 998 阅读 · 0 评论 -
PCA(主成分分析)和LDA(线性判别分析)的异同处及应用场景
在机器学习领域,PCA和LDA都可以看成是数据降维的一种方式。但是PCA是无监督的,也就是说不需要知道样本对应的标签,而LDA是有监督的,需要知道每一个数据点对应的标签。图的左边是PCA,它所作的只是将整组数据整体映射到最方便表示这组数据的坐标轴上,映射时没有利用任何数据内部的分类信息。因此,虽然做了PCA后,整组数据在表示上更加方便(降低了维数并将信息损失降到最低),但在分类上也许会变得...原创 2019-07-31 19:49:13 · 6016 阅读 · 1 评论 -
集成学习综述
在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。集成方法是将几种机器学习技术组合成一个预测模型的元...原创 2019-08-01 09:57:34 · 502 阅读 · 1 评论 -
Bagging(Bootstrap Aggregating)
思想:Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术。主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。这是机器学习中常规策略的一个例子,被称为模型平均(modelaveraging)。采用这种策略的技术被称为集成方法。框架流程:从原始样本集中使用Bootstraping 方法随机抽取n个训练样本,共进行k轮抽取,...原创 2019-08-05 10:15:47 · 2309 阅读 · 0 评论 -
关于RandomForest的变种算法
常见的RF变种算法如下:Extra Tree、Totally Random Trees Embedding(TRTE)、Isolation Forest待补充》》》原创 2019-08-05 10:52:03 · 277 阅读 · 0 评论 -
Boosting(提升)算法之Adaboost
Boosting算法思想:Boosting是一种框架算法,主要是通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。他可以用来提高其他弱分类算法的识别率,也就是将其他的弱分类算法作为基分类算法放于Boosting 框架中,通过Boosting框架对训练样本集的操作,得到不同的训练样本子集,用该样本子集去训练生成基分类器;每得到一个样本集就用该基分类算法在该样本...原创 2019-08-05 15:22:07 · 445 阅读 · 0 评论 -
Adaboost 算法API理解
sklearn.ensemble.AdaBoostClassifierclasssklearn.ensemble.AdaBoostClassifier(base_estimator=None,n_estimators=50,learning_rate=1.0,algorithm=’SAMME.R’,random_state=None)参数: base_est...翻译 2019-08-05 16:08:28 · 469 阅读 · 0 评论 -
Boosting(提升)算法之GBDT(Gradient Boosting + Decision Tree)
梯度提升迭代决策树GBDTBoosting家族中另一个重要的算法--梯度提升树(Gradient Boosting Decision Tree,简称GBDT)。GBDT有很多简称,比如GBT(Gradient Boosting Tree),GTB(Gradient Tree Boosting), GBRT(Gradient Boosting Regression Tree),MART(Mult...原创 2019-08-05 19:18:57 · 509 阅读 · 0 评论 -
机器学习中对模型评估常用的指标
对于机器学习主要分为两大类型,第一类分类,第二类回归,当然针对不同类型的算法问题,评估模型的好坏的指标也不相同。接下来我针对两类进行机器学习模型指标的大致介绍。1 分类指标关于分类器模型中又分为二分类和多分类对于二分类问题模型预测的类别要么正类要么负类,那么可以分为真正类,假正类,要么真负类,假负类。可以使用二元混淆矩阵表示。 真实类别 ...原创 2019-09-18 09:57:06 · 504 阅读 · 0 评论 -
生成式与判别式的区分
生成式与判别式区别二者的区别主要就是由于一个是***联合概率分布P(x,y)***,另一个估计***条件概率分布P(y|x)***,而生成式模型能够根据贝叶斯公式得到判别式模型也是根据公式而来。联合概率分布,则是特征值对应某标签的概率,现在要判断一个特征值对应的标签,根据联合概率,只能算出其对应各标签的概率值,而只有通过比较全部的值才能知道属于哪个标签;而条件概率分布则是输入特征直接出来对应的...原创 2019-09-21 10:54:03 · 737 阅读 · 0 评论 -
熵,信息熵,条件熵
随机事件 X 所包含的信息量与其发生的概率有关。发生的概率越小,其信息量就越大;反之,必定发生的事件(如太阳东升西落),其信息量为 0。信息量公式:I(X) = −logp(X) ,其中 I 是 information 的缩写。信息量公式的单位:log 以2为底,记作lb,单位比特(bit)log 以e为底,记作ln,单位奈特(nat)log 以10为底,记作lg,单位哈脱来(hat)...原创 2019-09-21 10:55:56 · 1063 阅读 · 0 评论 -
奇异值分解(SVD)
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。本文就对SVD的原理做一个总结,并讨论在在PCA降维算法中是如何运用运用SVD的。特征值和特征向量回顾求出特征值和特征向量有什么好处呢? 就是我们可以将矩阵A特征...转载 2019-07-15 16:31:34 · 303 阅读 · 0 评论 -
层次聚类
层次聚类方法对给定的数据集进行层次的分解,直到满足某种条件为止,传统的层次聚类算法主要分为两大类算法:凝聚的层次聚类:AGNES算法(AGglomerative NESting )==>采用自底向上的策略。 最初将每个对象作为一个簇,然后这些簇根据某些准则被一步一步合并,两个簇间的距离可以由这两个不同簇中距离最近的数据点的相似度来确定;聚类的合并过程反复进行直到所有的对象满足簇数目。...原创 2019-07-11 09:03:29 · 1426 阅读 · 0 评论 -
分类决策树API
分类决策树DecisionTreeClassifier(criterion ='gini',splitter ='best',max_depth = None,min_samples_split = 2,min_samples_leaf = 1,min_weight_fraction_leaf = 0.0,max_features = None,random_state = None,max_...原创 2019-07-04 16:59:53 · 445 阅读 · 0 评论 -
决策树详解
决策树(ID3、C4.5和CART算法)决策树是什么下面主要讨论用与分类的决策树。决策树呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型;预测时,对新的数据,利用决策模型进行分类。决策树的分类:决策树可以分为两类,主要取决于它目标变量的类型。离散性决策树:离散性决策树,其目标变量是离散的,如性别:男或女等; ...原创 2019-07-04 16:22:05 · 1937 阅读 · 0 评论 -
决策树波士顿房价预测代码难点笔记
关于中文字体不能正常显示问题:采用matplotlib作图时默认设置下是无法显示中文的,凡是汉字都会显示成小方块。实际上,matplotlib是支持unicode编码的,不能正常显示汉字主要是没有找到合适的中文字体,在matplotlib的配置文件C:\Python34\Lib\site-packages\matplotlib\mpl-data\matplotlibrc中,可以看到字体的默...原创 2019-07-04 11:14:14 · 1147 阅读 · 0 评论 -
k-means算法API详解
classsklearn.cluster.KMeans(n_clusters=8,init=’kmeans++’,n_init=10,max_iter=300,tol=0.0001,precompute_distances=’auto’,verbose=0,random_state=None,copy_x=True,n_jobs=None,algorithm=’auto’)...原创 2019-07-09 16:23:39 · 1155 阅读 · 0 评论 -
K-means算法思路总结
k-means算法是一种聚类算法,所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,将具有较高相异度的数据对象划分至不同类簇。聚类与分类最大的区别在于,聚类过程为无监督过程,即待处理数据对象没有任何先验知识,而分类过程为有监督过程,即存在有先验知识的训练数据集。k-means是一种无监督学习,它会将相似的对象归到同一类中。k-means聚类的优缺点优点:(1)算法快速、...原创 2019-07-09 16:01:37 · 1607 阅读 · 0 评论 -
语音特征参数MFCC
MFCC初识MFCC,Mel频率倒谱系数的缩写。Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征,简单地说可以理解为语言信号的能量在不同频率范围的分布.在语音识别(SpeechRecognition)和话者识别(SpeakerRecognition)方面,最常用到的语音特征就是梅尔倒谱系数(Me...转载 2019-07-12 17:03:40 · 1130 阅读 · 0 评论 -
逻辑回归交叉验证法(LogisticRegressionCV)参数介绍
classsklearn.linear_model.LogisticRegressionCV(Cs=10,fit_intercept=True,cv=’warn’,dual=False,penalty=’l2’,scoring=None,solver=’lbfgs’,tol=0.0001,max_iter=100,class_weight=None,n_jobs=None,...原创 2019-07-09 10:43:46 · 9773 阅读 · 1 评论 -
逻辑回归(LogisticRegression)参数介绍
classsklearn.linear_model.LogisticRegression(penalty=’l2’,dual=False,tol=0.0001,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,random_state=None,solver=’warn’,max_iter=100,m...原创 2019-07-09 10:15:27 · 7107 阅读 · 2 评论 -
机器学习模型保存与持久化
sklearn官网提供了两种保存model的方法:from sklearn.ensemble import RandomForestClassifierfrom sklearn import datasetsimport pickle#方法一:python自带的pickle(X,y) = datasets.load_iris(return_X_y=True)rfc = Rando...原创 2019-07-08 11:10:09 · 575 阅读 · 0 评论 -
Mini Batch K-Means算法原理及API解析
思想:Mini Batch K-Means算法是K-Means算法的变种,采用小批量的数据子集减小计算时间,同时仍试图优化目标函数,这里所谓的小批量是指每次训练算法时所随机抽取的数据子集,采用这些随机产生的子集进行训练算法,大大减小了计算时间,与其他算法相比,减少了k-均值的收敛时间,小批量k-均值产生的结果,一般只略差于标准算法。迭代步骤:1:从数据集中随机抽取一些数据形成小批量,把...原创 2019-07-10 09:47:59 · 5062 阅读 · 0 评论 -
支持向量机(SVM)
线性分类器一、线性分类器:首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线)假如说,我们令黑色的点 = -1, 白色的点 = +1,直线f(x) = w.x + b当向量x的维度=2的时候,f(x) 表示二维空间中的一条直线, 当x的维度=3的时候,f(x) 表示3维...原创 2019-07-14 10:11:40 · 2800 阅读 · 0 评论 -
贝叶斯方法的优缺点及其应用场景
优点对待预测样本进行预测,过程简单速度快(想想邮件分类的问题,预测就是分词后进行概率乘积,在log域直接做加法更快)。 对于多分类问题也同样很有效,复杂度也不会有大程度上升。 在分布独立这个假设成立的情况下,贝叶斯分类器效果奇好,会略胜于逻辑回归,同时我们需要的样本量也更少一点。 对于类别类的输入特征变量,效果非常好。对于数值型变量特征,我们是默认它符合正态分布的。缺点对于测试...转载 2019-07-15 11:00:23 · 17705 阅读 · 0 评论 -
贝叶斯相关常用API
高斯贝叶斯:classsklearn.naive_bayes.GaussianNB(priors=None,var_smoothing=1e-09)priors:array-like,shape(n_classes,)类别的先验概率,如果指定则不会根据数据改变var_smoothing:float,optional(default = 1e-9)所有要素的最大方差的部分,...翻译 2019-07-15 10:47:28 · 227 阅读 · 0 评论 -
朴素贝叶斯模型(NAIVE BAYESIAN MODEL)
朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立。也就是说没有哪个属性变量对于决策结果来说占有着较大的比重,也没有哪个属性变量对于决策结果占有着较小的比重。虽然这个简化方式在一定程度上降低了贝叶斯分类算法的分类效果,但是在实际的应用场景中,极大地简化了贝叶斯方法的复杂性。数学基础公式知识总结:先验概率P(A):在不考虑任何情况下,A事件发生...原创 2019-07-15 10:28:53 · 3516 阅读 · 0 评论 -
回归决策树API
回归决策树参数: criterion:string,optional(default =“mse”) 衡量分裂质量的功能。支持的标准是均方误差的“mse”,它等于作为特征选择标准的方差减少,并使用每个终端节点的平均值“friedman_mse”最小化L2损失,其使用弗里德曼的潜在改进得分的均方误差分裂,并且“mae”表示平均绝对误差,其使用每个终端节点的中值来最小化L...原创 2019-07-04 20:00:06 · 364 阅读 · 0 评论 -
K-Means++、K-Means||算法整理
K-Means++思想:解决K-Means算法对初始簇心比较敏感的问题,K-Means++算法和K-Means算法的区别主要在于初始的K个中心点的选择方面,K-Means算法使用随机给定的方式。K-Means++算法采用下列步骤给定K个初始质点:1、从数据集中任选一个节点作为第一个聚类中心2、对数据集中的每个点x,计算x到所有已有聚类中心点的距离和D(X),基于D(X)采用线性概率选...原创 2019-07-10 11:34:55 · 4591 阅读 · 0 评论 -
二分k-means
由于K-Means对于初始簇心比较敏感,解决K-Means算法对初始簇心比较敏感的问题,二分K-Means算法是一种弱化初始质心的一种算法,具体思路步骤如下:1、将所有样本数据作为一个簇放到一个队列中从队列中选择一个簇进行K-means算法划分,划分为两个子簇,并将子簇添加到队列中2、循环迭代第二步操作,直到中止条件达到(聚簇数量、最小平方误差、迭代次数等)队列中的簇就是最终的分类簇集合...原创 2019-07-10 10:56:41 · 767 阅读 · 0 评论