随机打乱csv c语言,随机切分csv训练集和测试集

使用numpy切分训练集和测试集

3f5bf9f2ad3bee023c2d4d73ea641688.png

44d118feb14d8ca0c8fc8e6428f9efd0.png

b930631857d2bf1bce079f7b922f9de8.png

序言

在机器学习的任务中,时常需要将一个完整的数据集切分为训练集和测试集。此处我们使用numpy完成这个任务。

iris数据集中有150条数据,我们将120条数据整合为训练集,将30条数据整合为测试集。

程序

import csv

import os

import numpy as np

'''将iris.csv中的数据分成train_iris和test_iris两个csv文件,其中train_iris.csv中有120个数据,test_iris.csv中有30个数据'''

labels = []

data = []

a_train_file = 'train_iris.csv'

a_test_file = 'test_iris.csv'

a_file = 'iris.csv'

seed = 3

np.random.seed(seed)

train_indices = np.random.choice(150, 120, replace=False) # 设置随机数生成从0-150中随机挑选120个随机数

residue = np.array(list(set(range(150)) - set(train_indices)))

test_indices = np.random.choice(len(residue),30, replace=False) # 如果训练集和测试集综合的数据加起来就是一整个数据集则不需要这个操作

with open(a_file)as afile:

a_reader = csv.reader(afile) #从原始数据集中将所有数据读取出来并保存到a_reader中

labels = next(a_reader) # 提取第一行设置为labels

for row in a_reader: # 将a_reader中每一行的数据提取出来并保存到data的列表中

data.append(row)

# 生成训练数据集

if not os.path.exists(a_train_file):

with open(a_train_file, "w", newline='') as a_trian:

writer = csv.writer(a_trian)

writer.writerows([labels]) #第一行为标签行

writer.writerows(np.array(data)[train_indices])

a_trian.close()

# 生成测试数据集

if not os.path.exists(a_test_file):

with open(a_test_file, "w", newline='')as a_test:

writer = csv.writer(a_test)

writer.writerows([labels]) #第一行为标签行

writer.writerows(np.array(data)[test_indices])

a_test.close()

sklearn学习3----模型选择和评估(1)训练集和测试集的切分

来自链接:https://blog.csdn.net/zahuopuboss/article/details/54948181 1.sklearn.model_selection.train_test ...

sklearn——train_test_split 随机划分训练集和测试集

sklearn——train_test_split 随机划分训练集和测试集 sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http: ...

Sklearn-train_test_split随机划分训练集和测试集

klearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/gener ...

机器学习入门06 - 训练集和测试集 (Training and Test Sets)

原文链接:https://developers.google.com/machine-learning/crash-course/training-and-test-sets 测试集是用于评估根据训练 ...

sklearn获得某个参数的不同取值在训练集和测试集上的表现的曲线刻画

from sklearn.svm import SVC from sklearn.datasets import make_classification import numpy as np X,y ...

将dataframe分割为训练集和测试集两部分

data = pd.read_csv("./dataNN.csv",',',error_bad_lines=False)#我的数据集是两列,一列字符串,一列为0,1的labelda ...

用python制作训练集和测试集的图片名列表文本

# -*- coding: utf-8 -*- from pathlib import Path #从pathlib中导入Path import os import fileinput import ...

sklearn中的train_test_split (随机划分训练集和测试集)

官方文档:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html ...

python 将数据随机分为训练集和测试集

# -*- coding: utf-8 -*- """ Created on Tue Jun 23 15:24:19 2015 @author: hd "&qu ...

随机推荐

CSS实现垂直居中

Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中的确是有vertical-align属性,但是它只对(X)HTML元素中拥有valign特性的元素才生效,例如表格元素中的

. ...

Selenium2学习-028-WebUI自动化实战实例-026-获取页面元素值或者元素属性值

在自动化脚本编写过程中,经常需要获取页面元素的文本进行判断,以便对于不同的文本进行不同的处理.比如:很多的购物网站,加入购物车的按钮是有多个状态的(加入购物车.到货通知.暂不销售等),那么在实际的操作 ...

Spring IoC — 基于注解的配置

基于XML的配置,Bean定义信息和Bean实现类本身是分离的,而采用基于注解的配置方式时,Bean定义信息即通过在Bean实现类上标注注解实现. @Component:对类进行标注,Spring容器 ...

Http请求头中的字段理解

1.Accept属于请求头, Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...

导致spring事务配置不起作用的一种原因

@Component public class AnalyticsApplication { @Autowired private InitializationActionService initia ...

form组件

def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['hobby'].choices ...

Hive-1.2.1_03_DDL操作

Hive官方文档:Home-UserDocumentation Hive DDL官方文档:LanguageManual DDL 参考文章:Hive 用户指南 注意:各个语句的版本时间,有的是在 hiv ...

bzoj4444 国旗计划

题目链接 倍增,预处理出每个点往后$2^i$个应该选哪个人 我用的treap就是快 #include #include #includ ...

day25作业

1.阻塞  2.就绪  3.阻塞  4.Runnable  5.join()  6.synchronized  7.notify()和notifyAll()   8.Object 1.A   2.D  ...

javascript 理解对象--- 属性类型

ECMA-262 把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数: var Person = { name:"wsc", age :"25", ...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值