1

Я пытался использовать TPOTClassifier на Forest Cover Type Prediction. Но после первоначального запуска его ошибки возникают как выходные. Будет полезно, если вы предложите, как устранить ошибку. Спасибо.TPOTClassifier, производя ошибки

from tpot import TPOTClassifier 
import numpy as np 
import pandas as pd 
from sklearn.model_selection import train_test_split 
from sklearn.metrics import accuracy_score 

# loading the data 
data = pd.read_csv("train.csv") 
data_test = pd.read_csv("test.csv") 
data.head() 
data_test.head() 

print data['Cover_Type'].values 
data1 = data 

data1= data1.rename(columns={'Cover_Type':'class'}) 
data1.dtypes 

features =list(data1.dtypes[1:55].index) 
target =list(data1.dtypes[55:56].index) 
print data1.dtypes.tail() 

## train test split 
X_train , X_test, y_train, y_test = train_test_split(data1[features],data1[target],train_size=0.75, test_size=0.25) 
X_train.head() 

tpot =TPOTClassifier(generations=5, population_size=500, verbosity=2)  
tpot.fit(X_train, y_train) 
print (tpot.score(X_test, y_test)) 
tpot.export('tpot_forest_pipeline.py') 

Но его ошибка, продуцирующая:

Поколение 1 - Текущий лучший внутренний счет CV: инф

Generation 2 - Текущая лучший внутренняя оценка CV: инф

Generation 3 - Текущее лучший внутренние CV: inf

Поколение 4 - Лучшие внутренние внутренние показатели CV: inf

поколения 5 - Текущая лучший внутренний счет CV: инф

ValueError Traceback (самый последний вызов последнего) в()

1 tpot = TPOTClassifier (поколения = 5, population_size = 500, многословия = 2)

2 tpot.fit (X_train, y_train)

3 печати (tpot.score (X_test, y_test))

4 tpot.export ('tpot_forest_pipeline.py'

355, если не self._optimized_pipeline:

356 рейз ValueError (Была ошибка в оптимизации TPOT

357 процесс. Это может быть связано с тем, что данные были 358 не отформатированы должным образом или потому, что данные для) ValueError: произошла ошибка в процессе оптимизации TPOT. Это может быть связано с тем, что данные не были отформатированы должным образом или потому, что были предоставлены данные для проблемы регрессии к объекту TPOTClassifier. Пожалуйста, убедитесь, что вы правильно передали данные в TPOT.

ответ

1

Проблема вызвана данными1 [features], которые должны быть 1-D массивом, но pandas dataframe представляет собой структуру данных, подобную массиву 2D. Изменение кодов tpot.fit(), как показано ниже, решит проблему ввода.

tpot.fit(pd.np.array(X_train), pd.np.array(y_train).ravel()) 
+0

Благодарим за сообщение. Я внес изменения, как вы предложили. Он показывал поколения. Затем отобразится Best pipe: ExtraTreesClassifier (SelectFromModel (input_matrix, 1.0000000000000001e-05, 60, 0.080000000000000002), 6, 0.63). После этого при экспорте в tpot.export ('tpot_forest_pipeline.py') возникает ошибка. – Harry

+0

Как я могу расшифровать параметры из лучшего отображения конвейера? Как разрешить ошибку, возникающую в конце при экспорте через tpot.export ('tpot_forest_pipeline.py') – Harry

Смежные вопросы