Разделите набор данных в поезде и установите проверку.Почему эта ошибка? - PullRequest
0 голосов
/ 10 октября 2018

Я должен разделить свой набор данных на поезд и установить валидацию (70 и 30%). Я использовал этот код:

def get_train_test(df, y_col, x_cols, ratio):
""" 
This method transforms a dataframe into a train and test set, for this you need to specify:
1. the ratio train : test (usually 0.7)
2. the column with the Y_values
"""
mask = np.random.rand(len(df)) < ratio
df_train = df[mask]
df_test = df[~mask]

Y_train = df_train[y_col].values
Y_test = df_test[y_col].values
X_train = df_train[x_cols].values
X_test = df_test[x_cols].values
return df_train, df_test, X_train, Y_train, X_test, Y_test

y_col_glass = 'Type'
x_cols_glass = list(df_glass.columns.values)
x_cols_glass.remove(y_col_glass)

train_test_ratio = 0.7
df_train, df_test, X_train, Y_train, X_test, Y_test = get_train_test(df_glass, y_col_glass, x_cols_glass, train_test_ratio)

, но у меня есть ошибка по y_col_glass и коэффициенту.Пожалуйста помоги!Это ошибка

 File "/Users/blabla/.py", line 120, in <module>
    x_cols_glass.remove(y_col_glass)
   line 1576, in __nonzero__
    .format(self.__class__.__name__))
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

1 Ответ

0 голосов
/ 10 октября 2018

В соответствии с предложением @Matthieu Brucher, вы можете использовать функцию разбиения sklearn / функцию поезда: http://scikit -learn.org / 0.16 / modules / generate / sklearn.cross_validation.train_test_split.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...