Estoy tratando de predecir una variable binaria con ambos bosques aleatorios y de regresión logística. Tengo desequilibrada clases (aprox 1.5% de Y=1), por lo que yo estoy llamando class_weight = "auto"
en ambos RF y LR.
Tengo aprox 600 características y 262,871 líneas.
Aquí está el código :
model_rf = RandomForestClassifier(n_estimators = 500,
max_depth = None,
bootstrap = True,
criterion = "entropy",
class_weight = "auto",
n_jobs=-1)
# -- Features importance
forest = model_rf.fit(X_train[:,:580], Y_train)
imp_list = list(zip(db.columns[1:], np.transpose(forest.feature_importances_)))
imp_list.sort(key=operator.itemgetter(1), reverse=True)
imp_rf = pd.DataFrame(imp_list, columns=['features', 'imp'])
imp_rf[:20].plot(kind='barh', x='features', color='darkgreen')
Matriz de confusión no son tan malos para ambos RF y LR
Después de la adición de 8 características
Característica impotances tienden a decir que el 8 de nuevas características son buena (mucho mejor que el resto).
La matriz de confusión se vuelve muy malo
La adición de 1 simulado característica
Mi primer pensamiento fue "el modelo es el sobreajuste'. Pero antes de intentar ajustar el RF, me quitaron todos los 8 de nuevas variables y sustituido con 1 simulado aleatoria función de correlación con el resto del conjunto de datos.
- La variable por supuesto, no era 'importante' en el RF
- (¿QUÉ?) la matriz de confusión era malo de nuevo.
¿Cómo puede 1 variable simple calificar como no importante en 500 árboles pueden alterar todo el modelo ?
Y de nuevo, el logit fue estable :
¿Ustedes qué piensan ? Gracias por los préstamos de sus neuronas.