Cross_validation.train_test_split 中 stratify这个参数的意义是什么?

比单独使用train_test_split来划分数据更严谨

 

 

stratify是为了保持split前类的分布。比如有100个数据,80个属于A类,20个属于B类。如果train_test_split(... test_size=0.25, stratify = y_all), 那么split之后数据如下:
training: 75个数据,其中60个属于A类,15个属于B类。
testing: 25个数据,其中20个属于A类,5个属于B类。
用了stratify参数,training集和testing集的类的比例是 A:B= 4:1,等同于split前的比例(80:20)。通常在这种类分布不平衡的情况下会用到stratify。

这个参数sklearn的文档4中讲的不是太清楚

帮助文档

http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.train_test_split.html

posted on 2017-01-29 22:13  Betty__2017  阅读(11047)  评论(1编辑  收藏  举报

导航