资讯专栏INFORMATION COLUMN

scikit-learn探索

zgbgx / 2839人阅读

摘要:与的区别意思就是是按着不同类别标签的相对占比来进行的分折看看代码结果如下我们设置的是十折,也就是说将分为十份,每次取一份来做集

1.KFold与StratifiedKFold的区别

class sklearn.model_selection.StratifiedKFold(n_splits=3, shuffle=False, random_state=None)
Stratified K-Folds cross-validator Provides train/test indices to split data in train/test sets.This cross-validation object is a variation of KFold that returns stratified folds. The folds are made by preserving the percentage of samples for each class

意思就是Stra~是按着不同类别标签的相对占比来进行的分折

看看代码

import numpy as np
import sklearn.datasets as ds
import sklearn.svm as sksvm
import sklearn.model_selection as skmodsel

a=[[i] for i in range(100)]
b=[0]*30;b.extend([1]*30);b.extend([2]*30);b.extend([3]*10)

K_strafold=skmodsel.StratifiedKFold(n_splits=10) 
K_folds=skmodsel.KFold(n_splits=10)
for train_indices, test_indices in K_folds.split(a):
    d={}
    for i in train_indices:
        d[b[i]]=d.setdefault(b[i],0)+1
    print(d)
    
print("------------------")    
for train_indices, test_indices in K_strafold.split(a,b):
    d={}
    for i in train_indices:
        d[b[i]]=d.setdefault(b[i],0)+1
    print(d)
    
d={}
for i in range(100):
    d[b[i]]=d.setdefault(b[i],0)+1   
print(d)

结果如下

{0: 20, 1: 30, 2: 30, 3: 10}
{0: 20, 1: 30, 2: 30, 3: 10}
{0: 20, 1: 30, 2: 30, 3: 10}
{0: 30, 1: 20, 2: 30, 3: 10}
{0: 30, 1: 20, 2: 30, 3: 10}
{0: 30, 1: 20, 2: 30, 3: 10}
{0: 30, 1: 30, 2: 20, 3: 10}
{0: 30, 1: 30, 2: 20, 3: 10}
{0: 30, 1: 30, 2: 20, 3: 10}
{0: 30, 1: 30, 2: 30}
------------------
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
{0: 27, 1: 27, 2: 27, 3: 9}
------------------
{0: 30, 1: 30, 2: 30, 3: 10}

我们设置的是十折,也就是说将a分为十份,每次取一份来做test集
结果很明显,类别标签里有0,1,2各30个,和10个3标签,他们的占比就是3:3:3:1
当直接使用KFold的时候,则是每次取出十个同一列表标签的来做一折,看起来就好像是按着b的排列顺序,第一次取0~9做第一折,10-19做第二折,以此类推
但当使用Stra~的时候,每次取都是按着占比来取的,每一折都满足3:3:3:1,测试集也是满足这种

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40975.html

相关文章

  • python在Scikit-learn中用决策树和随机森林预测NBA获胜者

    摘要:在本文中,我们将以的决策树和随机森林预测获胜者。用决策树和随机森林预测获胜者导入数据集并解析日期导入熊猫作为。这将帮助我们查看决策树分类器的预测是否正确。混淆矩阵显示了我们决策树的正确和不正确的分类。 showImg(https://segmentfault.com/img/bVbcr26?w=750&h=383); 在本文中,我们将以Scikit-learn的决策树和随机森林预测NB...

    learning 评论0 收藏0
  • ApacheCN 人工智能知识树 v1.0

    摘要:贡献者飞龙版本最近总是有人问我,把这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 贡献者:飞龙版...

    刘厚水 评论0 收藏0
  • 编程界的“头牌”名媛:Python,14个与数据科学的“暧昧情事”

    摘要:安装安装用于数据科学的的最佳方法是使用发行版。但这只是展示了构建数据科学问题的不同方式中的机器学习这是一个重要的主题,机器学习正在风靡世界,是数据科学家工作的重要组成部分。 作为编程界的头牌名媛,Python平易近人的态度和精明婉约的灵动深得各个大佬欢心。比如:人工智能、web开发、爬虫、系统运维、数据分析与计算等等。这几位风流多金的行业精英随便哪个都能逆转未来。 本文为你精心准备了一...

    Labradors 评论0 收藏0

发表评论

0条评论

zgbgx

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<