python大气模型算法_[学习笔记][Python机器学习:预测分析核心算法][利用Python集成方法工具包构建梯度提升模型]...
参考:
1、《Python机器学习:预测分析核心算法》 P258-P266
1 importnumpy2
3 #from sklearn.cross_validation import train_test_split
4 from sklearn.model_selection importtrain_test_split5
6 #这里是可以用来构建GradientBoostingRegressor模型
7 from sklearn importensemble8 from sklearn.metrics importmean_squared_error9 import pylab as plot
1 #从本机读取数据
2 target_file = open('winequality-red.csv','r')3 data =target_file.readlines()4 target_file.close()
1 #整理原始数据,将原始数据分为属性列表(xList),标签列表(labels)
2 #将各个属性的名称存入names列表
3 xList =[]4 labels =[]5 names =[]6 firstLine =True7 for line indata:8 iffirstLine:9 names = line.strip().split(";")10 firstLine =False11 else:12 #split on semi-colon
13 row = line.strip().split(";")14 #put labels in separate array
15 labels.append(float(row[-1]))16 #remove label from row
17 row.pop()18 #convert row to floats
19 floatRow = [float(num) for num inrow]20 xList.append(floatRow)21
22 #计算属性列表的行数和列数
23 nrows =len(xList)24 ncols = len(xList[0])
1 #将各列表转为numpy数组形式,此形式是RandomForestRegressor的要求
2 #并且这些对象可以使用sklearn的train_test_split构建训练和测试集
3 X =numpy.array(xList)4 y =numpy.array(labels)5 wineNames = numpy.array(names)
1 #构建test集为30%规模的训练集和测试集
2 #random_state设置为一个特殊整数,而不是让随机数生成器自己选择一个不可重复的内部值
3 #这样重复代码可以获得同样的结果,便于开发阶段的调整,否则随机性会掩盖所做的改变
4 #固定random_state就固定了测试集,会对测试数据集过度训练
5 #take fixed holdout set 30% of data rows
6 xTrain, xTest, yTrain, yTest = train_test_split(X, y, test_size=0.30, random_state=531)
1 #Train gradient boosting model to minimize mean squared error
2
3 #对梯度提升法参数设置和调整的建议:
4 #1、除了设置subsample为0.5的情况,其他情况都以缺省值开始训练。
5 #2、模型训练完成后,观察模型在测试数据(out_of_sample, oos)下的预测性能与决策树数目的关系及变化。
6 #3、如果测试数据性能在图的右侧迅速提高,增加n_estimators或者learning_rate
7 #4、如果测试数据性能在图的右侧迅速恶化,则减少learning_rate
8 #5、一旦测试数据的性能曲线在整体都有改善,并且图的右侧基本持平,则尝试改变max_depth和max_features
9
10 nEst = 2000
11 depth = 7
12 learnRate = 0.01
13 subSamp = 0.5
14
15 wineGBMModel = ensemble.GradientBoostingRegressor(n_estimators=nEst,16 max_depth=depth,17 learning_rate=learnRate,18 subsample =subSamp,19 loss='ls')20
21 wineGBMModel.fit(xTrain, yTrain)
运行后显示:
GradientBoostingRegressor(alpha=0.9, ccp_alpha=0.0, criterion='friedman_mse',
init=None, learning_rate=0.01, loss='ls', max_depth=7,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=2000,
n_iter_no_change=None, presort='deprecated',
random_state=None, subsample=0.5, tol=0.0001,
validation_fraction=0.1, verbose=0, warm_start=False)
1 #compute mse on test set
2 msError =[]3 #利用迭代器staged_predict观察测试数据误差与决策树数目的关系
4 predictions =wineGBMModel.staged_predict(xTest)5 for p inpredictions:6 msError.append(mean_squared_error(yTest, p))7
8 print("MSE")9 print(min(msError))10 print(msError.index(min(msError)))
运行后显示:
MSE
0.3155227031463733
826
1 #plot training and test errors vs number of trees in ensemble
2 plot.figure(figsize=(12,8))3 plot.plot(range(1, nEst + 1), wineGBMModel.train_score_, label='Training Set MSE')4 plot.plot(range(1, nEst + 1), msError, label='Test Set MSE')5 plot.legend(loc='upper right')6 plot.xlabel('Number of Trees in Ensemble')7 plot.ylabel('Mean Squared Error')8 plot.show()
运行后显示:
1 #Plot feature importance
2 featureImportance =wineGBMModel.feature_importances_3
4 #normalize by max importance
5 featureImportance = featureImportance /featureImportance.max()6 idxSorted =numpy.argsort(featureImportance)7 barPos = numpy.arange(idxSorted.shape[0]) + .5
8 plot.barh(barPos, featureImportance[idxSorted], align='center')9 plot.yticks(barPos, wineNames[idxSorted])10 plot.xlabel('Variable Importance')11 plot.subplots_adjust(left=0.2, right=0.9, top=0.9, bottom=0.1)12 plot.show()
运行后显示:
python大气模型算法_[学习笔记][Python机器学习:预测分析核心算法][利用Python集成方法工具包构建梯度提升模型]...相关推荐
- python模型预测_《Python机器学习——预测分析核心算法》——1.5 构建预测模型的流程...
本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第1章,第1.5节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...
- python分类预测_《Python机器学习——预测分析核心算法》——2.6 多类别分类问题:它属于哪种玻璃...
本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.6节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...
- 《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄...
本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.4节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...
- 《Python机器学习——预测分析核心算法》——2.2 分类问题:用声纳发现未爆炸的水雷...
本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.2节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...
- 惩罚线性回归---Python机器学习:预测分析核心算法
惩罚线性回归 参考教材:Python机器学习预测分析核心算法,书中代码较为过时,借用sklearn等工具包进行了重写. 实践中遇到的绝大多数预测分析(函数逼近)问题,惩罚线性回归和集成方法都具有最优或 ...
- 《Python机器学习——预测分析核心算法》——2.5 用实数值属性预测实数值目标:评估红酒口感...
本节书摘来异步社区<Python机器学习--预测分析核心算法>一书中的第2章,第2.5节,作者:[美]Michael Bowles(鲍尔斯),更多章节内容可以访问云栖社区"异步社 ...
- python数据预测模型算法_Python机器学习 预测分析核心算法
第1章关于预测的两类核心算法 1.1为什么这两类算法如此有用 1.2什么是惩罚回归方法 1.3什么是集成方法 1.4算法的选择 1.5构建预测模型的流程 1.5.1构造一个机器学习问题 1.5.2特征 ...
- python数据预测模型算法_《python机器学习—预测分析核心算法》:构建预测模型的一般流程...
参见原书1.5节 构建预测模型的一般流程 问题的日常语言表述->问题的数学语言重述 重述问题.提取特征.训练算法.评估算法 熟悉不同算法的输入数据结构: 1.提取或组合预测所需的特征 2.设定训 ...
- oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...
天萃荷净 select max(id),min(id) from table优化,分享开发DBA需求,在SQL语句查询最大值.最小值数据时的优化方式案例 1.查看数据库版本 SQL> selec ...
- 文本聚类分析算法_读书笔记(8)kmeans聚类算法及应用
1.问题导入 假如有这样一种情况,在一天你想去某个城市旅游,这个城市里你想去的有70个地方,现在你只有每一个地方的地址,这个地址列表很长,有70个位置.事先肯定要做好攻略,你要把一些比较接近的地方放在 ...
最新文章
- 还不错的Table样式和form表单样式
- LeetCode 75. Sort Colors--Python解法
- Ticker 未释放导致的 CPU 占用过高
- 函 float *search(float(*pointer)[4],int n)
- PostgreSQL的postmaser的fork的学习体会
- hiredis源码分析与简单封装
- shell 循环控制语句
- 计算机科学与技术和信息与计算科学区别,信息与计算科学和计算机科学与技术有什么区别...
- C++11:原子交换函数compare_exchange_strong
- 国内流行商业网站分类最新排行榜(2008完整版)
- C#从图中截取部分图片 代码实现截图
- 知识图谱在应用过程中,主要面临哪些困难?
- 数论——Baby Step Giant Step大步小步算法
- 信息系统项目管理师计算题(期望值)
- 无线充qi2来了,快来了解下~
- matlab入门学习资料
- 实现从淘宝定时抓取订单数据、打印电子面单并保存到ERP表中!
- 使用perl脚本语言处理文本文件
- 导入的OSM地图如何快速设置道路信息
- 对于雷诺数,你了解多少?
热门文章
- python中怎么把每一个字符用、隔开_python 实现将list转成字符串,中间用空格隔开...
- 基于 ZNS 模式搭建并运行 FEMU
- ibm tivoli_Tivoli Access Manager信任关联拦截器(TAI ++)
- Linux内核模块最简驱动
- [LeetCode] Largest Perimeter Triangle
- 【Linux系列文章】克隆虚拟机与常用问题
- Distributing Ballot Boxes HDU - 4190【详细翻译】【贪心、二分】
- 华钜同创:拯救你的亚马逊销量!你需要知道这些技巧
- 服务器使用CDN加速的优劣势分析
- 前端处理订单支付超时