文章目录

  • 1.随机森林的相关概念
    • 1.1 什么是随即森林
      • 1.1.1 决策树
      • 1.1.2 集成学习
      • 1.1.3 Bagging算法思想
    • 1.2 随机森林的特点
  • 2.随机森林的生成与特征选择
    • 2.1 随机森林的生成
    • 2.2 基于信息增益的最优特征选择
  • 3.随机森林性能——袋外错误率
  • 4.算法实例
    • 4.1 实例1
    • 4.2 [转]实例2

1.随机森林的相关概念

一天三个偏科的学渣一定要和全面发展的学霸比试比试,他们分别只在语数外三科中擅长一科甚至能考到90分以上,而其他两科连格都及不了,而他们所要面对是语数外均能考上85+的学霸,试问,他们应该以什么样的策略,才能考过学霸呢?很明显,他们只需要在考他们擅长的那一科,然后将成绩综合起来就能超越学霸。这就是俗话所讲的“三个臭皮匠顶个诸葛亮”,而这也就是随机森林的基本思想。

1.1 什么是随即森林

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这样的比喻还是很贴切的,其实这也是随机森林的主要思想–集成思想的体现。

其实从直观角度来解释,每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的 Bagging 思想。

简而言之:随机森林=决策树+集成学习Bagging算法。随机森林建立了多个决策树,并将它们合并在一起以获得更准确和稳定的预测。随机森林的一大优势在于它既可用于分类,也可用于回归问题,这两类问题恰好构成了当前的大多数机器学习系统所需要面对的。

1.1.1 决策树


    决策树是一种用于分类和回归任务的经典算法,它是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
    以上图为例,今天小倒霉去贷款,小倒霉想对贷款结果进行一个预测,那么我们可以利用一个简单的决策树来预测能否贷款成功。首先我们选择特征:是否有房、是否有车、是否有钱。假设对贷款成功影响最大的因素依次是是否有车、是否有房、是否有钱。小倒霉有车,因此贷款预测可以继续进行,若是没有,我们就可以预测小倒霉贷款失败。….最后,如果小倒霉有车有房还有钱,我们就可以预测他能贷款成功,当然,实际的情况是他还是有可能贷款失败。这里仅仅是考虑有无的问题,而现实往往对有车的判断会落在车的价格的区间上,可能在20万以下或者没车,小倒霉贷款失败,20万到40万,小倒霉贷款能否成功还得看其他条件,40万以上说不定就贷款成功了。

1.1.2 集成学习

集成学习的做法就是训练多个用于解决同一任务的弱分类器(学渣),并将它们根据具体任务的需求用不同的结合策略结合起来以获得一个强分类器(即超越学霸),从而在任务上取得更好的表现。从图中可以看到,集成学习主要分为Bagging类和Boosting类,对应于各分类器之间是否存在依赖关系,一个是各弱分类器不存在依赖关系,因此可以同时结合得到最终结果,一个是将上一次弱分类器训练结果用于结合更新训练集,再借助另一个弱分类器训练,如此反复进行训练更新,以得到最终结果,显然这种情况各弱分类器之间存在着依赖关系,依赖于上一次弱分类器的结果。
集成学习常见的结合策略有平均法、投票法。
1、平均法——就是对分类结果根据具体的情况选择对应的求均值方法取平均值,一般用于回归任务。
2、投票法——就是根据分类结果分票,每个弱分类器算一票,然后选择相应的投票机制下最优的投票对应的分类结果作为最终的预测,一般用于分类任务。
    而随机森林则是采用投票法结合策略的一个典型的集成学习算法,它依靠于随机森林中各个决策树的投票选择来决定最后的分类结果。

1.1.3 Bagging算法思想


    从图中可以看到随机森林中有许多的分类树。我们要将一个输入样本进行分类,我们需要将输入样本输入到每棵决策树中进行分类。打个形象的比喻:森林中召开会议,讨论某个动物到底是老鼠还是松鼠,每棵树都要独立根据它的某些特征发表自己对这个问题的看法,也就是每棵决策树都要投票。该动物到底是老鼠还是松鼠,要依据投票情况来确定,获得票数最多的类别就是森林对这个动物的分类预测的结果。那么我们可以这样看待,Bagging算法即是通过随机采样的方法使得森林中的树不存在强依赖关系,这样99.9%不相关的树做出的预测结果涵盖所有的情况,这些预测结果将会彼此抵消,而少数决策更高效更好的树的预测结果将会超脱于芸芸“噪音”,做出一个好的预测。以此将若干个弱分类器的分类结果进行投票选择,从而组成一个强分类器,这就是随机森林基于bagging算法的思想。

1.2 随机森林的特点

  • 在当前所有算法中,具有极好的准确率
  • 能够有效地运行在大数据集上
  • 能够处理具有高维特征的输入样本,而且不需要降维
  • 能够评估各个特征在分类问题上的重要性

实际上,随机森林的特点不只有以上这些,它就相当于机器学习领域的Leatherman(多面手),你几乎可以把任何东西扔进去,它基本上都是可供使用的。在估计推断映射方面特别好用,以致都不需要像SVM那样做很多参数的调试。

为什么能具有以上特点?
    决策树是广泛应用的一种分类算法,它是一种树状分类器,在每个内部节点选择最优的分裂属性进行分类,每个叶节点是具有同一个类别的数据。当输入待分类样本时,决策树确定一条由根节点到叶节点的唯一路径,该路径的叶节点的类别就是待分类样本的所属类别。决策树是一种简单且快速的非参数分类方法,一般情况下,还具有很好的准确率,然而当数据复杂或者存在噪声时,决策树容易出现过拟合问题,使得分类精度下降。 而随机森林是以决策树为基本分类器的一个集成学习模型,它包含多个由Bagging集成学习技术训练得到的决策树,当输入待分类的样本时,最终的分类结果由多个决策树的输出结果投票决定。

优点:

  • 由于采用了集成算法,本身精度比大多数单个算法要好,所以准确性高
  • 随机森林的模型简单,训练速度快,可以运用在大规模数据集上
  • 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化
  • 在训练过程中,能够检测到feature间的互相影响,且可以得出feature的重要性,具有一定参考意义
    此外在测试集上表现良好,由于两个随机性的引入,使得随机森林不容易陷入过拟合(样本随机,特征随机)
  • 在工业上,由于两个随机性的引入,使得随机森林具有一定的抗噪声能力,对比其他算法具有一定优势
  • 由于树的组合,使得随机森林可以处理非线性数据,本身属于非线性分类(拟合)模型,可以处理缺省值(单独作为一类),不用额外处理
  • 由于有袋外数据(OOB),可以在模型生成过程中取得真实误差的无偏估计,且不损失训练数据量
  • 由于每棵树可以独立、同时生成,容易做成并行化方法
  • 由于实现简单、精度高、抗过拟合能力强,当面对非线性数据时,适于作为基准模型

缺点:

  1. 当随机森林中的决策树个数很多时,训练时需要的空间和时间会比较大
  2. 随机森林中还有许多不好解释的地方,有点算是黑盒模型
  3. 在某些噪音比较大的样本集上,RF的模型容易陷入过拟合

2.随机森林的生成与特征选择

2.1 随机森林的生成

三个部分

  1. 随机选择样本
  2. 随机选择特征
  3. 构建决策树

其中每棵树按照如下的规则生成

  1. 如果训练集大小为N,对于每棵树而言,随机且有放回地从训练集中的抽取N个训练样本,作为该树的训练集;从这里我们可以知道:每棵树的训练集都是不同的,而且里面包含重复的训练样本
  2. 如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的
  3. 每棵决策树都尽最大程度的生长,并且没有剪枝过程

这里我们采用的是随机采样,同时是随机采样中的自助采样法(Bootstap sampling),即对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,也就是说下次采样时该样本仍有可能被采集到,这样采集m次,最终可以得到m个样本的采样集,由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,这样得到多个不同的弱学习器。
    因此我们进一步印证了前面的说法,即随机森林是bagging的一个特化进阶版,所谓的特化是因为随机森林的弱学习器都是决策树。所谓的进阶是随机森林在bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离bagging的范畴。

两个重要问题

  1. 为什么要随机抽样训练集?
        如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的,这样的话完全没有bagging的必要

  2. 为什么要有放回地抽样?
        如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是"有偏的",都是绝对"片面的",也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决,这种表决应该是"求同",因此使用完全不同的训练集来训练每棵树这样对最终分类结果是没有帮助的,这样无异于是"盲人摸象"

2.2 基于信息增益的最优特征选择

  • 信息、熵、信息增益三个基本概念是基于信息增益的决策树的根本,是决策树利用特征来分类时,确定特征选取顺序的依据。
  • 对于机器学习中的决策树而言,如果带分类的事物集合可以划分为多个类别当中,我们以 I(x)用来表示随机变量的信息,p(xi)表示事件xi发生的概率,则(xi)的信息可以定义如下
  • 熵H(x)是信息的期望值,可理解为数据集的无序度,熵的值越大,表示数据越无序,对于机器学习中的分类问题而言,熵越大即这个类别的不确定性更大,反之越小
  • 信息增益指熵的减少或者是数据无序度的减少。在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好

3.随机森林性能——袋外错误率

前面说了随机森林的一堆优点,但是怎么测试随机森林的性能以体现它的优点呢?测试集是什么?这里其实理解的有偏差:
    随机森林有一个重要的优点就是,没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。实际上, 数据集D中的每一个样本都可以拿来做测试数据, 对于一个样本d, 森林中大约有1/3的树是OOB的, 那么这约1/3的树就构成了预测样本d的森林,用简单投票法计算分类结果. 从而得到总的error.

如图所示,(x,y)代表输入的样本和标签,一共有N个,g表示的是构建的决策树,一共有t棵。上图中(xN,yN)没有用于g2、g3、gt,所以(xN,yN)可以作为g2、g3、gt的验证数据,然后用oob数据作为输入,输入到模型中,然后投票,少数服从多数。同理,对于(x1,y1)、(x2,y2)等也存在同样的计算,最终计算评判错误的样本占比,就是oob-error.

袋外错误率与两个因素有关:

  1. 森林中任意两棵树的相关性:相关性越大,错误率越大
  2. 森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。

减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。

4.算法实例

4.1 实例1

小木想要找女朋友,他有自己喜欢的类型,不是任何人都会同意的。我们现在有一个中介公司给小木介绍了五个女孩,她们的条件、以及小木是否想见面分别如下表所示:

这个表格中有长相、性格、年龄、学历、小木是否选择几项,除了年龄之外全都是文字,我们要建立数学模型,那么我们必须给它们转换为数字形式,转换之后如下表所示:


然后我们把每一个属性的熵值以及信息增益计算出,这里的计算方法与决策树相同

我们建立第一颗决策树,首先随机地选择两个限定条件,一个是性格,另外一个是年龄,我们发现增益最大的是性格,也就是性格作为决策树的顶点,然后随机选择几个样本(由于样本就6个,我们就都选择了)并按照这性格分别划分三个细节,如图所示:

从图中我们可以看出,小木对于温柔、平淡的女生是拒绝的,对超凶的女生是直接选择的。对超凶的女生,小木是百分百选择的。因此后边的学历我们也就不用看了。这样一颗决策树就建立完成了。

接下来,按照同样方法再随机地选择两个限定条件,如学历、年龄。信息增益最大的那个是学历,也就是学历作为决策树的顶点,然后随机选择几个样本(由于样本就6个,我们就都选择了),按照这性格分别划分四个细节:高中、本科、硕士、博士如图所示

我们发现高中和硕士小木不选,而博士小木选择,本科有歧义,我们还需要往下面再分类。我们按照同样的方法,把年龄分为25岁以下和25岁以上(包含25岁),如图所示:

我们再生成一个大树,选择住址和性格,如图所示:


这样,我们建立了三颗决策树,接下来,我们需要把测试数据带入进去判断小木是否选择,例如下表:

然后我们把条件分别带入三棵树中。得出的结果如下表所示。从表格我们可以得出最终的结果,最终的结果一般是两种计算方法,第一种是少数服从多数,第二种是平均值,因为这次结果只有0和1,所以选择少数服从多数的计算方式。

最后总结一下随机森林的计算步骤:

  1. 导入数据,条件及其结果(比如女孩自身条件是条件,小木是否选择见面是结果)
  2. 设定一个常数N,作为筛选的样本数目(一般小于样本总数M,由于该举例里面样本太少了,此处我们令N=M了)
  3. 设定一个常数a,作为筛选条件的数目(一般小于总数)
  4. 设定一个常数X,作为决策树数目,并创建X个决策树(创建时,每个决策树随机选定数目为a的条件,随即选定数目为N的样本)
  5. 创建完成后,带入测试样本,以结果少数服从多数或平均值作为最终测试结果,并与真实结果做对比,判断是否符合实际。

4.2 [转]实例2

实例来源:https://zhuanlan.zhihu.com/p/83220850

空气质量指数(AQI)是衡量空气质量好坏的重要指数,它是依据空气中污染物浓度的高低来判断的。

但是因为空气污染本身是一个较为复杂的现象,来自固定和流动污染源的人为污染物排放大小是影响空气质量的最主要因素之一。

其中包括车辆、船舶、飞机的尾气、工业企业生产排放、居民生活和取暖、垃圾焚烧等。城市的发展密度、地形地貌和气象等也是影响空气质量的重要因素。

·研究目标:搜集相关数据,运用机器学习对空气质量等级分类及预测;
·选取指标:PM2.5;PM10;SO2;CO;NO2; O3_8h;AQI;质量等级;
·数据及其来源:

·研究方法及思路:运用随机森林,分别对指标AQI和质量等级进行预测,调用Python的sklearn包。

Step 1:准备工作

导入所需的包,运行环境:Python3.7,Anaconda4.2.0

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
import matplotlib.pyplot as plt
import matplotlib
from sklearn.model_selection import train_test_split

Step2:数据基本统计分析

首先,看一下数据分布情况。

data=pd.read_csv('./air_train&test.csv',index_col=0,encoding='gb2312')
print (data.head())
print (data.shape)
index=data.index
col=data.columns
class_names=np.unique(data.ix[:,-1])
#print (type(data))
print (class_names)
#print (data.describe())
​
#划分训练集和验证集
data_train, data_test= train_test_split(data,test_size=0.1, random_state=0)
print ("训练集统计描述:\n",data_train.describe().round(2))
print ("验证集统计描述:\n",data_test.describe().round(2))
print ("训练集信息:\n",data_train.ix[:,-1].value_counts())
print ("验证集信息:\n",data_test.ix[:,-1].value_counts())




Step3:构建随机森林回归模型预测AQI

获取训练集和验证集

import sys
X_train=data_train.iloc[:,0:-2]
X_test=data_test.iloc[:,0:-2]
feature=data_train.iloc[:,0:-2].columns
print (feature)
y_train=data_train.iloc[:,-2]
y_test=data_test.iloc[:,-2]

查看各变量间的相关系数

import sys
X_train=data_train.iloc[:,0:-2]
X_test=data_test.iloc[:,0:-2]
feature=data_train.iloc[:,0:-2].columns
print (feature)
y_train=data_train.iloc[:,-2]
y_test=data_test.iloc[:,-2]
Index(['PM2.5', 'PM10', 'SO2', 'CO', 'NO2', 'O3_8h'], dtype='object')import seaborn as sns
sns.set(style="ticks", color_codes=True);
# 创建自定义颜色调色板
palette = sns.xkcd_palette(['dark blue', 'dark green', 'gold', 'orange'])
# 画散点图矩阵
sns.pairplot(data.drop([u'质量等级'],axis = 1), diag_kind = 'kde', plot_kws=dict(alpha = 0.7))
plt.show()


根据相关系数表和散点图矩阵,PM2.5和PM10与AQI的线性相关性最大,相关系数超过了0.8,其次是CO和NO2,相关系数超过了0.7。但是,PM2.5与PM10、CO的相关系数超过了0.8,CO与NO2的相关系数也超过了0.8,即各因素间存在多重共线性,不满足相互独立的条件,不能直接进行线性回归,因此选用随机森林预测AQI
Step 4:模型调参

'''模型调参'''
##参数选择
from sklearn.model_selection import RandomizedSearchCV
criterion=['mse','mae']
n_estimators = [int(x) for x in np.linspace(start = 200, stop = 2000, num = 10)]
max_features = ['auto', 'sqrt']
max_depth = [int(x) for x in np.linspace(10, 100, num = 10)]
max_depth.append(None)
min_samples_split = [2, 5, 10]
min_samples_leaf = [1, 2, 4]
bootstrap = [True, False]
random_grid = {'criterion':criterion,'n_estimators': n_estimators,'max_features': max_features,'max_depth': max_depth,'min_samples_split': min_samples_split,'min_samples_leaf': min_samples_leaf,'bootstrap': bootstrap}
#构建模型
clf= RandomForestRegressor()
clf_random = RandomizedSearchCV(estimator=clf, param_distributions=random_grid,n_iter = 10,  cv = 3, verbose=2, random_state=42, n_jobs=1)
#回归
clf_random.fit(X_train, y_train)
print (clf_random.best_params_)

Step 5:模型训练、验证及评估

from pyecharts import Bar
rf=RandomForestRegressor(criterion='mse',bootstrap=False,max_features='sqrt', max_depth=20,min_samples_split=10, n_estimators=1200,min_samples_leaf=2)rf.fit(X_train, y_train)
y_train_pred=rf.predict(X_train)
y_test_pred=rf.predict(X_test)#指标重要性
print (rf.feature_importances_)
bar=Bar()
bar.add('指标重要性',feature, rf.feature_importances_.round(2),is_label_show=True,label_text_color='#000')
bar.render('指标重要性.html')from sklearn.metrics import mean_squared_error,explained_variance_score,mean_absolute_error,r2_score
print ("决策树模型评估--训练集:")
print ('训练r^2:',rf.score(X_train,y_train))
print ('均方差',mean_squared_error(y_train,y_train_pred))
print ('绝对差',mean_absolute_error(y_train,y_train_pred))
print ('解释度',explained_variance_score(y_train,y_train_pred))print ("决策树模型评估--验证集:")
print ('验证r^2:',rf.score(X_test,y_test))
print ('均方差',mean_squared_error(y_test,y_test_pred))
print ('绝对差',mean_absolute_error(y_test,y_test_pred))
print ('解释度',explained_variance_score(y_test,y_test_pred))

通过随机森林回归得到,PM2.5和PM10仍旧是对AQI影响最大的前两个指标,其次是NO2、O3_8h、CO,基本与相关系数分析结果一致。

通过模型评估表得,所构建的随机森林预测AQI模型,训练集和验证集上拟合优度R^2分别为0.9965、0.9858,模型效果不错,可以用该模型对AQI进行预测。

Step6:预测
用构建的模型预测2016年中国环保重点城市AQI。

'''预测'''
data_pred=pd.read_csv('./air.csv',index_col=0,encoding='gb2312')
index=data_pred.index
y_pred=rf.predict(data_pred.values)#将预测结果保存到文件中
result_reg=pd.DataFrame(index)
result_reg['AQI']=y_pred
result_reg.to_csv('./result_reg_city.txt',encoding='gb2312')
print (result_reg

Step 7:可视化预测结果

#可视化预测结果
from pyecharts import Geo
import pandas as pd
df=pd.read_csv('./result_reg_city.txt',index_col=0,encoding='gb2312')
print (df.head())
geo = Geo("全国主要城市空气质量","",title_color="#fff",title_pos="center",width=1200,height=600,background_color="#404a59",
)
geo.add("",df.iloc[:,0],df.iloc[:,1],visual_range=[0, 300],visual_text_color="#111",symbol_size=15,is_visualmap=True, is_piecewise=True,#visual_split_number=6pieces=[{"max": 50, "min": 0, "label": "优:0-50"},{"max": 100, "min": 50, "label": "良:51-100"},{"max": 150, "min": 100, "label": "轻度污染:101-150"},{"max": 200, "min": 150, "label": "中度污染:151-200"},{"max": 300, "min": 200, "label": "重度污染:201-300"},{"max": 1000, "min": 300, "label": "严重污染:>300"},        ]
)
geo.render('全国重点城市AQI预测结果的可视化.html')

GUET第五组2021——随机森林相关推荐

  1. 【数学建模】机器学习预测算法(KNN、随机森林、网格搜索对决策树、支持向量机)(Python代码实现)【2021华为杯】

    目录 1 题目 2 数据集介绍及建模目标 3 问题 4 简化描述 5 Python代码实现 1 题目 乳腺癌是目前世界上最常见,致死率较高的癌症之一.乳腺癌的发展与雌激素受体密切相关,有研究发现,雌激 ...

  2. 最喜欢随机森林?周志华团队 DF21 后,TensorFlow 开源决策森林库 TF-DF

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | 机器之心 TensorFlow 决策森林 (TF-DF) ...

  3. 【ICML2021】随机森林机器遗忘

    来源:专知本文约1000字,建议阅读5分钟 在本文中,我们引入了数据移除(DaRE)森林,这是随机森林的一种变体,可以在最少的再训练的情况下删除训练数据. 考虑到用户数据删除请求.删除噪声的示例或删除 ...

  4. 最喜欢随机森林?周志华团队DF21后,TensorFlow开源决策森林库TF-DF

    来源:机器之心本文约2500字,建议阅读9分钟TensorFlow 开源了 TensorFlow 决策森林 (TF-DF). TensorFlow 决策森林 (TF-DF) 现已开源,该库集成了众多 ...

  5. 随机森林是我最喜欢的模型

    来源:机器之心 TensorFlow 决策森林 (TF-DF) 现已开源,该库集成了众多 SOTA 算法,不需要输入特征,可以处理数值和分类特征,为开发者节省了大量时间. 在人工智能发展史上,各类算法 ...

  6. 动手实操丨基于随机森林算法进行硬盘故障预测

    摘要:业界期望使用机器学习技术来构建硬盘故障预测的模型,更准确地提前感知硬盘故障,降低运维成本,提升业务体验.本案例将使用随机森林算法来训练一个硬盘故障预测模型. 本文分享自华为云社区<基于随机 ...

  7. 2021-10-13企业财务数据风险预警之随机森林

    # copyright by huatianxue 2021年10月13日16:08:25 for my wife # 尝试一下随机森林进行分类 from sklearn.preprocessing ...

  8. Python数据分析案例-利用多元线性回归与随机森林回归算法预测笔记本新品价格

    1.前言 目的: 本文通过多元线性回归与随机森林算法预测笔记本新品的发售价 工具: 语言:Python 3.8 软件:Jupyter Notebook 库:pandas.numpy.matplotli ...

  9. python随机森林回归预测股票,收益率做标签,基本面因子做特征

    从BP神经网络训练模型后,想着换个模型训练训练数据集,于是在SVM和随机森林中选择,最后选择了随机森林.随机森林的原理不在这里做详细解释,有大佬比我讲的要好太多.我仅仅是就这我的代码做一些解释. 导入 ...

最新文章

  1. nginx+lua 配置302 不改写白名单哈希表
  2. 创建ListView的基本步骤
  3. 页面闲置一段时间后,跳转
  4. Git学习文档之一 学习文档-合并分支
  5. 从前台获取的数据出现乱码的解决方法
  6. 《生物信息学》——李霞;;生信概念
  7. 【转】GitHub客户端操作1--仓库相关操作github团队协作流程
  8. python文档字符串和注释的区别,加载模块时,Python文档字符串和注释是否存储在内存中?...
  9. oracle vm 安装win server 2012 错误0x000000C4
  10. “汇新杯”科技+文化艺术专项赛介绍
  11. 对话腾讯金融云胡利明:金融机构数字化,迈进了“深水区”
  12. 不同电脑进入bios按键汇总
  13. 关于C语言中有符号的整数值范围为什么是从-32768~32767以及有符号和无符号区别
  14. oracle的dos登陆口令,ORACLE的DOS操作方式
  15. Python 网页下载文件
  16. 初一计算机课程表,初中课程表空白表格
  17. Unity3D优化:分场景烘焙,综合场景加载
  18. 敏感性、特异性、假阳性、假阴性
  19. LCA(最近公共祖先)(leetcode 236 python C++)
  20. 获取名字首字母,js

热门文章

  1. 【iOS-UIImagePickerController访问相机和相册】
  2. 云展网教程 | 如何将电子杂志发布到微信公众平台?
  3. Windows 系统上查询 NVIDIA GPU 型号、CUDA 版本和驱动程序版本
  4. 集合工具类 以及 几个小面试题(是我保存的)
  5. 拼多多2018校招—Anniversary
  6. eslint 如何单独给一行取消eslint检查
  7. 周末imac机重装win7,装得我抓狂
  8. 群晖DDNS和端口转发等相关讲解
  9. 2021-2027全球与中国韧带连结植入物市场现状及未来发展趋势
  10. CornerNet详解