Python 中 CSV 文件的训练测试拆分

Train-test Split of a CSV file in Python

我有一个包含我的数据的 .csv 文件。我想做 Logistic RegressionNaive BayesDecision Trees。我已经知道如何实现这些了。

但是,我的老师要我将 .csv 文件中的数据拆分为 80%,然后让我的算法预测另一个 20%。我想知道如何以这种方式实际拆分数据。

diabetes_df = pd.read_csv("diabetes.csv")
diabetes_df.head()

with open("diabetes.csv", "rb") as f:
    data = f.read().split()
    train_data = data[:80]
    test_data = data[20:]

我试过这样拆分它(确定它不起作用)。

splitted_csv = "value1,value2,value3".split(',')
print(str(splitted_csv)) #["value1", "value2", "value3"]
print(splitted_csv[0]) #value1
print(splitted_csv[1]) #value2
print(splitted_csv[2]) #value3

还有一些库可以解析 csv 并允许您按列名访问值,但根据您的示例,我认为您需要一些 "low level" 方法来做到这一点

工作流程

  1. 加载数据(参见如何使用Python读写CSV文件? )
  2. 预处理数据(例如过滤/创建新特征)
  3. 进行训练测试(验证和开发集)拆分

代码

Sklearns sklearn.model_selection.train_test_split 是您正在寻找的:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.33, random_state=0)