![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
文章平均质量分 92
talle2021
这个作者很懒,什么都没留下…
展开
-
多元统计分析课程论文-聚类效果评价
本文主要探讨了特征合成降维和主成分分析法(PCA)降维在K-Means聚类中的效果评价。通过特征合成和PCA方法进行降维处理,再用K-Means聚类分析进行聚类,并使用轮廓系数对两种降维方法的数据集聚类效果进行评价。结果显示,特征合成降维的数据集的聚类效果优于PCA降维的数据集。尽管PCA降维保留了95.8%的原始信息,但其聚类效果较差,可能是由于数据失去原有结构等原因。低价出课程论文-多元统计分析论文、R语言论文、stata实证分析论文(论文+源代码+数据集)原创 2024-02-18 10:49:32 · 1246 阅读 · 0 评论 -
WSDM顶会 & 爱奇艺 - 基于时间序列和多模型融合的用户留存预测挑战赛
在for循环中不断增加user_pb_group中的date,(例如,在最开始循环时,user_pb_group中某一行数据的date是162,经过7次循环,这行数据的date就会变为169,但这行数据所对应的其他列依然是162那天的数据。 爱奇艺手机端APP,通过深度学习等最新的AI技术,提升用户个性化的产品体验,更好地让用户享受定制化的娱乐服务。预测用户的留存分是个充满挑战的难题:不同用户本身的偏好、活跃度差异很大,另外用户可支配的娱乐时间、热门内容的流行趋势等其他因素,也有很强的周期性特征。原创 2023-09-27 18:34:28 · 833 阅读 · 0 评论 -
XGBoost的参数空间与超参数优化
在调参的时候,首先会考虑所有影响力巨大的参数,当算力足够/优化算法运行较快的时候,可以考虑将大部分时候具有影响力的参数也都加入参数空间。一般来说,只要样本量足够,我们还是愿意尝试subsample以及max_depth,如果算力充足,我们还可以加入obejctive这样或许会有效的参数。需要说明的是,一般不会同时使用三个colsample_by*参数、更不会同时调试三个colsample_by*参数。通常参数colsample_bylevel较为不稳定,不容易把握。原创 2023-08-02 11:07:04 · 2532 阅读 · 2 评论 -
XGBoost的参数
与GBDT不同的是,xgboost并不向着损失函数最小化的方向运行,而是向着令目标函数最小化的方向运行。需要注意的是,损失函数可以针对单个样本进行计算,也可以针对整个算法进行计算,但在XGBoost的定义中,目标函数是针对每一棵树的,而不是针对一个样本或整个算法。对任意树𝑓来说,目标函数有两个组成部分,一部分是任意可微的损失函数,它控制模型的经验风险。从数值上来说,它等于现在树上所有样本上损失函数之和,其中单一样本的损失为l。另一部分是控制模型复杂度的Ω(𝑓),它控制当前树的结构风险。原创 2023-08-01 17:13:06 · 2555 阅读 · 1 评论 -
XGBoost的基础思想与实现
首先,原生代码必须使用XGBoost自定义的数据结构DMatrix,当设置好数据结构后,需要以字典形式设置参数。XGBoost也可以接受像sklearn一样,将所有参数都写在训练所用的类当中,然而由于xgboost的参数列表过长、参数类型过多,直接将所有参数混写在训练模型的类中会显得代码冗长且混乱,因此我们往往会使用字典单独呈现参数。准备好参数列表后,我们将使用xgboost中自带的方法xgb.train或xgb.cv进行训练,训练完毕后,可以使用predict方法对结果进行预测。原创 2023-07-31 22:18:33 · 968 阅读 · 0 评论 -
GBDT的参数空间与超参数优化
在随机森林中,我们总是在意模型复杂度(max_depth)与模型整体学习能力(n_estimators)的平衡,单一弱评估器的复杂度越大,单一弱评估器对模型的整体贡献就越大,因此需要的树数量就越少。在Boosting算法当中,单一弱评估器对整体算法的贡献由学习率参数learning_rate控制,代替了弱评估器复杂度的地位,因此Boosting算法中我们寻找的是learning_rate与n_estimators的平衡。原创 2023-07-27 21:39:02 · 1095 阅读 · 0 评论 -
梯度提升树的参数
作为基于AdaBoost改进的Boosting算法,GBDT的功绩之一是将损失函数从有限的指数损失、MSE等推广到了任意可微函数,因此GBDT的损失函数选择异常丰富,因此我们可以在调参时加入损失函数作为需要调整的参数进行考量。在sklearn中,控制具体损失函数的参数为loss。GBDT中的损失函数因GBDT具体执行的预测任务而存在区别,同时也因标签的分布而存在区别。原创 2023-07-26 20:21:33 · 700 阅读 · 0 评论 -
梯度提升树的基本思想
GBDT的弱评估器输出类型不再与整体集成算法输出类型一致。对于AdaBoost或随机森林算法来说,当集成算法执行的是回归任务时,弱评估器也是回归器,当集成算法执行分类任务时,弱评估器也是分类器。但对于GBDT而言,无论GBDT整体在执行回归/分类/排序任务,弱评估器一定是回归器。GBDT通过sigmoid或softmax函数输出具体的分类结果,但实际弱评估器一定是回归器。GBDT不修改样本权重,而是通过拟合残差来影响后续弱评估器结构原创 2023-07-26 16:24:54 · 214 阅读 · 0 评论 -
AdaBoost的求解流程
boosting算法的基本规则:依据上一个弱评估器的结果,计算损失函数,并使用损失函数自适应地影响下一个弱评估器的构建。集成模型输出的结果,受到整体所有弱评估器的影响。当权重之和为1时,加权平均值一定会小于等于单一数值的最大值(同时大于等于单一数值的最小值),因此加权平均的值域不会超出单一平均数的值域。在AdaBoost回归方法当中,损失函数并没有明显的被“最小化”的过程,而是借助损失函数来自然地调整数据的权重,从而在迭代中不断减小整体损失。原创 2023-07-26 11:25:30 · 197 阅读 · 0 评论 -
集成学习Boosting - AdaBoost
在Boosting集成算法当中,我们逐一建立多个弱评估器(基本是决策树),并且下一个弱评估器的建立方式依赖于上一个弱评估器的评估结果,最终综合多个弱评估器的结果进行输出,因此Boosting算法中的弱评估器之间不仅不是相互独立的、反而是强相关的,同时Boosting算法也不依赖于弱分类器之间的独立性来提升结果,这是Boosting与Bagging的一大差别。早期的Boosting算法的输出一般是最后一个弱评估器的输出,当代Boosting算法的输出都会考虑整个集成模型中全部的弱评估器。原创 2023-07-24 21:54:30 · 528 阅读 · 0 评论 -
超参数优化 - 贝叶斯优化的实现
实现贝叶斯优化的库:bayesian-optimization,hyperopt,optuna。目标函数的值即𝑓(𝑥)的值。贝叶斯优化会计算𝑓(𝑥)在不同𝑥上的观测值,因此𝑓(𝑥)的计算方式需要被明确。在HPO过程中,我们希望能够筛选出令模型泛化能力最大的参数组合,因此𝑓(𝑥)应该是损失函数的交叉验证值或者某种评估指标的交叉验证值。① 目标函数的输入必须是具体的超参数,而不能是整个超参数空间,更不能是数据、算法等超参数以外的元素,、② 超参数的输入值只能是浮点数,不支持整数与字符串。原创 2023-07-23 21:04:55 · 1607 阅读 · 0 评论 -
超参数优化 - 贝叶斯优化基础方法
在贝叶斯优化的数学过程当中,我们主要执行以下几个步骤:① 定义需要估计的𝑓(𝑥)以及𝑥的定义域。②取出有限的n个𝑥上的值,求解出这些𝑥对应的𝑓(𝑥)(求解观测值)。③ 根据有限的观测值,对函数进行估计(该假设被称为贝叶斯优化中的先验知识),得出该估计𝑓*上的目标值(最大值或最小值。④ 定义某种规则,以确定下一个需要计算的观测点。并持续在②~④步骤中进行循环,直到假设分布上的目标值达到我们的标准,或者所有计算资源被用完为止(例如,最多观测m次,或最多允许运行t分钟)。原创 2023-07-22 22:00:52 · 969 阅读 · 0 评论 -
超参数优化 - 对半网格搜索HalvingSearchCV
任意子集的分布都与全数据集D的分布类似这一假设要成立是有条件的,当子集的分布越接近全数据集的分布,同一组参数在子集与全数据集上的表现越有可能一致。根据之前在随机网格搜索中得出的结论,我们知道子集越大、其分布越接近全数据集的分布,但是大子集又会导致更长的训练时间,因此为了整体训练效率,我们不可能无限地增大子集。这就出现了一个矛盾:大子集上的结果更可靠,但大子集计算更缓慢。对半网格搜索算法设计了一个精妙的流程,可以很好的权衡子集的大小与计算效率问题。原创 2023-07-22 21:06:16 · 472 阅读 · 0 评论 -
超参数优化 - 随机网格搜索
决定枚举网格搜索运算速度的因子一共有两个:①参数空间的大小(参数空间越大,需要建模的次数越多);②数据量的大小(数据量越大,每次建模时需要的算力和时间越多)。sklearn中的网格搜索优化方法主要包括两类,其一是调整搜索空间,其二是调整每次训练的数据。对网格搜索而言,如果参数空间中的某一个点指向了损失函数真正的最小值,那枚举网格搜索时一定能够捕捉到该最小值以及对应的参数(相对的,假如参数空间中没有任意一点指向损失函数真正的最小值,那网格搜索就一定无法找到最小值对应的参数组合)。原创 2023-07-21 22:11:22 · 2207 阅读 · 0 评论 -
Bagging方法6大面试热点问题
在实际使用数据进行训练时,我们很难让Bagging中的弱评估器完全相互独立,主要是因为:训练的数据一致和弱评估器构建的规则一致,导致最终建立的弱评估器都大同小异,Bagging的效力无法完整发挥出来。也正因为存在不同的随机的方式,Bagging集成方法下才有了多种不同的算法。对于任意算法而言,方差与偏差往往不可兼得,这也很容易理解——想要在当前数据集上获得低偏差,必然意味着需要重点学习当前数据集上的规律,就不可避免地会忽略未知数据集上的规律,因此在不同数据集上进行测试时,模型结果的方差往往很大。原创 2023-07-21 00:02:15 · 658 阅读 · 0 评论 -
增量学习:随机森林处理巨量数据
增量学习是机器学习中非常常见的方法,在有监督和无监督学习当中都普遍存在。增量学习允许算法不断接入新数据来拓展当前的模型,即允许巨量数据被分成若干个子集,分别输入模型进行训练。通常来说,当一个模型经过一次训练之后,如果再使用新数据对模型进行训练,原始数据训练出的模型会被替代掉。在增量学习当中,树没有发生变化,已经训练过的结果会被保留。对于随机森林这样的Bagging模型来说,这意味着之前的数据训练出的树会被保留,新数据会训练出新的树,新旧树互不影响。原创 2023-07-20 13:00:12 · 824 阅读 · 0 评论 -
集成算法的参数空间与网格优化
在超参数优化还未盛行的时候,随机森林的调参是基于方差-偏差理论(variance-bias trade-off)和学习曲线完成的,而现在可以依赖于网格搜索来完成自动优化。在对任意算法进行网格搜索时,需要明确两个基本事实:一是参数对算法结果的影响力大小,二是用于进行搜索的参数空间。网格搜索之后的模型过拟合程度减轻,且在训练集与测试集上的结果都有提高,可以说从根本上提升了模型的基础能力。原创 2023-07-19 20:30:04 · 1158 阅读 · 0 评论 -
集成学习Bagging——随机森林模型
随机森林是机器学习领域最常用的算法之一,其算法构筑过程非常简单:从提供的数据中随机抽样出不同的子集,用于建立多棵不同的决策树,并按照Bagging的规则对单棵决策树的结果进行集成(回归则平均,分类则少数服从多数)。因此在随机森林回归器的参数当中,有数个关于数据随机抽样的参数。决策树的可以完美学习训练集上的内容,达到RMSE=0的程度。原创 2023-07-19 00:00:45 · 1407 阅读 · 0 评论 -
探索贝叶斯-多项式/伯努力/补集朴素贝叶斯
但由于伯努利朴素贝叶斯是处理二项分布的,所以它更加在意的是“存在与否”,而不是“出现多少次”这样的次数或频率,这就是伯努利贝叶斯与多项式贝叶斯的根本性不同。举个例子,比如,一个特征矩阵表示投掷硬币的结果,则得到正面的概率为P(X=正面|Y) = 0.5,反面的概率为P(X=反面|Y) = 0.5,只有这两种可能,并且两种结果互不干涉,两个随机事件的概率加和为1,这就是二项分布。多项式实验中的实验结果都很具体,它所涉及的特征往往是次数,频率,计数,出现与否这样的概念,这些概念都是离散的正整数,因此,原创 2023-03-02 21:12:18 · 820 阅读 · 0 评论 -
朴素贝叶斯及概率类模型评估指标
class sklearn.naive_bayes.GaussianNB(priors=None,var_smoothing=1e-09) 高斯朴素贝叶斯,通过假设是服从高斯分布(也就是正态分布)来估计每个特征每个类别的条件概率。对于每个特征下的取值,高斯朴素贝叶斯有如下公式:对于任意一个Y的取值,贝叶斯都以求解最大化的为目标,这样才能够比较在不同标签下样本究竟更靠近哪一个取值。以最大化为目标,高斯朴素贝叶斯会为我们求解公式中的,求解出参数后,带入一个的值,就能够得到一个的概率取值。原创 2023-02-24 23:40:34 · 1347 阅读 · 0 评论 -
朴素贝叶斯理论
朴素贝叶斯是一个不建模的算法。我们认为,训练集和测试集都来自于同一个不可获得的大样本下,并且这个大样本下的各个属性所表现出来的规律应当是一致的,因此训练集上计算出来的各种概率,可以直接放到测试集上来使用,即便不建模,也能完成分类。在现实中,要求解分子也会有各种各样的问题,比如说,测试集中出现的某种概率组合是训练集中从未出现的状况,这种时候就会出现概率为0的情况,贝叶斯概率的分子就为0。这个式子证明,在Y=1的条件下,X的多种取值被同时取到的概率,就等于Y=1的条件下,X的多种取值被分别取到的概率相乘。原创 2023-02-21 21:14:32 · 192 阅读 · 0 评论 -
多元线性回归-Lasso
和岭回归的交叉验证相似,除了进行交叉验证之外,LassoCV也会单独建立模型,它会先找出最佳的正则化参数,然后在这个参数下按照模型评估指标进行建模,需要注意的是,LassoCV的模型评估指标选用的是均方误差,而岭回归的模型评估指标是可以自己设定的,并且默认是。的大小,对标签贡献更少的特征的系数会更小,也会更容易被压缩。可见,比起岭回归,Lasso所带的L1正则项对于系数的惩罚要重很多,并且它会将系数压缩至0,因此可以被用来作特征选择,也因此,我们往往让Lasso的正则化系数。在很小的空间中变动。原创 2022-11-28 13:14:27 · 7572 阅读 · 1 评论 -
多元线性回归-岭回归
相关性是衡量两个或多个变量一起波动的程度的指标,它可以是正的,负的或者0,当我们说变量之间具有相关性,通常是指线性相关性,线性相关一般由皮尔逊相关系数进行衡量,非线性相关可以使用斯皮尔曼相关系数或者互信息法进行衡量。可以发现,比起加利福尼亚房屋价值数据集,波士顿 房价数据集的方差降低明显,偏差也明显降低,可见使用岭回归还是起到了一定的作用,模型的泛化能力是有可能会上升的。矩阵B中第一行和第三行的关系不太一样,他们之间非常接近于“精确相关关系”,但又不是完全相关,一行接近0,另一行接近0,这种关系被称为“原创 2022-11-20 20:11:52 · 3105 阅读 · 0 评论 -
多元线性回归LinearRegression
线性回归是机器学习中最简单的回归算法,多元线性回归指的就是一个样本有多个特征的线性回归问题。对于一个有个特征的样本而言,它的回归结果如下方程:在这个表达式中,被统称为模型的参数,其中被称为截距(intercept),~被称为回归系数(regression coefficient),有时也用表示。其中是目标变量,~是样本上的不同特征。如果考虑有m个样本,是包含了m个全部样本的回归结果列向量,我们可以使用矩阵来表示这个方程,其中可以被看做是一个结构为(1,n)的列矩阵,原创 2022-11-17 23:45:23 · 6794 阅读 · 0 评论 -
SVC模型评估指标与ROC曲线
样本不均衡是只在一组数据集中,标签的其中一类占有很大的比例,但我们有着捕捉特定的分类需求的状况。比如,我们现在要对潜在犯罪者和普通人分类,潜在犯罪者占总人口的比例是相当低的,也许只有2%左右,98%的人都是普通人,而我们的目标是找出潜在犯罪者。这样的标签分布会带来许多问题:因为对于模型而言,样本量越大的标签可以学习的信息越多,算法就会更加依赖于从多数类中学到的信息来判断。如果我们希望捕获少数类,模型就会失败,原创 2022-10-29 23:49:41 · 3861 阅读 · 0 评论 -
探索支持向量机SVM核函数的性质
对于软间隔的数据来说,我们的决策边界就不是单纯地寻求最大边际了,因为对于软间隔的数据来说,边际越大被分错的样本也就会越多,因此我们需要找出一个”最大边际。虽然线性核函数的效果是最好的,但它是没有核函数相关参数可以调整的,rbf和多项式却还有着可以调整的相关参数。量纲统一之后,可以观察到,所有核函数的运算时间都大大地减少了,尤其是对于线性核来说,而多项式核函数居然变成了计算最快的。当两组数据几乎是完全线性可分的,但决策边界在训练集上存在较小的训练误差,这两种数据就被称为是存在”原创 2022-10-27 16:45:35 · 1085 阅读 · 2 评论 -
支持向量机求解过程的可视化及其核函数kernel 【Tsai Tsai】
比如上面的数据分布,我们很容易就可以在方块和圆的中间画出一条线,并让所有落在直线左边的样本被分类为方块,在直线右边的样本被分类为圆。可以观察到,线性核函数和多项式核函数在非线性数据上表现会浮动,如果数据相对线性可分,则表现不错,如果是像环形数据那样彻底不可分的,则表现糟糕。支持向量机的分类方法,是在这组分布中找出一个超平面作为决策边界,使模型在数据上的分类误差尽量接近于小,尤其是在未知数据集上的分类误差(泛化误差)尽量小。在几何中,超平面是一个空间的子空间,它是维度比所在空间小一维的空间。原创 2022-10-26 00:21:08 · 1225 阅读 · 0 评论 -
KMeans做矢量量化
K-Means聚类最重要的应用之一是非结构数据(图像,声音)上的矢量化(VQ)。非结构化数据往往占用大量的储存空间,文件本身也会比较大,运算非常缓慢,我们希望能够在保证数据质量的前提下,尽量地缩小非结构化数据的大小,或者简化非结构化数据的结构。矢量量化就可以帮助我们实现这个目的。原创 2022-10-20 20:17:25 · 837 阅读 · 0 评论 -
聚类初始质心 & 减少聚类迭代次数 & 函数K_means
初始质心放置的位置不同,聚类的结果很可能也会不一样,一个好的质心选择可以让K-Means避免更多的计算,让算法收敛稳定且更快。使用“随机”的方法在样本点中抽取k个样本作为初始质心,这种方法显然不符合“收敛稳定且快”的需求,为此,我们可以使用random_state参数来控制每次生成初始质心都在相同位置,一个random_state对应一个质心随机初始化的随机种子。为了优化选择初始质心的方法,在sklearn中,我们使用参数init=‘k-means++’来选择使用k-means++作为质心初始化的方案。原创 2022-10-17 14:27:06 · 1305 阅读 · 0 评论 -
聚类算法及其模型评估指标【Tsai Tsai】
KMeans作为聚类算法的典型代表,KMeans算法将一组N个样本的特征矩阵X划分为K个无交集的簇,直观上来看是一组一组聚集在一起的数据,在一个簇中的数据就认为是同一类。当我们找到一个质心,在每次迭代中被分配到这个质心上的样本都是一致的,即每次新生成的簇都是一致的,所有的样本点都不会再从一个簇转移到另一个簇,质心就不会变化了。实际上,在质心不断变化不断迭代的过程中,总体平方和是越来越小的。在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点的横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值。原创 2022-10-16 00:42:48 · 2245 阅读 · 0 评论 -
PCA实现784个特征的降维(菜菜)
在使用PCA后,原本784列的特征被我们缩减到22列之后,用KNN跑出了良好的效果,后续也可在使用PCA的基础上调整参数或改模型等方法提高模型的效果。由图可以看出,当维度去22时,模型表现效果达到最佳。当KNN参数值取2时,模型表现效果超过96%原创 2022-10-07 00:08:55 · 435 阅读 · 0 评论 -
PCA人脸识别降维+PCA实现噪音过滤--from 菜菜机器学习
PCA与特征选择的区别在于特征选择后的特征矩阵是可读的,而PCA降维之后的新特征向量是不可读的,PCA是将已存在的特征进行压缩,降维完毕后的特征不是原本特征矩阵中的任何一个特征,而是通过某些方式组合起来的新特征。我们无法判断新特征向量的特征是从原数据中的什么特征组合而来,新特征虽然带有原始数据的信息,却已经不是原数据上代表着的含义。在矩阵分解时,PCA在原有特征的基础上,找出能够让信息尽量聚集的新特征向量。原创 2022-10-06 15:27:44 · 1123 阅读 · 0 评论 -
Sklearn中的降维算法PCA和SVD --from菜菜机器学习
在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响。同时,在高维数据中,必然有一些特征是不带有有效的信息的(比如噪音),或者有一些特征带有的信息和其他一些特征是重复的(比如一些特征可能会线性相关)。我们希望能够找出一种办法来帮助我们衡量特征上所带的信息量,让我们在降维的过程中,能够即减少特征的数量,又保留大部分有效信息——将那些带有重复信息的特征合并,并删除那些带无效信息的特征等等——原创 2022-10-06 11:01:01 · 549 阅读 · 0 评论 -
特征选择-嵌入法、包装法 —— from 菜菜机器学习
包装法也是一个特征选择和算法训练同时进行的方法,与嵌入法类似,不同的是,包装法并不是自己输入某个评估指标或统计量的阈值。包装法在初始特征平台上训练评估器,并且通过coef_ 属性或feature_importances_属性获得每个特征的重要性。然后从当前的一组特征中修剪掉最不重要的特征,在修剪的集合上递归重复该过程,直到最终到达所需数量的要选择的特征。原创 2022-10-01 23:54:16 · 1393 阅读 · 0 评论 -
特征选择过滤法-方差过滤、F检验、互信息法
在sklearn中,决策树和随机森林都是随机选择特征进行分枝,但决策树在建模过程中随 机抽取的特征数目却远远超过随机森林当中每棵树随机抽取的特征数目(比如对于这个 780维的数据,随机森林每棵树只会抽取10-20个特征,而决策树可能会抽取200~400个 特征),因此,过滤法对随机森林无用,却对决策树有用。所以无论接下来的特征工程要做什么,通过这条曲线,可以观察到,随着k值的不断增加,模型的表现不断上升,这说明,k越大越好,数据中所有的特征都是与特征相关的。原创 2022-09-27 21:20:22 · 5507 阅读 · 0 评论