机器学习
文章平均质量分 77
今天也要加油丫
学习记录
展开
-
随机森林回归参数详解
无论对数据进行怎样的抽样,我们能控制的都只是建立单棵树时的数据而已,在总数据量有限的情况下,单棵树使用的数据量越大,每一颗树使用的数据就会越相似。每次采样一个样本,并在抽取下一个样本之前将该样本放回原始训练集,也就是说下次采样时这个样本依然可能被采集到,这样采集max_samples次,最终得到max_samples个样本组成的自助集。如在1,2,3,4,5中抽三个数,每次抽样结果肯定是不一样的,第一次可能是123,第二次可能是142,如果我们设置了随机数种子,那么我们每次抽的都是一样的。原创 2024-01-25 16:49:28 · 1172 阅读 · 0 评论 -
Bagging方法的基本思想
在Bagging集成当中,我们并行建立多个弱评估器(通常是决策树,也可以是其他非线性算法),并综合多个弱评估器的结果进行输出。当集成算法目标是回归任务时,集成算法的输出结果是弱评估器输出的结果的平均值,当集成算法的目标是分类任务时,集成算法的输出结果是弱评估器输出的结果少数服从多数。2.用np.argmax返回最大值的索引,这里十分巧妙的是,索引的顺序是类别。如果评估器的数量是偶数,而少数和多数刚好一致怎么办?1.用np.bincount计算每个数值出现的次数。如果是二分类,涉及到有一些负数类别的。原创 2024-01-25 09:45:23 · 420 阅读 · 0 评论 -
一文秒懂离差-变差-方差-标准差-误差-残差-偏差
eg: 假设我们有一组身高数据,如:160cm, 165cm, 170cm, 175cm, 180cm。我们计算这组数据的平均值为170cm。然后我们可以计算每个数据点与平均值之间的离差,比如第一个数据点的离差为-10cm(160-170),第二个数据点的离差为-5cm(165-170),以此类推。eg:上面的变差应该为=160−1702160−1702160−1702160−1702160−1702。原创 2024-01-24 14:46:28 · 2385 阅读 · 0 评论 -
L1和L2损失
因此,在不同的情况下,我们可以根据具体的需求选择使用L1损失还是L2损失。L2损失 = ((10-12)^2 + (20-18)^2 + (30-28)^2 + (40-41)^2) / 4 = (4 + 4 + 4 + 1) / 4 = 3.25。L1损失 = (|10-12| + |20-18| + |30-28| + |40-41|) / 4 = (2 + 2 + 2 + 1) / 4 = 1.75。相比于L1损失,它对异常值的影响较小,因为平方会放大较大的误差,使得模型对异常值更加鲁棒。原创 2024-01-24 11:51:14 · 441 阅读 · 1 评论 -
ID3, C4.5和CART的异同点
ID3, C4.5和CART都是决策树算法,它们在数据挖掘和机器学习中被广泛应用。总的来说,这三种算法都有各自的特点和适用范围,选择哪种算法取决于具体的问题和数据特征。原创 2024-01-24 09:44:59 · 510 阅读 · 0 评论 -
C4.5决策树的基本建模流程
(1)它引入了信息值(information value)的概念来修正信息熵的计算结果,以抑制ID3更偏向于选择具有更多分类水平的列进行展开的情况,从而间接地抑制模型过拟合的倾向;即在连续变量中寻找相邻的取值的中间点作为备选切分点,通过计算切分后的GR值来挑选最终数据集划分方式。C4.5中信息值(以下简称IV值)是一个用于衡量数据集在划分时分支个数的指标,如果划分时分支越多,IV值就越高。(2)C4.5新增了对连续变量的处理方法,采用类似于CART树的方法来寻找相邻取值的中间值作为切分点;原创 2024-01-24 09:32:54 · 1236 阅读 · 0 评论 -
ID3决策树的建模流程
此外,ID3更倾向于选择取值较多的分类变量展开,容易导致过拟合,且缺乏防止过拟合的措施,而这些缺陷正是C4.5算法改进的方向。(2) 由于ID3每次展开一列,建模过程中对列的消耗很快,树的最大深度取决于数据集中的特征个数,而CART树则具有更多备选规则,能够提取更精细的规则。下面以一个简单的数据集,包括了天气、温度、湿度三个特征,以及是否出门的目标变量,来演示ID3决策树的建模流程。基于天气判断是否出行的信息增益为gain(天气) = 0.97-0.4= 0.5。以天气的不同取值为划分规则。原创 2024-01-23 15:33:35 · 1364 阅读 · 0 评论 -
图解CART分类树评估器的参数
图解CART分类树评估器的参数原创 2024-01-23 14:05:40 · 375 阅读 · 0 评论 -
随机森林中每个树模型分裂时的特征选取方式
这种方式可以减少模型的方差,使得模型更加鲁棒,防止模型出现过拟合的现象。同时,由于每棵树都是使用不同的特征子集进行分裂的,因此每棵树的结构都不同,可以提高模型的多样性,进一步提高模型的泛化能力。至于为什么Bagging可以降低方差,可以通过数学推导来论证,这里我就不推导了,因为数学论证挺复杂的,这里就以我个人理解来回答为什么Bagging降低的是方差Boosting降低的是偏差,需要注意的是,每次分裂时使用的特征子集大小是可以调整的,可以根据数据集的大小和特征的数量来选择合适的值。原创 2024-01-22 14:58:06 · 658 阅读 · 0 评论 -
决策树的基本构建流程
叶子节点纯度越高越好,就像我们分红豆和黄豆一样,我们当然是想把红豆和黄豆完全分开。ID3和C4.5 Gain = Entropy(父节点)- Entropy(子节点)则我们可以以age是否小于等于9.5为划分规则,将数据集一分为二。CART Gain = Gini(父节点)- Gini(子节点)介绍完了有效的分类规则,我们再来看看第二个重点:树的形式。这里有10个取值,所以有9种划分方式将数据集一分为二。假如我们有10条样本,6条0类样本,4条1类样本。假设我们以10和9的中间点为划分方式。原创 2024-01-22 11:54:54 · 1360 阅读 · 0 评论 -
损失函数与模型评估指标、目标函数的区别
例如,当我们在训练带有正则化的模型时,目标函数可能包括两部分:损失函数和正则化项。损失函数(Loss Function)是用来衡量模型预测结果和真实结果之间差异的一种函数,通常用于监督学习任务中。通常情况下,目标函数就是损失函数,因为我们的目标是最小化模型的预测误差。我们可以用SSE(残差平方和)来评估模型A和B哪个输出结果更好,当然对于回归问题,也可以选取MSE(均方误差)和RMSE(均方根误差)来作为评估指标。SSE值越小,模型效果越好,根据SSE值,我们可以判断模型B可能更适合一些。原创 2024-01-19 17:37:58 · 853 阅读 · 0 评论 -
基于Optuna实现多种贝叶斯优化
为了满足机器学习开发者的需求,Optuna提供了强大而稳定的API,因此其代码简洁、模块化程度高,是我们介绍的库中最为精简的之一。Optuna库虽然是当今最为成熟的HPO方法之一,但当参数空间较小时,Optuna库在迭代中容易出现抽样BUG,即Optuna会持续抽到曾经被抽到过的参数组合,并且持续报警告说"算法已在这个参数组合上检验过目标函数了"。在实际迭代过程中,一旦出现这个Bug,那当下的迭代就无用了,因为已经检验过的观测值不会对优化有任何的帮助,因此对损失的优化将会停止。1 定义目标函数与参数空间。原创 2024-01-19 10:53:28 · 535 阅读 · 0 评论 -
基于HyperOpt实现TPE优化
由于hp.choice最终会返回最优参数的索引,容易与数值型参数的具体值混淆,而hp.randint又只能够支持从0开始进行计数,因此我们常常会使用quniform获得均匀分布的浮点数来替代整数。我们还可以使用partial功能来修改算法涉及的具体参数,包括模型使用的初始观测值数量(参数n_start_jobs)以及在计算采集函数值时考虑的样本数量(参数n_EI_candidates)。在hyperopt的说明当中,并未明确参数取值范围空间的开闭,根据实验,如无特殊说明,hp中的参数空间定义方法应当都为。原创 2024-01-19 09:44:31 · 1029 阅读 · 0 评论 -
基于高斯过程的贝叶斯优化
不过,bayes-opt对参数空间的处理方式较为原始,也缺乏相应的提效/监控功能,对算力的要求较高,因此它往往不是我们进行优化时的第一首选库。通常来说,当且仅当我们必须要实现基于高斯过程的贝叶斯优化,且算法的参数空间中带有大量连续型参数时,我们才会优先考虑Bayes_opt库。例如,如果使用RMSE作为目标函数,则应该让目标函数输出负的RMSE,以便最大化负的RMSE,从而实现最小化真正的RMSE。来定义参数空间,其中参数的名称为键,参数的取值范围为值。因此,目标函数的输入必须是具体的超参数值。原创 2024-01-19 09:01:36 · 1076 阅读 · 0 评论 -
特征递归消除法 Recursive feature elimination(RFE)
RFE过程尽管会用到feature_importances_进行特征筛选,但RFE过程只是对模型进行简单训练,并未进行超参数搜索等模型优化,这会使得每一轮的模型都是过拟合的,而基于过拟合模型产出的feature_importances_进行的特征筛选,结果并不可靠。要解决该问题,sklearn提供了一个非常便捷的方法,即在实例化RFE评估器时带入一个已经经过网格搜索调参后的模型,即可每一轮特征重要性评估时使用已经训练好的模型,而该模型是已经经过剪枝的决策树模型,不会再表现出过拟合倾向。原创 2024-01-18 11:43:46 · 1233 阅读 · 0 评论 -
详解feature_importances_
基于模型的评估指标1. feature_importances_的计算过程2.feature_importances_的计算特性2.1 feature_importances_的随机性2.2 feature_importances_受建模过程影响3 基于feature_importances_的特征筛选原创 2024-01-18 10:17:04 · 1780 阅读 · 0 评论 -
贝叶斯优化的基本流程
在观测点周围,置信度总是很高的,远离观测点的地方,置信度总是很低,所以如果我们能够在置信度很低的地方补充一个实际的观测点,我们就可以很快将众人的猜测统一起来。不难发现,在观测点的附近,每个人猜测的函数值差距不大,但是在远离远侧点的地方,每个人猜测的函数值就高度不一致了。由于不同的人对函数的整体分布有不同的猜测,不同猜测下对应的最小值也是不同的,根据每个人猜测的函数结果,我们在。分布的曲线,但是随着我们观测的点越来越多,我们对函数的估计是越来越准确的,因此也有越来越大的可能性可以估计出。原创 2024-01-12 15:32:24 · 964 阅读 · 0 评论 -
互信息法的原理详解
尽管f_regression巧妙的构建了一个F统计量,并借此成功的借助假设检验来判断变量之间是否存在线性相关关系,但f_regression仍然存在较大局限,首当其冲当然是f_regression只能挖掘线性相关关系,也就是两个变量的同步变化关系,但除了线性关联关系外,变量之间存在其他类别的“关联关系”也是有助于模型建模,而其他类型的关系,无法被f_regression识别;不难发现,参数方法是借助样本估计总体,然后根据总体进行推断的过程,而非参数方法则无需总体信息即可计算。接下来我们就进一步介绍可以。原创 2024-01-12 14:22:22 · 1176 阅读 · 0 评论 -
【方差分析原理简介】
如果是针对分类问题,f_classif与chi2两个评分函数搭配使用,就能够完成一次完整的特征筛选,其中chi2用于筛选离散特征、f_classif用于筛选连续特征。而如果是回归问题,sklearn提供了一种基于F检验的线性相关性检验方法f_regression,该检验方法并不常见。需要注意,该方法只能用于回归问题中,并且只能筛选出与标签呈现线性相关关系的连续变量。原创 2024-01-11 16:00:09 · 966 阅读 · 0 评论 -
【卡方检验(Chi-Squared Test)的原理简介】
在一般情况下,卡方检验是针对于离散变量的独立性检验,卡方检验的零假设为两个离散变量相互独立。很明显,如果我们将其用于标签和特征的判别,就能借此判断某特征和标签是不是独立的,如果是,则说明特征对标签的预测毫无帮助。因此在很多时候,卡方检验都是非常重要的剔除无关特征的方法。原创 2024-01-11 11:38:20 · 1890 阅读 · 1 评论