用python将一个数据文件分为训练集和测试集

本文介绍如何使用Python和sklearn库将鸢尾花数据集按7:3比例随机划分为训练集和测试集,并提供了完整的代码实现。

以鸢尾花数据集(iris dataset)为例,将其按7:3的比例随机划分为训练集和测试集。

iris数据集下载:https://download.csdn.net/download/albert201605/10640837

代码及说明如下(将数据文件与程序文件置于同一目录下):

#【导入相应的库(对数据库进行切分需要用到的库是sklearn.model_selection 中的 train_test_split)】
import numpy as np
from sklearn.model_selection import train_test_split

#【首先,读取.CSV文件成矩阵的形式。】
#若标签为浮点,直接使用下面一行即可
#data = np.loadtxt(open("iris.csv"),delimiter=",",skiprows=0)

##--------------------【若标签为Striing,先将标签转化为浮点型】------------------------------
def iris_type(s):
    class_label={b'Iris-setosa':0,b'Iris-versicolor':1,b'Iris-virginica':2}
    return class_label[s]

#使用numpy中的loadtxt读入数据文件(csv格式的iris数据,也可直接换成txt格式)
filepath='iris_data.csv'  # 数据文件路径
data=np.loadtxt(filepath,dtype=float,delimiter=',',converters={4:iris_type})
##-------------------------------------------------------------------------------------

#【将矩阵最后一列之前的数值给X(输入数据),将矩阵最后一列的数值给y(标签)】
X, y = data[:,:-1],data[:,-1]

#【利用train_test_split方法,将X,y随机划分为训练集(X_train),训练集标签(y_train),测试集(X_test),测试集标签(y_test),按训练集:测试集=7:3的概率划分,到此步骤,可以直接对数据进行处理】
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

#【将训练集与数据集的数据分别保存为CSV文件】
#np.column_stack将两个矩阵进行组合连接,numpy.savetxt 将txt文件保存为csv格式的文件
train= np.column_stack((X_train,y_train))
np.savetxt('train_set.csv',train, delimiter = ',')

test = np.column_stack((X_test, y_test))
np.savetxt('test_set.csv', test, delimiter = ',')

参考:

1. python中如何实现将数据分成训练集与测试集_pycharm将数据分成几个部分_Will-kkc的博客-CSDN博客

2. Python实现鸢尾花数据集分类问题——基于skearn的SVM - CuriousZero - 博客园

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禺垣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值