用lables划分训练和测试数据中的数据集



我试图将数据集划分为训练和测试集,在下面的代码中,df_min_max_scaled是我的规范化数据,df是我的非规范化数据。但我得到了错误

import numpy as np
train_ind = df.sample(frac=0.65, replace=True)
train = df_min_max_scaled[train_ind,]
test = df_min_max_scaled[-train_ind,]
train_labels = df[train_ind, 12] 
test_labels = df[-train_ind, 12]
#train_labels

错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-50-a640d18b42fc> in <module>
1 import numpy as np
2 train_ind = df.sample(frac=0.65, replace=True)
----> 3 train = df_min_max_scaled[train_ind,]
4 test = df_min_max_scaled[-train_ind,]
5 train_labels = df[train_ind, 12]

它在第3行显示错误,我实际上正在使用Pandas 将R代码转换为Python

train_ind = sample(nrow(wine), floor(0.65 * nrow(wine)))
train = wine2[train_ind,]
test = wine2[-train_ind,]
train_labels = wine[train_ind, 12] 
test_labels = wine[-train_ind, 12]

我建议您使用sklearn中的train_test_split。这可能包含以下步骤:

  1. 加载数据(例如,如果数据来自CSV文件,则为df = pd.read_csv(...)(
  2. 使用train-test-Split(from sklearn.model_selection import train_test_split(对它们进行拆分,其中df是您的输入,labels是真正的目标(您可以将testrongize设置为您想要的任何值(
train, test, train_labels, test_labels = train_test_split(df, labels, test_size=0.35)
  1. 应用缩放(我建议在拆分后应用缩放,这样您就可以在列车数据上适应例如最小-最大缩放器,而不是两者都适合(

如果你真的坚持使用熊猫的样本函数,你可以做以下事情:

  • 获取列车数据:train = df.sample(frac=0.65)
  • 获取测试数据(剩余35%的数据(:test = df.drop(train.index)
  • 标签可以由train_labels = train.iloc[12]提取(如果我正确理解12是标签在数据帧列中的位置(
  • 和/或最终可以通过CCD_ 12访问正确缩放的数据

只需确保对缩放/未缩放的数据使用相同的索引。

相关内容

最新更新