sklearn StratifiedKFold, KFold的shuffle参数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yanhe156/article/details/90544684

我一直有一个疑问,这个shuffle参数到底做了什么,会不会打乱样本的顺序,导致我想生成训练集的预测结果后,再拼接到ID上时顺序就对应不上了。

shuffle = False

import numpy as np
from sklearn.model_selection import KFold
a = np.arange(10)
kfold = KFold(n_splits=3, shuffle=False, random_state=2000)
print(list(kfold.split(a)))
print('更改随机种子')
kfold = KFold(n_splits=3, shuffle=False, random_state=2018)
print(list(kfold.split(a)))

在这里插入图片描述
可以看到更换随机数种子,对split的结果没影响。而且split的结果对应sklearn文档里的说明:
Provides train/test indices to split data in train/test sets. Split dataset into k consecutive folds (without shuffling by default).

shuffle = True

import numpy as np
from sklearn.model_selection import KFold
a = np.arange(10)
kfold = KFold(n_splits=3, shuffle=True, random_state=2000)
print(list(kfold.split(a)))
print('更改随机种子')
kfold = KFold(n_splits=3, shuffle=True, random_state=2018)
print(list(kfold.split(a)))

在这里插入图片描述
这时可以看到随机种子会影响结果,并且split后的index不再是连续的,而且随机的有间断的数。

那么对于开始的问题, shuffle不会打乱样本顺序,因为它返回的只是index。一般情况下还是应该用shuffle的。

展开阅读全文

sklearn参数选择

10-11

<p>rn <span> </span> rn</p>rn<p>rn <p>rn 20周年限定:唐宇迪老师一卡通!<span style="color:#337FE5;">可学唐宇迪博士全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn<span>&nbsp;</span>rn</p>rn购买课程后,可扫码进入学习群<span style="font-family:&quot;">,获取唐宇迪老师答疑</span>rn<p>rn <img src="https://img-bss.csdn.net/201908070603599204.jpg" alt="" /> rn</p>rn<p>rn 系列课程包含Python机器学习库,机器学习经典算法原理推导,基于真实数据集案例实战3大模块。从入门开始进行机器学习原理推导,以通俗易懂为基础形象解读晦涩难懂的机器学习算法工作原理,案例实战中使用Python工具库从数据预处理开始一步步完成整个建模工作!具体内容涉及Python必备机器学习库、线性回归算法原理推导、Python实现逻辑回归与梯度下降、案例实战,信用卡欺诈检测、决策树与集成算法、支持向量机原理推导、SVM实例与贝叶斯算法、机器学习常规套路与Xgboost算法、神经网络。rn</p>

案例:sklearn参数选择

10-26

<p>rn <br />rn</p>rn<p>rn 20周年限定:唐宇迪老师一卡通!<span style="color:#337FE5;">可学唐宇迪博士全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span> rn</p>rn<p>rn 点此链接购买:rn</p>rn<table>rn <tbody>rn <tr>rn <td>rn <a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank"><span style="color:#337FE5;">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</span></a> rn </td>rn </tr>rn </tbody>rn</table>rn<p>rn <br />rn</p>rn购买课程后,请扫码进入学习群<span style="font-family:&quot;">,获取唐宇迪老师答疑</span> rn<div>rn <img src="https://img-bss.csdn.net/201908070344327835.jpg" alt="" /> rn</div>rn<p>rn <br />rn</p>rn<p>rn Python数据分析与机器学习实战教程,该课程精心挑选真实的数据集为案例,通过python数据科学库numpy,pandas,matplot结合机器学习库scikit-learn完成一些列的机器学习案例。课程以实战为基础,所有课时都结合代码演示如何使用这些python库来完成一个真实的数据案例。算法与项目相结合,选择经典kaggle项目,从数据预处理开始一步步代码实战带大家入门机器学习。学完该课程即可:rn1.掌握Python数据科学工具包,包括矩阵数据处理与可视化展示。rn2.掌握机器学习算法原理推导,从数学上理解算法是怎么来的以及其中涉及的细节。rn3.掌握每一个算法所涉及的参数,详解其中每一步对结果的影响。rn4.熟练使用Python进行建模实战,基于真实数据集展开分析,一步步完成整个建模实战任务。rn</p>

没有更多推荐了,返回首页