Я пытаюсь использовать машину с градиентным усилением (gbm) в python для моего отчета о модели
Я написал несколько кодов для выполнения задачи, но получал сообщение об ошибке
x_train,x_test,y_train,y_test=train_test_split(ml_Telco.drop(labels=['Churn'],axis=1),
ml_Telco['Churn'],
test_size=0.3,
random_state=0)
target = 'Churn'
x_train.shape,x_test.shape
def modelfit(alg, dtrain, predictors, performCV=True,printFeatureImportance=True, cv_folds=5):
#Fit the algorithm on the data
alg.fit(dtrain[predictors], dtrain['Churn'])
#Predict training set:
dtrain_predictions = alg.predict(dtrain[predictors])
dtrain_predprob = alg.predict_proba(dtrain[predictors])[:,1]
#Perform cross-validation:
if performCV:
cv_score = cross_validation.cross_val_score(alg,dtrain[predictors],dtrain['Churn'], cv=cv_folds, scoring='roc_auc')
#Print model report:
print ("\nModel Report")
print ("Accuracy : %.4g" % metrics.accuracy_score(dtrain['Churn'].values,dtrain_predictions))
print( "AUC Score (Train): %f" % metrics.roc_auc_score(dtrain['Churn'],dtrain_predprob))
if performCV:
print( "CV Score : Mean - %.7g | Std - %.7g | Min - %.7g | Max %.7g" % (np.mean(cv_score),np.std(cv_score),np.min(cv_score),np.max(cv_score)))
#Print Feature Importance:
if printFeatureImportance:
feat_imp = pd.Series(alg.feature_importances_,predictors).sort_values(ascending=False)
feat_imp.plot(kind='bar', title='Feature Importances')
plt.ylabel('Feature Importance Score')
predictors = [x for x in x_train.columns if x not in ['Churn']]
gbm0 = GradientBoostingClassifier(random_state=10)
modelfit(gbm0, x_train, predictors)
Я ожидал получить модельный отчет, показывающий: Accuracy Auc Score (train) CV Score
Но я получил следующую ошибку:
KeyError Traceback (most recent call last)
<ipython-input-154-2ee19dd7c558> in <module>
1 predictors = [x for x in x_train.columns if x not in ['Churn']]
2 gbm0 = GradientBoostingClassifier(random_state=10)
----> 3 modelfit(gbm0, x_train, predictors)
KeyError: 'Churn'
Спасибо