我试图将数据集划分为训练和测试集,在下面的代码中,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
。这可能包含以下步骤:
- 加载数据(例如,如果数据来自CSV文件,则为
df = pd.read_csv(...)
( - 使用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)
- 应用缩放(我建议在拆分后应用缩放,这样您就可以在列车数据上适应例如最小-最大缩放器,而不是两者都适合(
如果你真的坚持使用熊猫的样本函数,你可以做以下事情:
- 获取列车数据:
train = df.sample(frac=0.65)
- 获取测试数据(剩余35%的数据(:
test = df.drop(train.index)
- 标签可以由
train_labels = train.iloc[12]
提取(如果我正确理解12
是标签在数据帧列中的位置( - 和/或最终可以通过CCD_ 12访问正确缩放的数据
只需确保对缩放/未缩放的数据使用相同的索引。