您的位置:

python农粮数据集(农作物数据集)

本文目录一览:

数据来源与处理

区域地壳稳定性基础数据来源于中国地质科学院地质力学研究所主编的《中国区域地壳稳定性图(1∶500万)》,1997年由地质出版社出版[19]。基于ArcGIS平台,将中国区域地质稳定性图数字化,并对栅格化后的数据统计分析。

断裂活动性基础数据来源于邓启东主编的《中国活动构造图(1∶400万)》,2007年由地震出版社出版[20]。

海拔与地表起伏度基础数据来源于美国太空总署(NASA)和国防部国家测绘局(NIMA)联合测量的数字地表高程模型SRTM DEM,数据精度为3弧秒(90×90m),由中国科学院资源环境数据中心提供。基于SRTM DEM数据,利用ArcGIS空间分析模块Spatial Analyst中邻域统计工具Neighbor-hood Statistics,以4×4像元的矩形作为模版算子对整个研究区进行遍历计算,分别提取各区域最高海拔和最低海拔数据,运用栅格计算器calculator,将两者求差,得到一个新栅格图层,其每个栅格的值是以这个栅格为中心的确定领域的地形起伏度值。

植被覆盖度基础数据来源于2009年全球旬NDVI数据集,空间分辨率:0.05°×0.05°,坐标系统:WGS1984,NDVI值域为[-1,+1],由地球系统科学数据共享平台提供。旬NDVI数据均通过国际通用的可以进一步消除云、大气、太阳高度角等部分干扰的最大合成法获得,利用像元二分模型估算植被覆盖度。

岩溶发育程度基础数据来源于中国地质调查局发展研究中心“区域地质调查跟踪与部署研究项目”(1212011121130)。

地表湿润指数基础数据来源于1961~2013年中国地面降水月值0.5°×0.5°格点数据集(V2.0)数据、1961~2013年中国地面气温月值0.5°×0.5°格点数据集(V2.0)和日照时数数据,由中国气象科学数据共享服务网提供。地表湿润指数计算公式为:

W=P/ET0

式中:W为湿润指数;P为降水量(mm);ET0为潜在蒸散量(mm)。ET0采用Thornthwaite模型计算。

土壤可蚀性基础数据来源于世界土壤数据库(HWSD v1.1),由地球系统科学数据共享平台提供。数据比例尺为1km格网,数据格式为Geotiff,时间为2009年。该数据库由联合国粮农组织(FAO)、国际应用系统分析研究所(IIASA)、荷兰ISRIC-World Soil Information、中国科学院南京土壤研究所(ISSCAS)、欧洲委员会联合研究中心(JRC)于2009年3月共同发布。数据库提供了各个格网点的土壤类型(FAO-74、85、90)、土壤相位、土壤(0~100cm)理化性状(16个指标)等信息。采用在我国广泛使用的EPIC模型,利用土壤有机质和颗粒组成因子(粘粒、粉粒、砂粒)进行估算土壤可蚀性因子K。

土壤侵蚀强度基础数据来源于中国1∶10万土壤侵蚀强度等级图(1997~2000年),由地球系统科学数据共享平台黄土高原科学数据共享平台提供。数据内容覆盖1997~2000年1∶10万各省土壤侵蚀强度等级数据,包括水力侵蚀、风力侵蚀、冻融侵蚀、重力侵蚀、工程侵蚀5个一级类别;微度、轻度、中度、强度、极强度、剧烈6个二级另类别,由第二次全国遥感水土流失普查获得。

社会经济数据采用的是全国千米网格GDP分布数据集和全国千米网格人口分布数据集,由国家科技基础条件平台:地球系统科学数据共享平台()提供。

土地覆被数据采用的是地球系统科学数据共享平台提供的2009年全球1km土地覆被数据集(GlobCover)。GlobCover是欧洲空间局(European Space Agency)建立的全球土地覆被数据集,数据集是根据UNLCCS分类标准,综合采用监督分类和非监督分类两种方法对多时相的MERIS L1B数据进行分类而得到的。GlobCover数据集空间分辨率5°×5°。根据需要,本书将土地覆被类型合并为耕地、林地、草地、水域、未利用地、城乡工矿居民用地等6种土地覆被类型。

本书栅格图层统一重采样为1km×1km的格网,各图层投影参数统一设定为:Projection: Albers;False_Easting: 0.000000;False_Northing: 0.000000;Central_Meridian: 105.000000;Standard_Parallel_1:25.000000;Standard_Parallel_2: 47.000000;Latitude_Of_ Origin: 0.000000;Linear Unit: Meter(1.000000);Geographic Coordinate System: GCS_WGS_1984。

HWSD土壤数据集(v1.2)的土壤类型代码

HWSD土壤数据集(v1.2)的土壤类型代码数据来源于联合国粮农组织(FAO)和维也纳国际应用系统研究所(IIASA)所构建的世界土壤数据库(Harmonized World Soil Database version 1.1 )(HWSD). 中国境内数据源为第二次全国土地调查南京土壤所所提供的1:100万土壤数据。 该数据可为建模者提供模型输入参数,农业角度可用来研究生态农业分区,粮食安全和气候变化等。数据格式:grid栅格格式,投影为WGS84。采用的土壤分类系统主要为FAO-90。

Python数据分析(八):农粮组织数据集探索性分析(EDA)

这里我们用 FAO(Food and Agriculture Organization) 组织提供的数据集,练习一下如何利用python进行探索性数据分析。

我们先导入需要用到的包

接下来,加载数据集

看一下数据量,

看一下数据的信息,

我们先来看一下variable,variable_full这两列的信息,

看一下统计了多少国家,

看一下有多少个时间周期,

看一下时间周期有哪些,

我们看一下某一列某个指标的缺失值的个数,比如variable是total_area时缺失值的个数,

我们通过几个维度来进行数据的分析:

我们按照上面的处理继续,现在我们想统计一下对于一个时间周期来说,不同国家在这个周期内的变化情况,

我们也可以按照国家分类,查看某个国家在不同时期的变化,

我们还可以根据属性,查看不同国家在不同周期内的变化情况,

我们还可以给定国家和指标,查看这个国家在这个指标上的变化情况,

我们还有region(区域)没有查看,我们来看一下:

通过上图可以看出,区域太多,不便于观察,我们可以将一些区域进行合并。减少区域数量有助于模型评估,可以创建一个字典来查找新的,更简单的区域(亚洲,北美洲,南美洲,大洋洲)

我们来看一下数据变化,

紧接着上面的数据处理,我们重新导入一下包,这次有一些新包,

我们看一下水资源的情况,

通过上图可以看出只有一小部分国家报告了可利用的水资源总量,这些国家中只有极少数国家拥有最近一段时间的数据,我们将删除变量,因为这么少的数据点会导致很多问题。

接下来我们看一下全国降雨指数,

全国降雨在2002年以后不再报到,所以我们也删除这个数据,

我们单独拿出一个洲来进行分析,举例南美洲,我们来看一下数据的完整性,

我们也可以指定不同的指标,

接下来,我们使用 pandas_profiling 来对单变量以及多变量之间的关系进行统计一下,

这里我们要计算的是,比如

我们按照 rural_pop 从小到大进行排序,发现的确有几个国家的农村人口是负数,

人口数目是不可能小于0,所以这说明数据有问题,存在脏数据,如果做分析预测时,要注意将这些脏数据处理一下。

接下来我们看一下偏度,我们规定,

正态分布的偏度应为零,负偏度表示左偏,正偏表示右偏。

偏度计算完后,我们计算一下峰度, 峰度也是一个正态分布,峰度不能为负,只能是正数 ,越大说明越陡峭,

接下来我们看一下,如果数据分布非常不均匀该怎么办呢,

上图是2013-2017年国家总人数的分布,通过上图我们发现,人口量少于200000(不考虑单位)的国家非常多,人口大于1200000的国家非常少,如果我们需要建模的话,这种数据我们是不能要的。这个时候我们应该怎么办呢?

通常,遇到这种情况,使用 log变换 将其变为正常。 对数变换 是数据变换的一种常用方式,数据变换的目的在于使数据的呈现方式接近我们所希望的前提假设,从而更好的进行统计推断。

接下来,我们用log转换一下,并看一下它的偏度和峰值,

可以看出偏度下降了很多,减少了倾斜。

可以发现峰度也下降了,接下来我们看一下经过log转换后的数据分布,

虽然数据还有一些偏度,但是明显好了很多,呈现的分布也比较标准。

首先我们先来看一下美国的人口总数随时间的变化,

接下来,我们查看北美洲每个国家人口总数随着时间的变化,

这个时候我们发现,一些国家由于人口数量本身就少,所以整个图像显示的不明显,我们可以改变一下参照指标,那我们通过什么标准化?我们可以选择一个国家的最小、平均、中位数、最大值...或任何其他位置。那我们选择最小值,这样我们就能看到每个国家的起始人口上的增长。

我们也可以用热度图来展示,用颜色的深浅来比较大小关系,

接下来我们分析一下水资源的分布情况,

我们可以进行一下log转换,

我们用热度图画一下,

连续值可以画成散点图,方便观看,

我们来看一下随着季节变化,人均GDP的变化情况,

相关程度:

相关度量两个变量之间的线性关系的强度,我们可以用相关性来识别变量。

现在我们单独拿出来一个指标分析是什么因素与人均GDP的变化有关系,正相关就是积极影响,负相关就是消极影响。

当我们在画图的时候也可以考虑一下利用bined设置一下区间,比如说连续值我们可以分成几个区间进行分析,这里我们以人均GDP的数量来进行分析,我们可以将人均GDP的数据映射到不同的区间,比如人均GDP比较低,比较落后的国家,以及人均GDP比较高,比较发达的国家,这个也是我们经常需要的操作,

做一下log变换,这里是25个bin

我们指定一下分割的标准,

我们还可以看一下人均GDP较低,落后国家的内部数据,下面我们看一下内部数据分布情况,用boxplot进行画图,

对于这部分的分布,我们还可以统计看一下其他指标,如下图所示,我们还可以看一下洪水的统计信息,

请问谁有复活节三句半的文字资料?(这两天就需要用的,多谢啦!)

XX村,真正的永生神的赞美,而不是非常熟悉的程序,请大家多多包涵。

阶段站的喜悦,兴奋之情难以开口问我们说什么,三句半。

听着,听着,但记住这一点,如果你不能集中精力,不能听到。

耶稣来到这个世界的福音,为要拯救罪人一块你尽快悔改,并迅速。

耶稣的医疗服务创造了一个奇迹,人们的精神和快件的时候真的很惊讶。

33岁的被钉在十字架上显着不同的宝血洗净一切的罪,我真的不值得。

他钉在十字架上,三天复活,先知是好的,坐在宝座上,与真理,复活和升天。

天堂,天堂在我们的家庭力量雄厚,有“圣经”的天堂,是不??会说谎的。

天堂千里,多维数据集的长度和宽度的天国之门宝石墙。

天不作难,坐飞船太慢了,只要耶稣的话,一眨眼的功夫。

天堂是不寻常的,港区的音乐天使唱歌,一桌丰盛的酒席,我的口味。

不断流动的生命之水,在12个月的生活果树上双方的气味。

太阳和月亮,天上的荣耀,也没有进一步的疾病和死亡,常健康。

天堂是一个很好的地方,这是我们的家,只要信心在耶稣,悔改。

聪明的童女迎新郎,油充满了光,准备看主面,阿门。

三句半来完成,这是很好的建议,而不是赞美,再看看。

扑(4):经典三句半

1,我们四个人玩,有趣的手掌鼓,具有讽刺意味的???,不要哭

2,在西北五省游戏清华大学,兰州大学TKK外国人,我们的评价是非常好的

3榆中校区是真的宽敞,绿色,绿树成荫的校园建筑之旅住宿是很好的教学楼,厕所电话和电视网络

5,超市的苹果是甜的和坚定的,价格是有点贵,结果逛了一圈明亮的

BR BR /

宽敞的星级酒店累人的到队列/ 6,小区域医院,服务态度也不好,药物的种类是没有疾病的情况下,最好是

/亚特兰大总部转一转,很常见的,下降的阴影的角落嘘声!

8校园是非常漂亮的女孩是不容易被发现,更何况个子不高,她是一个很好的人!

9,真的累了很长的路要走鞋浪费每餐跑断腿的减肥

10个女孩去食堂部分零食,你可以看到各种口味的吃了一遍又一遍,你只是吃

轮胎的牛肉面11,防盗门,您的安全,以防止一季度,你想要去的海关行政

12也难以重要的疯狂英语李杨赞学校是如此受欢迎,不怕害羞的天才嗷嗷叫

13,在今天上午的例行操作必须早黑灯瞎火的跑了一眼在旁边无一下跌, BR /“14,有些学生真的很不错,在黎明之前去上课,卷子存储多个表占坐

15,人人都说大学挤这一点,我们不同意广阔的校园法律提三亩山

16雨军事训练交叉很酷的大汗淋漓,如果不是在床上

17,联谊寝室,吃一个人的游戏,一个女人是不是累了,男孩总是觉得有点不对劲太多的钱

18,我们说,这是不完全正确的,也得罪

猫现在已准备就绪退(5):

(足协)

足协:中国足球中国足球经典三句半老板

俱乐部:我问你害怕 BR /

球员:不精的人关心他

球迷继续批评

2(超)

足协:新联盟被称为超级

俱乐部:尚未开始混乱

球员:牛奶母亲

球迷的黑色和白色的猫吗?

3(A)

足协:两个联盟中的一个

俱乐部:重命名绝对的黑色假的?

玩家:我的收入也不能少

球迷:黑盒子

(假球)

足球协会:假球需要证据

/俱乐部:足协通报比

球员:白花花的银子谁不

球迷:所有

5(黑哨)

足协:俱乐部黑哨俺就抓

:一切都只是一个西瓜吗?

球员:什么是地狱,你吹啥啊

风扇(联盟):罂粟

足协联盟基础

俱乐部:不幸的是,足协爱赌博 BR /

/

球员:间歇性的,你踢啊球迷:没谱!

7(俱乐部)

足协:你是我所有的下属

俱乐部:我的法律,我自己

/球员:球,,依靠我踢

球迷:国家仓鼠

8(IOC)

足协:提起奥运泪涟涟

俱乐部:

玩家责怪球员太多的钱:人是一个玩命踢

球迷:犯贱...... / 9(阿里汉)

足协:外国人阿里汉

俱乐部:“行,还得看

播放器为什么西班牙

球迷无法忍受看到

10(中国队)

足协:亚洲杯追求冠军

/黄金

玩家具乐部:土壤签署奖金肯定是不年轻了,老

球迷:几两几斤几?

11(限薪)

足协文件安科发出

俱乐部:泥泞的水不能搅拌

/球员:我是谁限薪,谁是你的生活

球迷:投机取巧

12(闫珠利率)

足协:他说我的头

俱乐部:躺在空说,眼泪哗哗的移动非常

玩家的球迷

:傻

BR / 13(世界杯)

足协:善恶进入世界杯

俱乐部的几个鸭背背

球员:罗纳尔多·迪尼奥地利衣服改变BR /

球迷伤心

14(米卢)

足协:老男人有一手

俱乐部:他急忙保持运行

球员:他能进入世界杯

球迷:真逗

15(长春亚泰)

BR /足球协会:

失败,他们不会做的:黑色的行规是无情

播放器:使劲部门

球迷:怎样才能公平

16(反射)

足协:失败后的反思

俱乐部的苦果谁吃

球员:灯红酒绿发挥足够的IT

粉丝:17(女)

足协感谢人死亡

女子足球...... / a

俱乐部:无论是燕子的头哭

播放器是:通常是你

球迷:

足协

a

18(Konghan

播放器):谁说男人Konghan

俱乐部不亮:叫道:额外的奖励尝试

球迷:吓死

19(培养年轻人)

足协:这件事情是非常重要的... / a

俱乐部:光

球员的唇直跳投票:钱或

球迷对我说:你高调

足球协会

(足球)

:这个任务是非常光荣

俱乐部:如何去像蠕虫一样

了辉煌的球员值得几个钱啊

球迷:

毁了扑(6):

回复:要打开党

B:你回到舞台

C:和金锣打鼓

D:充电口

A:周末也起了个大早作为

B:穿着明星高中的 BR / C:课间休息干点啥

D:睡眠

A:加班至90.1

B:有没有工作,渴望

C:纸堆腕表完成

D:不要偷懒!

A:整天连轴转

B:不这样做的洗衣做饭

C:感谢我的另一半

E:永远爱你!

A:02课程结束:03被埋没的干

C:04每天成果的希望

D:保??罗?帮我过线

A:IT牛讲课

B:通道路上的吝啬

C:学会提出更多的建议

D:不要害羞 BR / A:

学生白骨精B:白领骨干和精英

C:多点沟通和互动

D:所有的乐趣!

A:学院一直在发展

B:为学生团团转

C:有什么新的举措

D的要求学院:网站

A:教师真的很不错

B:认真,负责的顶级

C:眼睛的孩子,我不得不说

D:老师,辛苦!

A:快进到学习了一年多

B:多少欢乐和持久

C:未来的毕业测试他们的技能

D:大控股我! 。所取得的成就

了一定的成绩。“ (三句半)酒店

美食吃一遍又一遍,

出现头晕,耳热酒酣

---什么树!

成果,麻将游戏,

卡已满,失去了更多更好的,有没有触摸

---藏拙。

圆珠笔头的成就

如Mo软心泼墨水

如果太少的数字圈

---高达蒂姆。

成果,在会议之间,制定措施,以文件章,

各级---谁做的?

成就一个红包,

领先的家庭,为了找到问题的答案,

机会参加婚礼和葬礼

---更多发送。

成就流行的修辞风格,

的临时混合以良好的信誉,

认真研究它,

---空!

产前和产后护理(三句半)

我们四个人来,

锣鼓家伙敲一,我不知道说什么是错的。

尝试。

农田

粮食生产的高峰期,

无尽的人口增长并没有增加,

差。唯一的孩子是一个很好

根据国家的有关政策,在

养老保险,

不坏。

给孩子吃,喝,

妻子,修房,

盲目的生殖损害的,

罪。

阿尔茨海默氏症,而不是婚姻,

近亲繁殖的后果,

非法婚姻封锁严,

检查。

党的政策

提高人们的生活

每家每户成为一个

舒适。

一对夫妇一个孩子

少生孩子,节省更多的钱

为祖国的建设,贡献

大。

计划生育是国策,

少生孩子CAFE DE珊瑚,

的重男轻女的旧观念,

来摆脱。

营养的儿童生活丰富的知识

环境优美,不孕不育新苗

联营公司。

多子多福的旧观念的

担心吃担心

磨损差异不吸收这个教训,

危险的的。

一个新的时尚,新的社会

出生的男孩或女孩

男到女家落户,

真棒。

的计划生育政策,

品质的,人口的增加,

少了,但多没用的,

多好。

计划生育优生宝宝,

爱她的丈夫和妻子像蜜一样甜,

要求召开的党的指导

少生孩子。

今天的观众很多钱,

男人,妇女和儿童,领导能力,

如果不周到,

更多的指导。

三句半 - 咱士兵

局中的明星很多老师,今晚我们必须跑一跑,和你看到的,以及

语音和没有前面的三句半,不管时,他说,一点都没有。

生活是很不错的,考试突击测试数据凑错了,重做,

其实,我们不懒,天明去上学,占得一席课本上的存储多个表;

打开英语书背,整个身体也感觉不到合适的,然后睡在宿舍里开了

进入休眠状态,直到的天Ganghei千年门口排队一日三餐,吃减肥。结束

一眨不眨的眼睛,什么都没有学习怎么过临时的热捧头发热,淡淡的。

为什么繁忙的便衣起飞的整个行李改变制服,

删除八达岭长城,的教练走进军营,从不当军队

,收集清晨起身,急急忙忙队站,总是冒泡报告;

烈日满头大汗,刻苦的训练和意图,鹅打得非常艰苦痉挛;

晚餐非常积极的军事训练,一顿饭很快盆碗洗多水少,干清洗

栈一床被子好,累了,明天叠被侧身睡不下的成本和努力,我发现

3天洗洗澡,冲进小喷嘴,清洗衣服不能发现有趣的;

伟大的军营歌曲,二连战获奖歌曲的幸福九 - 九

流血流汗不流泪削减和淡出的肉没有落后,摸爬滚打全不畏,人民军队;

在队列中,有计划,给他们一个机会,不要浪费宝贵的战略撤退点;

这是一段

我们四个人站在阶段,鼓

锣没有三句半

(铛)麻烦!

早叫早的公鸡扬声器

无法运行,操作延迟,

终于

(clang!)!肉的

家禽

每个茅台三箱亿元,终端补贴,随便吃,

(clang!)废话!

服务态度黑社会,

面包半拉

(clang!)的真黑食堂拥挤的大米累人的!

62米32

砂接缝的面包葛齿,在

饭菜变味你去退任八嘎

(铛) 过去的好时光,四年的大学

喝酒泡妞麻将

周六,无处可去,

(嘿!)视频!

书价飞涨,繁重的功课学习厌烦了你,

点蜡熬夜,化妆,

铛!

教室阴潮不亮,占领一个的座位点(儿童)没有一个地方

东方商厦明年,

(clang!)不堪忍受!味道

音乐聊天打瞌睡没有怎么办?

(clang!)一份!

毕业分配到

跨省您要支付的部分,

也是一个很好的出路,

(clang!)考研真的很难!累了

教师努力工作,

教育的灵魂之美,

其中考试没考

(嘿!)惭愧!

吃的喝的葡萄酒消费量高,一个

食物的味道

校园酒店太暗而不能玩

(clang!)!

上面所说的,

理论校园完成校园与错,?

铲子呢?

(clang!)社会!

没有犯谋杀

肝不对劲

你的胃携带的的尸体远,

(Hmm!)支付!

第一任行政司司长,很多

群众到底听谁的呢?

终于统一

(pan!)会议!

河滨儿童

两个人吃的有滋味的孩子,

不开灯,在黑暗中跳动

(PAN),整个事情!

站健康是非常紧张的,

扔果皮处以罚款

你为什么要10?

(clang!)吐“铁饭碗”的国有单位

天的破产是非常差的,

一起吃大

(铛!)的老板!

的豪华城市有一个真正的嗡嗡声,两毛

厕所找不到!

不要担心你担心多少

(嘿!)/准备今晚的晚会,

好节目

(clang!)撤退!

亲爱的朋友们,新年是指日可待,我们几个参与的乐趣,好哭的!

通常是太累了困扰压力奖金太少,竞争有更多的机会更小的昏了过去!

工作流程,真闹心,老板生气扣奖金,为生存而挣扎的出路!

你看起来更憔悴,脸色苍白,乌黑的眼睛是黑色的,他是一个工作狂,你是谁!

每天昏昏欲睡签署了一份非停止,结束加班,赶紧跑睡觉!

一个月,并期待着获得资金,这些钱只够填补她的肚子,做梦是脂,纯天然,丰富的!

家庭和夫妻吵架,其实,不能只怪的文章,文章和更多的钱,这些钱是这么好!

独立作为一个陌生人在异乡,孤独,寂寞,每逢节日,我们应该努力被折磨!

工作一下午,我煮方便面,我很想念很坚硬的土壤!

中午打饭的人太多了,我看到了头,但没有锅。啥时候排到撤!

原来的餐点,大家都知道,一个良好的心情,突然同志要减半FAINT!

三天两头市中心发热,头晕,视力模糊,座头鲸都知道,如果没有体检,三高!

肝细胞脂肪变性和一个较小的机构体重增加过少的运动,和运动活动,也建立更多,好吗!

心情不好的时候少的皱纹多皱眉引进对象,运行,帮助!

除了工作就是睡觉,吃饭,撒尿单单调的节奏,不要笑!

很高兴看到大家都笑开颜下表演,恭祝大家新年快乐,再见!

长期繁荣铛一斤,一斤,长期的繁荣铛磅,长期的繁荣,英镑的长期繁荣英镑,咚的一声!

自由贸易区?的家人,当然,你放弃家庭,兄弟和姐妹,快乐钟,哈哈。 :)

从此定居在免费版本中,每天早上急于浏览器打开电脑前的鞋穿反:(

要问什么样的自由,好男人!总计不断,偶尔有人来捣乱,打翻了!:

环境很漂亮,有才华的美国一个人扔深情的羡煞,口水?:P

在 /“无言的旗帜始终遵循转移的叙述,,有时提醒的意见,我爱你。:

齐的兄弟和姐妹心,力挽狂澜的危险,一直在寻找的家庭感到不舒服一目了然?:)

免费医疗,禁止写在墙壁上的混乱,随地乱吐痰,鄙视!

英镑的长期繁荣和长期繁荣磅铛铛磅重的长期繁荣,英镑的长期繁荣,的长期繁荣磅铛!

MM的照片,难坏了的历史最悠久的老人们,它是没有生命的光泽丑陋。 (

,砸,抢,能写收回去壮志未酬,叹了口气,看着我的妹妹还取决于在月球上?:

贻贝一直不敢水的赌徒,这是不是一个赌徒,从那时起,当掌柜,踌躇满志?:P

rechmond幕后,不戴戒指表面不暴露,和谁去掀起红盖头,瞅瞅?:/

凤凰不死的老兵偶像厨师行了,不用做,只要你敢公布就死定了!

/晏淤梦想爱梦想,做你的人龙,凤,龙和凤梦幻舞步,共同:)

英镑英镑的长期繁荣铛龙咚锵磅的长期繁荣和长期繁荣咚咚咚咚,咚的一声长!

领导人唱作家,文学人才是大如斗,项目继续表一表,离开了吗?:P

排名很难虾泄漏我记得你呢?送酒。 :P

作家水手和杂项两个是什么是什么是什么,不打?

条贯通古往今来的收益和损失的大濮存昕也是不确定的,如果不是,天都峰:(

说到侵入写下半身假的,真正的,你偷偷饱眼福?人!:BR / 个人感情是好是坏,意识流是非常糟糕的,的成品酒写入咖啡,我的爱!:

政治北方和南方,东方和西方,自然和人为灾害,我是穷人,我捐的钱印泥?梦?:

/小说诗歌也欢迎,字字珠玑足够的水平,两个读汗ing:(/ A

的嘣嘣隆咚锵,咚咚,长期繁荣的长期繁荣铛磅磅重的长期繁荣,长期繁荣磅的锅!

如何去免费新年已经计划今年年底江东扎实工作报告,股息!

谁说我就不多说了股息对我的爱一直偷懒了,为何在白天,但不是吗?夜班。:|,春来自希望的中国新年好运身体小心喝假酒放倒?:(

老人从未受到黑客的攻击,只是想有一个真正的展览。晕倒了一大闪光...... /

英镑龙咚锵隆咚锵,咚咚的长期繁荣和长期繁荣,英镑英镑的长期繁荣铛英镑!

昨晚,我唱三句半,潜水在现场看到,华杰,我问MM可能是太忙了?珍娜??:)

三一重工线程最勤奋后,看到真正的有能力持有美国是谁?小发夹?:)

伤心的不是蓝色的眼泪,为什么碧蓝如玉的眼泪吗?因为海决堤,灌溉,! :)

错误的爆炸声恶作剧,水不闪回以保持四窜的老人,叫凄惨的呢? }:

雪莲,如果新的外语密码是假的,问被誉为嘿,啊哈哈? :)

笑嘻嘻的,潇洒的风度没有敌人,这样一个美妙的GG,下降一笑而过? :)

可见的令人难以置信的美丽的WTA乘客在哪里可以找到?也决定了,我泡在一点点。 (

美丽的色彩,日餐,但遗憾的是没有人看到他的脸的老头走近过奖了,找到一个。:(

/磅长长期繁荣的热潮铛,铛磅的长期繁荣,英镑,长期的繁荣,香港的长期繁荣,英镑,英镑铛!

WLS的异性恋世俗的,九天仙女做凡人,让每个人都喝醉了,失去了灵魂唱腔的球迷吗?

一个西周时期的古董,背心款式,优良品种,晃老人股份作战垫汤姆?:( / /碎草咪咪爱嘟囔着,没有一个人敢结婚的女儿,只有傻大胆的老鼠。:)

漂亮的小发夹放弃了白天和晚上的互联网,提示失败的兄弟频率的骚扰,这是值得:)

既可以用来建立高层建筑,也可以用来拍摄头的事的人都知道,砖?:}

忽忽悠悠忽忽油,突然一个长期的,长期忽悠乎乎的是什么?忽悠忽悠忽悠!

除夕在水面上,一个80岁的新郎说废话吗?长?:)

你卑微的仆人,总是大家山区农村花都,小楼,占主导地位的“空中国王”慎独:

/长期繁荣铿英镑英镑隆的咚锵,英镑的长期繁荣,香港的长期繁荣,英镑,英镑咚的一声!

看看她千百度,玉兰花园的树香,混淆香香好闻莫贪婪气味:(

威望动不动地颤抖冷,冷,冷麒麟,做更多的运动防感冒,请注意:{

功能更熔点越南,厚厚的黑色,而不是厚黑学,死缠烂打Kedang,必须的!

开心罗汉是一个和尚,爱酒爱吃肉爱的姑娘说,保持继电器演示:}

叶垭嗯飘飘飘,如叶,伏特加酒似火烈,给你带来温暖感谢你呢? )

Ousuomiluo杨女孩礼服背心T台秀表演深深一鞠躬 - 三江源

雨后的阳光玫瑰红,胜利局灶性弱的晚风,人不能明天再说 - 爱侬:)

宽松的年轻女孩鬼小丫,不伴夜间窗口家政服务,抓住你能打败可怕?}:

南门车辆南瓜车,慢慢地唱悲伤的歌,我问你哭什么样的车?没辙了:(

普洱茶哪个牌子最好

如今的普洱茶市场,虽然不能说如日中天,却也势头正猛。从云南省老国营四大茶厂开始,发展到如今的普洱茶品牌遍地开花,普洱茶确实经历了十分漫长的成长过程。伴随着消费者品饮需求的多样化,各大普洱茶品牌如雨后春笋般出现在市场上。然而,品牌虽多,口碑却参差不一,产品差异等因素直接影响着各品牌的发展。今天我们就一起盘点市场上那些脱颖而出的普洱茶品牌,看看消费者口口相传的品牌都有哪些?

一、大益

大益集团的前身为云南省原国营茶厂之一的勐海茶厂,这个光辉的历史前身让大益集团添色不少。近年来,大益的茶品在市场上得到很大的反响。它成熟而稳定的制茶工艺,尤其是在熟茶的发酵方面颇有建树。比较魔性的是,大益出产的产品既能满足大众的品饮需求,在高端茶的发展方面也毫不示弱。如我们熟知的“7542”熟茶和“7542”生茶,因物美价廉,基本满足了大众的要求,颇受欢迎。在高端茶方面,大益的热门茶品也不少,如金大益、轩辕号,以及最近大热的“千羽孔雀”等,都是如今普洱茶市场上被炒得很热的产品。

二、下关

如今的下关沱茶集团,前身是成立于1941年的云南省国营茶厂——下关茶厂。既然以“沱茶”二字作为该集团名字的元素之一,可想而知下关的沱茶最为出名。其中创制于1902年的“松鹤”下关沱茶,是拥有百年历史的知名茶品。关于下关的沱茶,这里还有句俗语,“生喝下关,熟饮勐海”,这里的下关指的便是“下关沱”。此外,下关的一大特色便是 “烟味”,有些老茶客的眼里,烟味是普洱茶的标配,因此烟味也成了下关的一大标签。近年来,比较热门的产品有:2009绿大树十年经典回顾、下关五大金刚以及不久前发布的蓝印等。

三、陈升号

“陈升号”是云南勐海陈升茶业有限公司于2009注册成功的商标,发展至今,已成长为普洱茶中大树茶领导品牌,该商标于2011年被认定为云南省著名商标。俗话说,“班章为王”,它的独特与霸气使之别具一格。也因此,班章造就了陈升号,陈升号以班章闻名。在众多产品之中,老班章是陈升号的标杆产品,此外,陈升号的霸王青饼和陈升一号也令众多茶友竞相追捧,且好评不断。

四、福今

作为“班章普洱茶”概念的初创者,福今的名声自然不会弱势。令福今名声大燥的是“大白菜”和“孔雀”班章等生态系列普洱茶品。虽然在“大白菜”和“孔雀”初创期间是在勐海茶厂与兴海茶厂的生产车间制作的,但并未丝毫影响何氏兄弟创立福今的念头。而后福今自立茶厂,推出福今普洱茶茶品,生产出标杆产品茶王青饼及特制系列,受到了消费者深深的喜爱。

五、澜沧古茶

澜沧古茶的前身是始建于1966年的景迈茶厂,成立至今,一直以芒景·景迈山的千年万亩古茶园和邦崴古茶树群为原料。作为高端熟茶的鼎鼎大名者,澜沧古茶俘获了不少熟茶爱好者的芳心。乌金号、0081和0085都是澜沧古茶的熟茶明星,独得消费者芳心。

六、斗记

斗记的好口碑首先来源于斗记品牌创始人陈海标,仅仅是为了一个产品包装,他自创了十八褶叠法、泥鳅边来包裹茶品,每七饼一提,笋壳包之,竹篾扎之,放入手提箱,只为了保证茶品在运输途中的安全。其次是斗记的产品,无论是大小树还是春秋茶,都会在茶品的包装上清晰的表明。最后,斗记的茶品以大斗、金斗、颠峰之斗最为出名,吸粉无数。

七、宝和祥

宝和祥,源于云南普洱茶历史上著名老茶庄共同的集团品牌称号,有“宝和祥”标识,便为云南普洱茶的一线产品。如今的勐海宝和祥茶叶有限公司,成立于2012年,李文华为创始人。近年来,宝和祥脍炙人口的茶叶经典产品有纪廿,2012布易班、乌金号、易武秋兰、兰亭熟等。

八、合和昌

勐海合和昌茶业有限公司于2010年在勐海成立,是普洱茶中的一个高端品牌,以拼配高品质普洱茶而出名。合和昌产品经过积累,基本形成了:“星系列”、“润系列”“藏系列”、“熟茶系列”等四大系列十二款产品。其中,星系列产品包括:合和昌四星、合和昌五星和合和昌六星;润系列产品包括:合和昌和润、合和昌厚润、合和昌圆润;藏系列包括:合和昌珍藏;熟茶系列包括:合和昌精品、合和昌老茶头,均获市场高度认可。2010六星,三载朝阳为合和昌的知名产品。

九、雨林古茶坊

雨林古茶坊全称为勐海雨林古茶坊茶叶有限责任公司。该公司成立于2012年,以专注手工制古树普洱茶的闻名,真正古树、传统手工是雨林古茶坊的理念。在大多数消费者的眼里,雨林古茶坊给人的感受一直都是“大气和时尚”,腾蛟成凤一直是众多消费者眼中高高在上的茶品。此外,精美的包装、舒适的滋味和精美的雨林海报,赢得了不少年轻消费者的青睐。

十、润元昌

润元昌——云南省勐海润元昌茶厂的旗下品牌。专注于高端、专业级普洱茶的开发,以布朗山茶区普洱茶为原料。近年来,润元昌的茶品在市场上持续走俏,赢得了不少忠实粉丝。作为一个典型的茶品驱动型品牌,润元昌以春茶发酵的熟茶深受业界好评。从新产品上来说,润元昌的陈皮普洱茶和单泡装普洱茶也在不断发展壮大。

十一、黎明八角亭

云南农垦集团勐海八角亭茶业有限公司,简称八角亭茶业,原黎明茶厂位于云南省西双版纳傣族自治州勐海县勐遮镇,隶属于云南省农垦集团公司。或许是因为老国营茶厂发展至今的缘故,让大家信赖它的制茶技术,加之八角亭的茶品种类丰富,饼茶、沱茶、砖茶、散茶皆有生产,为消费者提供了更为丰富的选择。因此,八角亭的产品也深受消费者的青睐。另外一个消费者青睐八角亭产品的原因是价格性价比。八角亭的产品基本定位于中下端,深受普通消费者的喜爱,再加上八角亭中期茶的热度,口碑自然不会太差。

十二、老同志

老同志是云南海湾茶叶公司旗下的一个知名品牌,荣获“云南省著名品牌”、“普洱茶十大知名品牌”的称号。老同志的茶以名山系列为尊,如班章、冰岛等。各大名山之中,以班章王最贵,新茶基本过万一饼。也有价格比较实惠的茶品,五年熟茶从几十到几百元不等,放置几年之后味道更佳。

十三、中茶

“中茶”商标可以说是新中国成立以来最悠久的商标之一了。2006年,中国茶叶股份有限公司(注册商标:中茶)经过国家商务部的审批,被认定为第一批“中华老字号”。近年来,茶界出了许多孔雀,中茶也不示弱,而且出的是六星。作为一家老字号,或者可以说是普洱熟茶的启蒙商标之一,中茶的茶品自然也得到了不少消费者的喜爱。

【免费派送茶品】 4份茶样品鉴装(2生,2熟)

【茶品重量】8-10克

【派茶备注】本次派茶,一人一份,免费包邮寄送,乐意喝的请关注我,或者私信哈!

  祝大家在新的一年里身体健康,平安幸福,牛转乾坤!

用python实现红酒数据集的ID3,C4.5和CART算法?

ID3算法介绍

ID3算法全称为迭代二叉树3代算法(Iterative Dichotomiser 3)

该算法要先进行特征选择,再生成决策树,其中特征选择是基于“信息增益”最大的原则进行的。

但由于决策树完全基于训练集生成的,有可能对训练集过于“依赖”,即产生过拟合现象。因此在生成决策树后,需要对决策树进行剪枝。剪枝有两种形式,分别为前剪枝(Pre-Pruning)和后剪枝(Post-Pruning),一般采用后剪枝。

信息熵、条件熵和信息增益

信息熵:来自于香农定理,表示信息集合所含信息的平均不确定性。信息熵越大,表示不确定性越大,所含的信息量也就越大。

设x 1 , x 2 , x 3 , . . . x n {x_1, x_2, x_3, ...x_n}x

1

,x

2

,x

3

,...x

n

为信息集合X的n个取值,则x i x_ix

i

的概率:

P ( X = i ) = p i , i = 1 , 2 , 3 , . . . , n P(X=i) = p_i, i=1,2,3,...,n

P(X=i)=p

i

,i=1,2,3,...,n

信息集合X的信息熵为:

H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X) =- \sum_{i=1}^{n}{p_i}\log{p_i}

H(X)=−

i=1

n

p

i

logp

i

条件熵:指已知某个随机变量的情况下,信息集合的信息熵。

设信息集合X中有y 1 , y 2 , y 3 , . . . y m {y_1, y_2, y_3, ...y_m}y

1

,y

2

,y

3

,...y

m

组成的随机变量集合Y,则随机变量(X,Y)的联合概率分布为

P ( x = i , y = j ) = p i j P(x=i,y=j) = p_{ij}

P(x=i,y=j)=p

ij

条件熵:

H ( X ∣ Y ) = ∑ j = 1 m p ( y j ) H ( X ∣ y j ) H(X|Y) = \sum_{j=1}^m{p(y_j)H(X|y_j)}

H(X∣Y)=

j=1

m

p(y

j

)H(X∣y

j

)

H ( X ∣ y j ) = − ∑ j = 1 m p ( y j ) ∑ i = 1 n p ( x i ∣ y j ) log ⁡ p ( x i ∣ y j ) H(X|y_j) = - \sum_{j=1}^m{p(y_j)}\sum_{i=1}^n{p(x_i|y_j)}\log{p(x_i|y_j)}

H(X∣y

j

)=−

j=1

m

p(y

j

)

i=1

n

p(x

i

∣y

j

)logp(x

i

∣y

j

)

和贝叶斯公式:

p ( x i y j ) = p ( x i ∣ y j ) p ( y j ) p(x_iy_j) = p(x_i|y_j)p(y_j)

p(x

i

y

j

)=p(x

i

∣y

j

)p(y

j

)

可以化简条件熵的计算公式为:

H ( X ∣ Y ) = ∑ j = 1 m ∑ i = 1 n p ( x i , y j ) log ⁡ p ( x i ) p ( x i , y j ) H(X|Y) = \sum_{j=1}^m \sum_{i=1}^n{p(x_i, y_j)\log\frac{p(x_i)}{p(x_i, y_j)}}

H(X∣Y)=

j=1

m

i=1

n

p(x

i

,y

j

)log

p(x

i

,y

j

)

p(x

i

)

信息增益:信息熵-条件熵,用于衡量在知道已知随机变量后,信息不确定性减小越大。

d ( X , Y ) = H ( X ) − H ( X ∣ Y ) d(X,Y) = H(X) - H(X|Y)

d(X,Y)=H(X)−H(X∣Y)

python代码实现

import numpy as np

import math

def calShannonEnt(dataSet):

""" 计算信息熵 """

labelCountDict = {}

for d in dataSet:

label = d[-1]

if label not in labelCountDict.keys():

labelCountDict[label] = 1

else:

labelCountDict[label] += 1

entropy = 0.0

for l, c in labelCountDict.items():

p = 1.0 * c / len(dataSet)

entropy -= p * math.log(p, 2)

return entropy

def filterSubDataSet(dataSet, colIndex, value):

"""返回colIndex特征列label等于value,并且过滤掉改特征列的数据集"""

subDataSetList = []

for r in dataSet:

if r[colIndex] == value:

newR = r[:colIndex]

newR = np.append(newR, (r[colIndex + 1:]))

subDataSetList.append(newR)

return np.array(subDataSetList)

def chooseFeature(dataSet):

""" 通过计算信息增益选择最合适的特征"""

featureNum = dataSet.shape[1] - 1

entropy = calShannonEnt(dataSet)

bestInfoGain = 0.0

bestFeatureIndex = -1

for i in range(featureNum):

uniqueValues = np.unique(dataSet[:, i])

condition_entropy = 0.0

for v in uniqueValues: #计算条件熵

subDataSet = filterSubDataSet(dataSet, i, v)

p = 1.0 * len(subDataSet) / len(dataSet)

condition_entropy += p * calShannonEnt(subDataSet)

infoGain = entropy - condition_entropy #计算信息增益

if infoGain = bestInfoGain: #选择最大信息增益

bestInfoGain = infoGain

bestFeatureIndex = i

return bestFeatureIndex

def creatDecisionTree(dataSet, featNames):

""" 通过训练集生成决策树 """

featureName = featNames[:] # 拷贝featNames,此处不能直接用赋值操作,否则新变量会指向旧变量的地址

classList = list(dataSet[:, -1])

if len(set(classList)) == 1: # 只有一个类别

return classList[0]

if dataSet.shape[1] == 1: #当所有特征属性都利用完仍然无法判断样本属于哪一类,此时归为该数据集中数量最多的那一类

return max(set(classList), key=classList.count)

bestFeatureIndex = chooseFeature(dataSet) #选择特征

bestFeatureName = featNames[bestFeatureIndex]

del featureName[bestFeatureIndex] #移除已选特征列

decisionTree = {bestFeatureName: {}}

featureValueUnique = sorted(set(dataSet[:, bestFeatureIndex])) #已选特征列所包含的类别, 通过递归生成决策树

for v in featureValueUnique:

copyFeatureName = featureName[:]

subDataSet = filterSubDataSet(dataSet, bestFeatureIndex, v)

decisionTree[bestFeatureName][v] = creatDecisionTree(subDataSet, copyFeatureName)

return decisionTree

def classify(decisionTree, featnames, featList):

""" 使用训练所得的决策树进行分类 """

classLabel = None

root = decisionTree.keys()[0]

firstGenDict = decisionTree[root]

featIndex = featnames.index(root)

for k in firstGenDict.keys():

if featList[featIndex] == k:

if isinstance(firstGenDict[k], dict): #若子节点仍是树,则递归查找

classLabel = classify(firstGenDict[k], featnames, featList)

else:

classLabel = firstGenDict[k]

return classLabel

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

下面用鸢尾花数据集对该算法进行测试。由于ID3算法只能用于标称型数据,因此用在对连续型的数值数据上时,还需要对数据进行离散化,离散化的方法稍后说明,此处为了简化,先使用每一种特征所有连续性数值的中值作为分界点,小于中值的标记为1,大于中值的标记为0。训练1000次,统计准确率均值。

from sklearn import datasets

from sklearn.model_selection import train_test_split

iris = datasets.load_iris()

data = np.c_[iris.data, iris.target]

scoreL = []

for i in range(1000): #对该过程进行10000次

trainData, testData = train_test_split(data) #区分测试集和训练集

featNames = iris.feature_names[:]

for i in range(trainData.shape[1] - 1): #对训练集每个特征,以中值为分界点进行离散化

splitPoint = np.mean(trainData[:, i])

featNames[i] = featNames[i]+'='+'{:.3f}'.format(splitPoint)

trainData[:, i] = [1 if x = splitPoint else 0 for x in trainData[:, i]]

testData[:, i] = [1 if x = splitPoint else 0 for x in testData[:, i]]

decisionTree = creatDecisionTree(trainData, featNames)

classifyLable = [classify(decisionTree, featNames, td) for td in testData]

scoreL.append(1.0 * sum(classifyLable == testData[:, -1]) / len(classifyLable))

print 'score: ', np.mean(scoreL)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

输出结果为:score: 0.7335,即准确率有73%。每次训练和预测的准确率分布如下:

数据离散化

然而,在上例中对特征值离散化的划分点实际上过于“野蛮”,此处介绍一种通过信息增益最大的标准来对数据进行离散化。原理很简单,当信息增益最大时,说明用该点划分能最大程度降低数据集的不确定性。

具体步骤如下:

对每个特征所包含的数值型特征值排序

对相邻两个特征值取均值,这些均值就是待选的划分点

用每一个待选点把该特征的特征值划分成两类,小于该特征点置为1, 大于该特征点置为0,计算此时的条件熵,并计算出信息增益

选择信息使信息增益最大的划分点进行特征离散化

实现代码如下:

def filterRawData(dataSet, colIndex, value, tag):

""" 用于把每个特征的连续值按照区分点分成两类,加入tag参数,可用于标记筛选的是哪一部分数据"""

filterDataList = []

for r in dataSet:

if (tag and r[colIndex] = value) or ((not tag) and r[colIndex] value):

newR = r[:colIndex]

newR = np.append(newR, (r[colIndex + 1:]))

filterDataList.append(newR)

return np.array(filterDataList)

def dataDiscretization(dataSet, featName):

""" 对数据每个特征的数值型特征值进行离散化 """

featureNum = dataSet.shape[1] - 1

entropy = calShannonEnt(dataSet)

for featIndex in range(featureNum): #对于每一个特征

uniqueValues = sorted(np.unique(dataSet[:, featIndex]))

meanPoint = []

for i in range(len(uniqueValues) - 1): # 求出相邻两个值的平均值

meanPoint.append(float(uniqueValues[i+1] + uniqueValues[i]) / 2.0)

bestInfoGain = 0.0

bestMeanPoint = -1

for mp in meanPoint: #对于每个划分点

subEntropy = 0.0 #计算该划分点的信息熵

for tag in range(2): #分别划分为两类

subDataSet = filterRawData(dataSet, featIndex, mp, tag)

p = 1.0 * len(subDataSet) / len(dataSet)

subEntropy += p * calShannonEnt(subDataSet)

## 计算信息增益

infoGain = entropy - subEntropy

## 选择最大信息增益

if infoGain = bestInfoGain:

bestInfoGain = infoGain

bestMeanPoint = mp

featName[featIndex] = featName[featIndex] + "=" + "{:.3f}".format(bestMeanPoint)

dataSet[:, featIndex] = [1 if x = bestMeanPoint else 0 for x in dataSet[:, featIndex]]

return dataSet, featName

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

重新对数据进行离散化,并重复该步骤1000次,同时用sklearn中的DecisionTreeClassifier对相同数据进行分类,分别统计平均准确率。运行代码如下:

from sklearn.tree import DecisionTreeClassifier

import matplotlib.pyplot as plt

scoreL = []

scoreL_sk = []

for i in range(1000): #对该过程进行1000次

featNames = iris.feature_names[:]

trainData, testData = train_test_split(data) #区分测试集和训练集

trainData_tmp = copy.copy(trainData)

testData_tmp = copy.copy(testData)

discritizationData, discritizationFeatName= dataDiscretization(trainData, featNames) #根据信息增益离散化

for i in range(testData.shape[1]-1): #根据测试集的区分点离散化训练集

splitPoint = float(discritizationFeatName[i].split('=')[-1])

testData[:, i] = [1 if x=splitPoint else 0 for x in testData[:, i]]

decisionTree = creatDecisionTree(trainData, featNames)

classifyLable = [classify(decisionTree, featNames, td) for td in testData]

scoreL.append(1.0 * sum(classifyLable == testData[:, -1]) / len(classifyLable))

clf = DecisionTreeClassifier('entropy')

clf.fit(trainData[:, :-1], trainData[:, -1])

clf.predict(testData[:, :-1])

scoreL_sk.append(clf.score(testData[:, :-1], testData[:, -1]))

print 'score: ', np.mean(scoreL)

print 'score-sk: ', np.mean(scoreL_sk)

fig = plt.figure(figsize=(10, 4))

plt.subplot(1,2,1)

pd.Series(scoreL).hist(grid=False, bins=10)

plt.subplot(1,2,2)

pd.Series(scoreL_sk).hist(grid=False, bins=10)

plt.show()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

两者准确率分别为:

score: 0.7037894736842105

score-sk: 0.7044736842105263

准确率分布如下:

两者的结果非常一样。

(但是。。为什么根据信息熵离散化得到的准确率比直接用均值离散化的准确率还要低啊??哇的哭出声。。)

最后一次决策树图形如下:

决策树剪枝

由于决策树是完全依照训练集生成的,有可能会有过拟合现象,因此一般会对生成的决策树进行剪枝。常用的是通过决策树损失函数剪枝,决策树损失函数表示为:

C a ( T ) = ∑ t = 1 T N t H t ( T ) + α ∣ T ∣ C_a(T) = \sum_{t=1}^TN_tH_t(T) +\alpha|T|

C

a

(T)=

t=1

T

N

t

H

t

(T)+α∣T∣

其中,H t ( T ) H_t(T)H

t

(T)表示叶子节点t的熵值,T表示决策树的深度。前项∑ t = 1 T N t H t ( T ) \sum_{t=1}^TN_tH_t(T)∑

t=1

T

N

t

H

t

(T)是决策树的经验损失函数当随着T的增加,该节点被不停的划分的时候,熵值可以达到最小,然而T的增加会使后项的值增大。决策树损失函数要做的就是在两者之间进行平衡,使得该值最小。

对于决策树损失函数的理解,如何理解决策树的损失函数? - 陶轻松的回答 - 知乎这个回答写得挺好,可以按照答主的思路理解一下

C4.5算法

ID3算法通过信息增益来进行特征选择会有一个比较明显的缺点:即在选择的过程中该算法会优先选择类别较多的属性(这些属性的不确定性小,条件熵小,因此信息增益会大),另外,ID3算法无法解决当每个特征属性中每个分类都只有一个样本的情况(此时每个属性的条件熵都为0)。

C4.5算法ID3算法的改进,它不是依据信息增益进行特征选择,而是依据信息增益率,它添加了特征分裂信息作为惩罚项。定义分裂信息:

S p l i t I n f o ( X , Y ) = − ∑ i n ∣ X i ∣ ∣ X ∣ log ⁡ ∣ X i ∣ ∣ X ∣ SplitInfo(X, Y) =-\sum_i^n\frac{|X_i|}{|X|}\log\frac{|X_i|}{|X|}

SplitInfo(X,Y)=−

i

n

∣X∣

∣X

i

log

∣X∣

∣X

i

则信息增益率为:

G a i n R a t i o ( X , Y ) = d ( X , Y ) S p l i t I n f o ( X , Y ) GainRatio(X,Y)=\frac{d(X,Y)}{SplitInfo(X, Y)}

GainRatio(X,Y)=

SplitInfo(X,Y)

d(X,Y)

关于ID3和C4.5算法

在学习分类回归决策树算法时,看了不少的资料和博客。关于这两个算法,ID3算法是最早的分类算法,这个算法刚出生的时候其实带有很多缺陷:

无法处理连续性特征数据

特征选取会倾向于分类较多的特征

没有解决过拟合的问题

没有解决缺失值的问题

即该算法出生时是没有带有连续特征离散化、剪枝等步骤的。C4.5作为ID3的改进版本弥补列ID3算法不少的缺陷:

通过信息最大增益的标准离散化连续的特征数据

在选择特征是标准从“最大信息增益”改为“最大信息增益率”

通过加入正则项系数对决策树进行剪枝

对缺失值的处理体现在两个方面:特征选择和生成决策树。初始条件下对每个样本的权重置为1。

特征选择:在选取最优特征时,计算出每个特征的信息增益后,需要乘以一个**“非缺失值样本权重占总样本权重的比例”**作为系数来对比每个特征信息增益的大小

生成决策树:在生成决策树时,对于缺失的样本我们按照一定比例把它归属到每个特征值中,比例为该特征每一个特征值占非缺失数据的比重

关于C4.5和CART回归树

作为ID3的改进版本,C4.5克服了许多缺陷,但是它自身还是存在不少问题:

C4.5的熵运算中涉及了对数运算,在数据量大的时候效率非常低。

C4.5的剪枝过于简单

C4.5只能用于分类运算不能用于回归

当特征有多个特征值是C4.5生成多叉树会使树的深度加深

————————————————

版权声明:本文为CSDN博主「Sarah Huang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接: