01 2021 档案
摘要:https://scikit-learn.org/stable/search.html?q=distance
阅读全文
摘要:谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也不复杂。在处理实际的聚类问题时,个人认为谱聚类是应该首先考虑的几种算法之一。下面我们就对谱聚类的算法
阅读全文
摘要:1 引言 2014年6月,Alex Rodriguez和Alessandro Laio在ScienceScience上发表了一篇名为《Clustering by fast search and find of density peaks》的文章,提供了一种简洁而优美的聚类算法,是一种基于密度的聚类方
阅读全文
摘要:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html?highlight=dbsc#sklearn.cluster.DBSCAN
阅读全文
摘要:一、前言 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种基于密度的空间聚类算法。 该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密
阅读全文
摘要:BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)天生就是为处理超大规模(至少要让你的内存容不下)的数据集而设计的,它可以在任何给定的内存下运行。关于BIRCH的更多特点先不介绍,我先讲一下算法的完整实现细节,对算法
阅读全文
摘要:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html?highlight=agg#sklearn.cluster.AgglomerativeClustering h
阅读全文
摘要:不管是GMM,还是k-means,都面临一个问题,就是k的个数如何选取?比如在bag-of-words模型中,用k-means训练码书,那么应该选取多少个码字呢?为了不在这个参数的选取上花费太多时间,可以考虑层次聚类。 假设有N个待聚类的样本,对于层次聚类来说,基本步骤就是: 1、(初始化)把每个样
阅读全文
摘要:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html?highlight=kmeans#sklearn.cluster.KMeans https://scikit-learn.org/stable/
阅读全文
摘要:K-means算法简述 K-means算法,也称为K-平均或者K-均值,一般作为掌握聚类算法的第一个算法。 这里的K为常数,需事先设定,通俗地说该算法是将没有标注的 M 个样本通过迭代的方式聚集成K个簇。 在对样本进行聚集的过程往往是以样本之间的距离作为指标来划分。 简单Demo说明如上图以 K 为
阅读全文
摘要:由于 K-means 算法的分类结果会受到初始点的选取而有所区别,因此有提出这种算法的改进: K-means++ 。 算法步骤 其实这个算法也只是对初始点的选择有改进而已,其他步骤都一样。初始质心选取的基本思路就是,初始的聚类中心之间的相互距离要尽可能的远。 算法描述如下: 步骤一:随机选取一个样本
阅读全文
摘要:1.K-Means(K均值)聚类 算法步骤:(1) 首先我们选择一些类/组,并随机初始化它们各自的中心点。中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(即中心点的数量)。(2) 计算每个数据点到中心点的距离,数据点距离哪个中心点最近就划分到哪一类中。(3) 计算每一类中中心点作
阅读全文
摘要:概述 CatBoost是俄罗斯的搜索巨头Yandex在2017年开源的机器学习库,是Boosting族算法的一种。CatBoost和XGBoost、LightGBM并称为GBDT的三大主流神器,都是在GBDT算法框架下的一种改进实现。XGBoost被广泛的应用于工业界,LightGBM有效的提升了G
阅读全文
摘要:LigthGBM是boosting集合模型中的新进成员,由微软提供,它和XGBoost一样是对GBDT的高效实现,原理上它和GBDT及XGBoost类似,都采用损失函数的负梯度作为当前决策树的残差近似值,去拟合新的决策树。 LightGBM在很多方面会比XGBoost表现的更为优秀。它有以下优势:
阅读全文
摘要:前言 XGBoost是boosting算法的其中一种。Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器。XGBoost是一种提升树模型,它是将许多树模型集成在一起,形成一个很强的分类器,所用到的树模型则是CART回归树模型。 CART CART回归树是假设树的结构为二叉树,通过不
阅读全文
摘要:Ensemble learning 中文名叫做集成学习,它并不是一个单独的机器学习算法,而是将很多的机器学习算法结合在一起,我们把组成集成学习的算法叫做“个体学习器”。在集成学习器当中,个体学习器都相同,那么这些个体学习器可以叫做“基学习器”。 个体学习器组合在一起形成的集成学习,常常能够使得泛化性
阅读全文
摘要:综述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算
阅读全文
摘要:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.BaggingClassifier.html?highlight=bagging#sklearn.ensemble.BaggingClassifier https:/
阅读全文
摘要:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html?highlight=adaboost#sklearn.ensemble.AdaBoostClassifier http
阅读全文
摘要:1. 概述 1.1 集成学习 目前存在各种各样的机器学习算法,例如SVM、决策树、感知机等等。但是实际应用中,或者说在打比赛时,成绩较好的队伍几乎都用了集成学习(ensemble learning)的方法。集成学习的思想,简单来讲,就是“三个臭皮匠顶个诸葛亮”。集成学习通过结合多个学习器(例如同种算
阅读全文
摘要:概述 Boosting基本思想: 通过改变训练数据的概率分布(训练数据的权值分布),学习多个弱分类器,并将它们线性组合,构成强分类器。 Boosting算法要求基学习器能对特定的数据分布进行学习,这可通过“重赋权法”(re-weighting)实施。对无法接受带权样本的基学习算法,则可通过“重采样法
阅读全文
摘要:class sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True) 参数: missing_values: integer or “NaN”, optiona
阅读全文
摘要:特征重要度 作为单个的决策树模型,在模型建立时实际上是寻找到某个特征合适的分割点。这个信息可以作为衡量所有特征重要性的一个指标。 基本思路如下:如果一个特征被选为分割点的次数越多,那么这个特征的重要性就越强。这个理念可以被推广到集成算法中,只要将每棵树的特征重要性进行简单的平均即可。 分别根据特征1
阅读全文
摘要:https://blog.csdn.net/yangyin007/article/details/82385967 1 什么是随机森林? 作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的
阅读全文
摘要:https://scikit-learn.org/stable/modules/classes.html
阅读全文
摘要:一、集成学习法 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某
阅读全文
摘要:1.安装Graphviz 在graphviz的官网(网址:http://www.graphviz.org/Download_windows.php),选择Windows对应的mis文件进行下载。如graphviz-2.3.8.msi: 下载之后,进行安装。找到安装路径,如:C:\Program Fi
阅读全文
摘要:前面的博客里有提到决策树,我们也了解了决策树的构建过程,如果可以可视化决策树,把决策树打印出来,对我们理解决策树的构建会有很大的帮助。这篇文章中,我们就来看下如何可视化输出一棵决策树。 一、安装相应的插件 我们需要安装Graphviz和pygraphviz,教程,这个教程里有详细的安装过程,这里就不
阅读全文
摘要:重要内容简述: 从ID3到C4.5再到CART 在分类树问题中(注意ID3和C4.5只能解决分类问题,CART是既可以解决分类问题,也可以解决回归问题):最主要的是要进行分类的最优特征和最优切分点的选择,为了这两个量,算法不断的计算每一层的最优特征和对应下的最优切分点 随机森林 属于集成学习的范畴,
阅读全文
摘要:剪枝(pruning)的目的是为了避免决策树模型的过拟合。因为决策树算法在学习的过程中为了尽可能的正确的分类训练样本,不停地对结点进行划分,因此这会导致整棵树的分支过多,也就导致了过拟合。决策树的剪枝策略最基本的有两种:预剪枝(pre-pruning)和后剪枝(post-pruning): 预剪枝(
阅读全文
摘要:输出是连续变量的是回归树,输出是离散变量的是分类树。 CART决策树是一个二叉树。 回归树: 输入空间划分为M个单元 ,单元 对应输出 , 是其对应的输入空间。 输出 取 上所有输出的均值: 下面,看输入空间的划分方法。 假设最优切分变量 ,最优切分点 ,输入空间被划分为两部分: 它们的输出是各自输
阅读全文
摘要:from sklearn.feature_selection import SelectKBest http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.SelectKBest.html#sklearn.
阅读全文
摘要:Categorical特征常被称为离散特征、分类特征,数据类型通常是object类型,而我们的机器学习模型通常只能处理数值数据,所以需要对Categorical数据转换成Numeric特征。 Categorical特征又有两类,我们需要理解它们的具体含义并进行对应的转换。 Ordinal 类型:这种
阅读全文
摘要:1. pd.get_dummies() #简单&粗暴 pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=N
阅读全文
摘要:https://blog.csdn.net/choven_meng/article/details/82878018 一、决策树模型与学习 1、决策树模型 2、决策树学习 二、特征选择 1、信息增益 2、信息增益率 三、决策树的生成 1、ID3算法 2、C4.5算法 3、CART算法 四、决策树停止
阅读全文
摘要:一、基尼指数的概念 基尼指数(Gini不纯度)表示在样本集合中一个随机选中的样本被分错的概率。注意:Gini指数越小表示集合中被选中的样本被参错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。当集合中所有样本为一个类时,基尼指数为0. 二、基尼系数的计算公式 基尼指数的计算公式为: 三、计算示
阅读全文
摘要:基尼指数(Gini不纯度)表示在样本集合中一个随机选中的样本被分错的概率。 注意:Gini指数越小表示集合中被选中的样本被参错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。当集合中所有样本为一个类时,基尼指数为0. 基尼指数的计算方法为:其中,pk表示样本属于第k个类别的概率 举例:根据天气
阅读全文
摘要:https://blog.csdn.net/am290333566/article/details/81187124 机器学习中,绕不开的一个概念就是熵 (Entropy),信息熵。信息熵常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据。在决策树的
阅读全文
摘要:KD树是提高K近邻法计算效率的一种手段,类似二叉查找树。不过二叉查找树中的数据是一维的,而K近邻的训练样本往往是多维的。所以,在建树的过程中,需要进行特征维度的选择。合理的方式是,每轮递归选择方差最大的特征S作为区分标准,以S的中位数作为根节点。这样能保证寻找最近邻的快速性,构建出均衡的二叉树。 决
阅读全文
摘要:一、逻辑回归 二、判定边界 当将训练集的样本以其各个特征为坐标轴在图中进行绘制时,通常可以找到某一个 判定边界 去将样本点进行分类。例如: 线性判定边界: 非线性判定边界: 三、二分类和sigmoid函数 sigmoid函数图像如下: 四、损失函数 1. 定义 2. 极大似然估计 上面是一种求损失函
阅读全文
摘要:K近邻(K-nearst neighbors, KNN)是一种基本的机器学习算法,所谓,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。比如:判断一个人的人品,只需要观察与他来往最密切的几个人的人品好坏就可以得出,即“近朱者赤,近墨者黑”;KNN算法既可以应用于分类应用中,
阅读全文
摘要:网格搜索算法和K折交叉验证法是机器学习入门的时候遇到的重要的概念。 网格搜索算法是一种通过遍历给定的参数组合来优化模型表现的方法。 以决策树为例,当我们确定了要使用决策树算法的时候,为了能够更好地拟合和预测,我们需要调整它的参数。在决策树算法中,我们通常选择的参数是决策树的最大深度。 于是我们会给出
阅读全文
摘要:一. 交叉验证原理讲解 1. 设置验证集的原因 在机器学习建模过程中,将数据分为训练集和测试集。测试集合训练集是完全分开的两个数据集,完全不参与训练,只是用于模型最终确定后,来测试模型的效果。而训练集又要分出一部分数据用来验证模型的训练效果,即验证集。验证集在每次训练集训练结束后,对模型的效果进行初
阅读全文
摘要:对于二分类问题,precision,recall,auc,f1_score的计算原理都比较熟悉,但是多分类问题的计算还是有一点小小的区别,在使用sklearn.metrics的时候需要注意一下; 对于sklearn.metrics下的roc_auc_score, precision_score, r
阅读全文
摘要:GridSearchCV 简介: GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数。 但是这个方法适合于小数据集,一旦数据的量级上去了,很难得出结果。这个时候就是需要动脑筋了。数据量比较大的时候可以使用一个快速调优的方法——坐标下降。它其实是一种贪心算
阅读全文
摘要:面试的时候经常被问的一个问题是 AUC和F1 score有什么区别。笔者看了很多博文,感觉相当一部分在分析混淆矩阵和auc、f1的定义上花了太多笔墨,但对于两者的区别和联系,有种到了门前就差临门一脚的感觉。因此笔者去stack overflow上找了很多回答,感觉收获很多,在此简明扼要的写一下收获。
阅读全文
摘要:1. 简介 逻辑回归和Softmax回归是两个基础的分类模型,虽然听名字以为是回归模型,但实际我觉得他们也有一定的关系。逻辑回归,Softmax回归以及线性回归都是基于线性模型,它们固定的非线性的基函数(basis function) 的线性组合,形式如下: 2.逻辑回归谈谈逻辑回归,Softmax
阅读全文
摘要:现在要开始讲到分布了,当然首先要谈的肯定是二项分布,在此之前,让我们先认识一下我们的前辈。 瑞士数学家雅克·伯努利(Jacques Bernoulli,1654~1705)首次研究独立重复试验(每次成功率为p)。在他去世后的第8年(1713年),他侄子尼克拉斯出版了伯努利的著作《推测术》。在书中,伯
阅读全文
摘要:一、逻辑回归基本概念 1. 什么是逻辑回归 逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。 Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,
阅读全文
摘要:Pipeline可以将许多算法模型串联起来,比如将特征提取、归一化、分类组织在一起形成一个典型的机器学习问题工作流。主要带来两点好处: 直接调用fit和predict方法来对pipeline中的所有算法模型进行训练和预测。 可以结合grid search对参数进行选择。 在下面的例子中,我们使用决策
阅读全文
摘要:Series.apply Series.apply(func, convert_dtype=True, args=(), **kwds) 对序列的每一个元素作用传入的函数 参数 参数描述 func : function 所要应用的函数 convert_dtype : boolean, default
阅读全文
摘要:标准化(standardization): 数据标准化是将数据按比例缩放,使其落入到一个小的区间内,标准化后的数据可正可负,但是一般绝对值不会太大,一般是z-score标准化方法:减去期望后除以标准差。 特点: 对不同特征维度的伸缩变换的目的是使其不同度量之间的特征具有可比性,同时不改变原始数据的分
阅读全文
摘要:很多人认为标准化理解为归一化,然而是有区别的,下面告诉你不同之处: (一)归一化 特点 对不同特征维度的伸缩变换的目的是使各个特征维度对目标函数的影响权重是一致的,即使得那些扁平分布的数据伸缩变换成类圆形。这也就改变了原始数据的一个分布。 好处 1 提高迭代求解的收敛速度 2 提高迭代求解的精度 (
阅读全文
摘要:为什么要进行归一化? 机器学习模型被互联网行业广泛应用,一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化,为什么要归一化呢?维基百科给出的解释: 归一化后加快了梯度下降求最优解的速度; 如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则
阅读全文
摘要:倒数代表方向,步长代表行动,小心翼翼,如履薄冰,方可成巅峰。
阅读全文
摘要:梯度下降(最速下降法) 梯度下降法是一个最优化算法,通常也称为最速下降法。最速下降法是求解无约束优化问题最简单和最古老的方法之一,虽然现在已经不具有实用性,但是许多有效算法都是以它为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。可以用于
阅读全文
摘要:1.过拟合 当样本特征很多,样本数相对较少时,模型容易陷入过拟合。为了缓解过拟合问题,有两种方法: 方法一:减少特征数量(人工选择重要特征来保留,会丢弃部分信息)。 方法二:正则化(减少特征参数的数量级)。 2.正则化(Regularization) 正则化是结构风险(损失函数+正则化项)最小化策略
阅读全文
摘要:经典机器学习算法,他们最本质的区别是分类思想(预测y的表达式)不同,有的是基于概率模型,有的是动态规划,表象的区别就是最后的损失函数不同。 损失函数分为经验风险损失函数和结构风险损失函数,经验风险损失函数反映的是预测结果和实际结果之间的差别,结构风险损失函数则是经验风险损失函数加上正则项(L0、L1
阅读全文
摘要:首先理解范数的概念 L1、L2这种在机器学习方面叫做正则化,统计学领域的人喊她惩罚项,数学界会喊她范数。 范数(norm)是数学中的一种基本概念。在泛函分析中,它定义在赋范线性空间中,并满足一定的条件,即①非负性;②齐次性;③三角不等式。它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小
阅读全文
摘要:在使用机器学习算法过程中,针对不同的问题需要不用的模型评估标准,这里统一汇总。主要以两大类分类与回归分别阐述。 一、分类问题 1、混淆矩阵 混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。 真正(True Pos
阅读全文
摘要:多项式回归案例: 结论:不是阶数越多越好,容易过拟合 使用sklearn.preprocessing.PolynomialFeatures来进行特征的构造。 它是使用多项式的方法来进行的,如果有a,b两个特征,那么它的2次多项式为(1,a,b,a^2,ab, b^2)。 PolynomialFeat
阅读全文