目录
1、随机森林模型的基本原理和代码实现
(1)集成模型简介
集成学习模型是机器学习非常重要的一部分。集成学习是使用一系列的弱学习器(或称之为基础模型)进行学习,并将各个弱学习器的结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。
集成学习模型有两种常见的算法:
1、Bagging算法
Bagging的想法是采用类似于“民主投票”的方式,即每一个基础模型都有一票,最终结果通过所有基础模型投票,少数服从多数的原则产生预测结果。
原理:从原始训练数据中(假设共有10000条数据),随机有放回地抽取10000次数据构成一个新的数据集(因为是随机有放回抽样,所以可能出现某一条数据多次被抽中,也有可能某一条数据一次也没有被抽中),每次使用一个训练样本训练一个基础模型。这样进行有放回的随机抽取n次后,训练结束时我们就能获得n个由不同的数据集训练的基础模型,也称之为n个弱学习器,根据这n个弱学习器的结果,我们可以获得一个更加准确合理的结果。
1、Boosting算法
Boosting算法的本质是将弱学习器提升为强学习器,它和Bagging的区别在于,Bagging对待所有的基础模型一视同仁。而Boosting则做到了对于基础模型的“区别对待”,通俗来讲,Boosting算法注重“培养精英”和“重视错误”。“培养精英”,即每一轮对于预测结果较为准确的基础模型,会给予它一个较大的权重,表现不好的基础模型则会降低它的权重。这样在最终预测时,“优秀模型”的权重是大的,相当于它可以投出多票,而“一般模型”只能在投票时投出一票或不能投票。“重视错误”,即在每一轮训练后改变训练数据的权值或概率分布,通过提高那些在前一轮被基础模型预测错误样例的权值,减小前一轮预测正确样例的权值,来使得分类器对误分的数据有较高的重视程度,从而提升模型的整体效果。
(2)随机森林模型的基本原理
随机森林(Random Forest)是一种经典的Bagging模型,其弱学习器为决策树模型。如下图所示,随机森林模型会在原始数据集中随机抽样,构成n个不同的样本数据集,然后根据这些数据集搭建n个不同的决策树模型,最后根据这些决策树模型的平均值(针对回归模型)或者投票(针对分类模型)情况来获取最终结果。
随机森林分类模型代码演示如下所示:
from sklearn.ensemble import RandomForestRegressor
X = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
y = [1, 2, 3, 4, 5]
model = RandomForestRegressor(n_estimators=10, random_state=123)
model.fit(X, y)
print(model.predict([[5, 5]]))
随机森林分类模型代码演示如下所示:
from sklearn.ensemble import RandomForestClassifier
X = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
y = [0, 0, 0, 1, 1]
model = RandomForestClassifier(n_estimators=10, random_state=123)
model.fit(X, y)
print(model.predict([[5, 5]]))
2、量化金融 - 股票数据获取
(1)股票基本数据获取
想要搭建机器学习模型,首先得有合适的数据,我们这里首先来演示股票基本数据的获取与股票衍生变量生成。我们会使用:Tushare库,应为它是一个免费的财经数据接口包,通过它我们能够免费地调用历史行情数据来进行分析。其官方地址为:Tushare -财经数据接口包,如果是想查看股价行情数据,网址为:TuShare -财经数据接口包
Python安装Tushare库(可以使用PIP安装法来安装):
1.通过win +R组合键调出运行框,
2.输入cmd后回车,
3.然后在弹出框中输入pip install tushare的方法来进行安装。
(2)Tushare库的基本介绍
1、获得日线行情数据
使用tushare试着调用万科的历史数据:万科的股票代码为000002,start的意思是开始日期,end是最终日期,具体代码如下(注意:如不写start和end,Python会从当天往前3年的数据):
import tushare as ts
df = ts.get_hist_data('000002', start='2018-01-01', end='2019-01-31')
df.head()