详解随机森林-概述菜菜的sklearn课堂笔记(代码片段)

author author     2022-12-05     672

关键词:

集成算法概述

继承学习不是一个单独的机器学习算法,而是通过在数据上构建多个模型,继承所有模型的建模结果。

集成算法的目标是:集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现

多个模型集成成为的模型叫做集成评估器,组成集成评估器的每个模型都叫做基评估器。通常来说,有三类集成算法:袋装法(Bagging)、提升法(Boosting)和stacking

袋装法的核心思想是构建多个互相独立的评估器,然后对其预测进行平均或多数表决原则来决定继承评估器的结果。袋装法的代表模型就是随机森林 提升法中,基评估器是相关的,是按顺序一一构建的。其核心思想是结合若评估器的力量一次次对难以评估的样本进行预测,从而构成一个强评估器。提升法的代表模型有Adaboost和梯度提升树

随机森林概述

这其中提到的有放回的随机选择N个样本就是袋装法。 我们称抽样得到的n个样本的集合为自助集。由于我们每次是随机采样,因此每次的自助集和原式数据集不同,和其他的采样集也是不同的。这样我们就可以获得互不相同的自助集,用这些自助集来训练我们的基分类器,得到的基分类器也就是各不相同的

有放回的抽样也会有自己的问题,由于是有放回,一些样本可能在同一个自助集中出现多次,有一些可能被忽略,一般来说,自助集大约平均会包含63%的原始数据。这是因为每个样本被抽到某个自助集中的概率为 $$ 1-\\left(1- \\frac1n\\right)^n $$ 当$n$足够大时,这个概率收敛于$\\beginaligned 1- \\frac1e\\endaligned$,约等于0.632,。因此,会有约37%的训练数据被浪费掉,没有参数建模,这些数据被称为袋外数据(out of bag data,简写为oob)。 袋外数据可以被用来作为集成算法的测试集,这样就不需要划分测试集与训练集了。当n和n_estimators不够大时,很可能就没有数据落在袋外,也就无法使用oob数据来测试模型了

关于我们为什么选择随机森林 上面说到随机森林的本质是一种装袋集成算法(bagging),装袋集成算法是对基评估器的预测结果进行平均或用多数表决原则来决定集成评估器的结果。 在之后的红酒例子中,我们建立了25棵树,对任何一个样本而言,平均或多数表决原则下,当且仅当有13棵及以上的树判断错误的时候,随机森林才会判断错误。单独一棵决策树对红酒数据集的分类准确率在0.85上下浮动,假设一棵树判断错误的可能性为0.2$\\epsilon$,那20棵树以上都判断错误的可能性是: $$ e=\\sum\\limits_i=13^25C_25^i\\epsilon ^i(1-\\epsilon )^25-i=0.000369 $$ 其中$i$是判断错误的决策树数量,$\\epsilon$是判断错误的概率

可见错误的几率非常小,也就让随机森林在红酒数据集上的表现远远好于单棵决策树

详解随机森林-机器学习中调参的基本思想菜菜的sklearn课堂笔记

调参的方式总是根据数据的状况而定,所以没有办法一概而论那我们首先来讲讲正确的调参思路。模型调参,第一步是要找准目标:我们要做什么?一般来说,这个目标是提升某个模型评估指标,比如对于随机森林来说,我们想... 查看详情

详解决策树-分类树菜菜的sklearn课堂笔记(代码片段)

文章换行有问题,望谅解关键概念:节点根节点:没有进边,有出边。包含最初的,针对特征的提问。中间节点:既有进边也有出边,进边只有一条,出边可以有很多条。都是针对特征的提问。叶子节点:有进边,没有出边,每... 查看详情

详解决策树-交叉验证菜菜的sklearn课堂笔记(代码片段)

均方误差meansquarederror(MSE)$$MSE=\\frac1N\\sum\\limits_i=1^N(f_i-y_i)^2$$其中$N$是样本数量,$i$是每个数据样本,$f_i$是模型回归出来的数值,$y_i$是样本点$i$实际的数值标签所以MES的本质,其实是样本正是数据与回归结果的差异。因此在... 查看详情

详解支持向量机-探索核函数的优势和缺陷菜菜的sklearn课堂笔记(代码片段)

看起来,除了Sigmoid核函数,其他核函数效果都还不错。但其实rbf和poly都有自己的弊端,我们使用乳腺癌数据集作为例子来展示一下:fromsklearn.datasetsimportload_breast_cancerfromsklearn.svmimportSVCfromsklearn.model_selectionimporttrain_test_splitimportm... 查看详情

详解支持向量机-支持向量机分类器原理菜菜的sklearn课堂笔记

支持向量机是如何工作的支持向量机所作的事情其实非常容易理解。先来看看下面这一组数据的分布,这是一组两种标签的数据,两种标签分别由圆和方块代表。支持向量机的分类方法,是在这组分布中找出一个超平面作为决策... 查看详情

详解逻辑回归与评分卡-用逻辑回归制作评分卡-分箱菜菜的sklearn课堂笔记(代码片段)

分训练集和测试集fromsklearn.model_selectionimporttrain_test_splitX=pd.DataFrame(X)y=pd.DataFrame(y)Xtrain,Xtest,Ytrain,Ytest=train_test_split(X,y,test_size=0.3,random_state=420)model_data=pd.concat([Ytrain,Xt 查看详情

详解数据预处理和特征工程-数据预处理-特征选择-方差过滤菜菜的sklearn课堂笔记(代码片段)

这里只说特征选择我们有四种方法可以用来选择特征:过滤法,嵌入法,包装法,和降维算法。importpandasaspddata=pd.read_csv(r"D:\\ObsidianWorkSpace\\SklearnData\\digitrecognizor.csv")data.shape---(42000,785)data.iloc[:5,[0,1,784]]---label 查看详情

详解支持向量机-roc曲线中的概率和阈值菜菜的sklearn课堂笔记(代码片段)

基于混淆矩阵,我们学习了总共六个指标:准确率Accuracy,精确度Precision,召回率Recall,精确度和召回度的平衡指标Fmeasure,特异度Specificity,以及假正率FPR。其中,假正率有一个非常重要的应用:我们在追求较高的Recall的时候... 查看详情

详解支持向量机-svc真实数据案例:预测明天是否会下雨-探索标签和处理异常值菜菜的sklearn课堂笔记(代码片段)

在实际工作中,数据预处理往往比建模难得多,耗时多得多,因此合理的数据预处理是非常必要的。考虑到大家渴望学习真实数据上的预处理的需求,以及SVM需要在比较规则的数据集上来表现的特性,我为大家准备了这个Kaggle上... 查看详情

详解逻辑回归与评分卡-逻辑回归中的特征工程菜菜的sklearn课堂笔记(代码片段)

当特征的数量很多的时候,我们出于业务考虑,也出于计算量的考虑,希望对逻辑回归进行特征选择来降维。比如,在判断一个人是否会患乳腺癌的时候,医生如果看5~8个指标来确诊,会比需要看30个指标来确诊容易得多。业务... 查看详情

详解数据预处理和特征工程-特征选择-embedded嵌入法菜菜的sklearn课堂笔记(代码片段)

嵌入法是一种让算法自己决定使用哪些特征的方法,即特征选择和算法训练同时进行。在使用嵌入法时,我们先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据权值系数从大到小选择特征。权值系数往... 查看详情

详解支持向量机-基于svm的roc曲线和auc面积菜菜的sklearn课堂笔记(代码片段)

手动绘制SVM的ROC曲线我们理解了什么是阈值(threshold),了解了不同阈值会让混淆矩阵产生变化,也了解了如何从我们的分类算法中获取概率。ROC是一条以不同阈值下的假正率FPR为横坐标,不同阈值下的召回率Recall为纵坐标的曲... 查看详情

详解数据预处理和特征工程-特征选择-相关性过滤-互信息法菜菜的sklearn课堂笔记(代码片段)

互信息法是用来捕捉每个特征与标签之间的任意关系(包括线性和非线性关系)的过滤方法。和F检验相似,它既可以做回归也可以做分类,并且包含两个类feature_selection.mutual_info_classif(互信息分类)和feature_selection.mutual_info_regr... 查看详情

详解决策树-决策树的优缺点&分类树在合成数集上的表现菜菜的sklearn课堂笔记(代码片段)

决策树的优缺点决策树优点易于理解和解释,因为树木可以画出来被看见需要很少的数据准备。其他很多算法通常都需要数据规范化,需要创建虚拟变量并删除空值等。但请注意,sklearn中的决策树模块不支持对缺失值的处理。... 查看详情

菜菜的sklearn课堂笔记支持向量机-线性svm用于分类的原理

线性SVM的损失函数详解要理解SVM的损失函数,我们先来定义决策边界。假设现在数据总计有$N$个训练样本,每个训练样本$i$可以被表示为$(x_i,y_i)(i=1,2,\\cdots,N)$,其中$x_i$是$(x_1i,x_2i,\\cdots,x_ni)^T$这样的一个特征向量,每个样本总... 查看详情

详解支持向量机-选取与核函数相关的参数:degree&gamma&coef0菜菜的sklearn课堂笔记(代码片段)

之前的表格输入含义解决问题核函数表达式参数gamma参数degree参数coef0linear线性核线性$K(x,y)=x^Ty=x\\cdoty$无无无poly多项式核偏线性$K(x,y)=(\\gamma(x\\cdoty)+r)^d$有有有sigmoid双曲正切核非线性$K(x,y)=\\tanh(\\gamma(x\\cdoty)+r)$有无有rbf高斯径向... 查看详情

详解逻辑回归与评分卡-用逻辑回归制作评分卡-重复值和缺失值处理菜菜的sklearn课堂笔记(代码片段)

在银行借贷场景中,评分卡是一种以分数形式来衡量一个客户的信用风险大小的手段,它衡量向别人借钱的人(受信人,需要融资的公司)不能如期履行合同中的还本付息责任,并让借钱给别人的人(授信人,银行等金融机构)... 查看详情

详解主成分分析pca与奇异值分解svd-高维数据可视化以及参数n_components菜菜的sklearn课堂笔记(代码片段)

高维数据的可视化和n_componentsPCA([n_components=None,copy=True,whiten=False,"svd_solver=auto",tol=0.0,"iterated_power=auto",random_state=None],)#n_components:降维后维度的数量,可填正整数、[0,1]浮点数、mleimpo 查看详情