数据分析-随机森林,GridSearchCV,逻辑回归,混淆矩阵,时间序列分析

构建随机森林分类器

随机森林它实际上是一个包含多个决策树的分类器,每一个子分类器都是一颗CART分类回归树,所以随机森林既可以做分类,又可以做回归。

  • 当它做分类的时候,输出的结果是每一个子分类器的分类结果中最多的那个。你可以理解是每一个分类器都做投票,取投票最多的那个结果。
  • 当它做回归的时候,输出结果是每棵CART树的回归结果的平均值

image-20210816105758625

GridSearchCV工具的使用

在做好分类算法的时候,我们需要经常调节网络参数,目的是得到更好的分类结果,实际上一个分类算法有很多参数,取值范围也很广,这样我们该怎么办?

GridSearchCV就是帮助我们去调参的一个工具,它是python的参数自动搜索模块。我们只需要告诉它想要调优的参数有哪些以及参数的取值范围,它就会把所有的情况都跑一边,然后告诉我们哪个参数最优

调用方法:

from sklearn.model_selection import GridSearchCV

image-20210816112224169

使用随机森林对iris进行数据分析,假设我们想知道n_estimators在1-10的范围内取哪个值的分类结果最好

#使用随机森林进行分类
from sklearn.ensemble import RandomForestClassifier
#利用GridSearchCV寻找最优参数
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import load_iris

rf = RandomForestClassifier()
parameters = {'n_estimators':range(1,11)}
iris = load_iris()
#使用GridSearchCV进行参数调优
clf = GridSearchCV(estimator=rf,param_grid=parameters)
#对iris数据集进行分类
clf.fit(iris.data,iris.target)
print('最优分数:%.4lf' % clf.best_score_)
print('最优参数:',clf.best_params_)


#结果
最优分数:0.9600
最优参数: {'n_estimators': 5}

这样当我们采用随机森林作为分类器的时候,最优的准确率为0.96,当n_estimators=6的时候是最优参数,也就是随机森林一共有6个子决策树

使用Pipeline管道机制进行流水线作业

做分类的时候往往都是有步骤的,比如先对数据进行规范化处理,也可以使用PCA方法(一种常用的降维方法)对数据降维,最后使用分类器分类

在python中有一种pipeline管道机制。管道机制就是让我们把每一步都按顺序列下来,从而创建pipeline流水线作业,每一步都采用(“名称”,“步骤”)的方式来表示

首先,先采用StandardScaler方法对数据规范化,即采用数据规范化为均值为0,方差为1的正态分布,然后采用PCA方法对数据进行将维,最后采用随机森林进行分类

具体代码如下:

from sklearn.model_selection import GridSearchCV
pipeline = Pipeline([
	('scaler',StandardScaler()),
	('pca',PCA()),
	('randomforestclassifier',RandomForestClassifier())
])

构建逻辑回归分类器

逻辑回归作为常用的数据挖掘算法,也是我们必要掌握的技能之一

逻辑回归也叫作logistic回归,虽然名字中带有“回归”,但它实际上是分类方法,主要用于解决二分类的问题,也可以解决多分类问题

image-20210816170526626

image-20210816170538623

在g(z)的结果在0-1之间,当Z越大的时候,g(z)越大,当z趋于无穷大的时候,g(z)趋近于1。同样当z趋近于无穷小的时候,g(z)趋近于0。同时,函数值以0.5为中心

为什么逻辑回归算法是基于sigmoid函数实现的:

​ 当我们要实现一个二分类任务,0即为不发生,1即为发生。我们给定一些历史数据x和y。

其中X代表样本的n个特征,y代表正例和负例,也就是0或者1的取值。通过历史样本的学习,我们可以得到一个模型,当给定新的X的时候,可以预测出Y。这里我们得到的Y是一个预测的概率,通常不是0%和100%,而是中间得到取值,那么我们就可以认为概率大于50%的时候,即为发生(正例),概率小于50%的时候,即为不发生(负例)。这样就完成了二分类的预测。

image-20210816171933058

模型评估指标

我们之前对模型做评估时,通常采用的是准确率,它指的是分类器正确分类的样本数与总体样本数之间的比例。这个指标对大部分的分类情况是有效的,不过当分类结果严重不平衡的时候,准确率很难反应模型的好坏。

  • TP:预测为正,判断正确
  • FP:预测为正,判断错误
  • TN:预测为负,判断错误
  • FN:预测为负,判断错误

实际上,对于分类器不平衡的情况,有两个指标非常重要,它们分别是精确度和召回率

精确率 p= TP/(TP+FP)

召回率 R = TP/(TP+FN)

image-20210816172633168

混淆矩阵

混淆矩阵也叫误差矩阵,实际上它就是TP,FP,TN,FN这四个数值的矩阵表示,帮助我们判断预测值和实际值相比,对了多少。

然后使用了sklearn中的precision_curve函数,通过预测值和真实值来计算精确率-召回率曲线,precision_recall_curve函数会计算在不同概率阈值情况下的精确率和召回率。最后定义plot_precision_recall函数,绘制曲线

时间序列预测

image-20210817154514080

image-20210817154542285

image-20210817154553366

ARMA模型工具

image-20210817154843400

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有猫腻妖

你的鼓励是我更新的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值