首页 > Python资料 博客日记
Python 训练集、测试集以及验证集切分方法:sklearn及手动切分
2024-07-15 10:00:05Python资料围观281次
Python资料网推荐Python 训练集、测试集以及验证集切分方法:sklearn及手动切分这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣
目录
需求目的:针对模型训练输入,按照6:2:2的比例进行训练集、测试集和验证集的划分。当前数据量约10万条。如果针对的是记录条数达上百万的数据集,可按照98:1:1的比例进行切分。
方法一:切分训练集和测试集,采用机器学习包sklearn中的train_test_split()函数
方法二:切分训练集、测试集以及验证集,针对dataframe手动切分
方法一
采用Sklearn包中的sklearn.model_selection.train_test_split()
函数,该函数功能是将原始数据按照比例切分为训练集和测试集。
函数形式:
sklearn.model_selection.train_test_split(*arrays, test_size=None,
train_size=None, random_state=None, shuffle=True, stratify=None)
参数解读:
*arrays:等长的列表、数组或者dataframe等
test_size: 0和1之间,默认0.25
train_size: 0和1之间,默认1
random_state: 传递一个int值,以便在多个函数调用之间产生可复制的输出
shuffle: 拆分前是否进行洗牌
strafity: 是否对数据进行分层
返回结果:
输入序列的train test分割序列
例子
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
>>> X, y = np.arange(10).reshape((5, 2)), range(5)
>>> X
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
>>> list(y)
[0, 1, 2, 3, 4]
>>> X_train, X_test, y_train, y_test = train_test_split(
... X, y, test_size=0.33, random_state=42)
...
>>> X_train
array([[4, 5],
[0, 1],
[6, 7]])
>>> y_train
[2, 0, 3]
>>> X_test
array([[2, 3],
[8, 9]])
>>> y_test
[1, 4]
方法二
手动切分,代码如下。输入采用Python的DataFrame,同样输出三个文件。如果需要每次都输入同样的切分数据,可采用random.seed()
定义随机数种子。
def split_train_test_valid():
# read file
input_path = "E:\\Data\\"
file = "flow.csv"
df_flow = pd.read_csv(input_path + file, header=None, encoding='gbk')
# define the ratios 6:2:2
train_len = int(len(df_flow) * 0.6)
test_len = int(len(df_flow) * 0.2)
# split the dataframe
idx = list(df_flow.index)
random.shuffle(idx) # 将index列表打乱
df_train = df_flow.loc[idx[:train_len]]
df_test = df_flow.loc[idx[train_len:train_len+test_len]]
df_valid = df_flow.loc[idx[train_len+test_len:]] # 剩下的就是valid
# output
df_train.to_csv(input_path+'train.txt', header=False, index=False, sep='\t')
df_test.to_csv(input_path+'test.txt', header=False, index=False, sep='\t')
df_valid.to_csv(input_path+'valid.txt', header=False, index=False, sep='\t')
参考资料:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 光流法结合深度学习神经网络的原理及应用(完整代码都有Python opencv)
- Python 图像处理进阶:特征提取与图像分类
- 大数据可视化分析-基于python的电影数据分析及可视化系统_9532dr50
- 【Python】入门(运算、输出、数据类型)
- 【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南
- 华为OD机试E卷 --第k个排列 --24年OD统一考试(Java & JS & Python & C & C++)
- Python已安装包在import时报错未找到的解决方法
- 【Python】自动化神器PyAutoGUI —告别手动操作,一键模拟鼠标键盘,玩转微信及各种软件自动化
- Pycharm连接SQL Sever(详细教程)
- Python编程练习题及解析(49题)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程