Не могу получить поезд и тестовые наборы - PullRequest
0 голосов
/ 08 января 2019

Я применил k-кратную перекрестную проверку для разделения данных на наборы поездов и тестов. Но когда я хочу получить набор для обучения и тестирования, у меня появляются следующие ошибки:

AttributeError: у объекта 'numpy.ndarray' нет атрибута 'iloc'

Спасибо за вашу помощь.

y = df_dummies['Churn'].values
X = df_dummies.drop(columns = ['Churn'])

 from sklearn.preprocessing import MinMaxScaler
features = X.columns.values
scaler = MinMaxScaler(feature_range = (0,1))
scaler.fit(X)
X = pd.DataFrame(scaler.transform(X))
X.columns = features 

from sklearn.model_selection import KFold

kf=KFold(n_splits=5,shuffle=True)

for train,test in kf.split(X):
print("%s %s" % (train,test))


for train_index, test_index in kf.split(X):
     print("TRAIN:", train_index, "TEST:", test_index)
X_train, X_test = X.iloc[train_index], X.iloc[test_index]
y_train, y_test = y.iloc[train_index], y.iloc[test_index]   
from sklearn.linear_model import LogisticRegression
CLF = LogisticRegression().fit(X_train, y_train)
print('Accuracy of Logistic regression classifier on training set:          {:.2f}'
 .format(CLF.score(X_train, y_train)))
print('Accuracy of Logistic regression classifier on test set: {:.2f}'
 .format(CLF.score(X_test, y_test)))  
NameError: name 'y_train' is not defined

1 Ответ

0 голосов
/ 08 января 2019

Проблема в том, что df_dummies['Churn'].values возвращает массив, а не фрейм данных. Но вы пытаетесь получить атрибуты из массива, который не существует. Функция iloc находится в pandas.DataFrame.

Вместо этого используйте y = df_dummies['Churn'].

Ссылка: https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.iloc.html#pandas.DataFrame.iloc

PS: я не знаю, как вопросы такого типа могли быть перенесены на родственный сайт. Возможно, кто-то, кто знает, может перенести это в перекрестную проверку, пожалуйста.

...