Я делаю прогнозную модель личного (и большого) набора данных. У меня есть десятки столбцов (некоторые непрерывные и другие фиктивные (0/1) переменные), и я хочу использовать алгоритм случайного леса для классификации и регрессии. И для того, и для другого я хочу использовать повторный стратифицированный склад (10 раз и 10 повторений), а для классификации - оценку путаницы и AU C, а для регрессии - RMSE.
. Для классификации я сделал это В соответствии с некоторыми вещами, которые я читал, муравей смотрел в inte rnet, но я не уверен, что это лучший способ. Теперь я не знаю точно, как сделать матрицу путаницы и AU C. Кто-нибудь может мне помочь?
df_C = df
df_C.loc[(df_C['target'] >= 0.0) & (df_C['target'] <= 4.0), 'target'] = 1
df_C.loc[(df_C['target'] > 4.0) & (df_C['target'] <= 7), 'target'] = 2
df_C.loc[(df_C['target'] > 7) & (df_C['target'] <= 9), 'target'] = 3
df_C.loc[(df_C['target'] > 9), 'target'] = 3
from sklearn.model_selection import RepeatedStratifiedKFold
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, accuracy_score
# Split dataset in features and target variable
X = df_C.loc[:, df_C.columns != 'target']
y = df_C['target'] # Target variable
classifier= RandomForestClassifier()
accuracy_C = []
rskf = RepeatedStratifiedKFold(n_splits=10, n_repeats=10)
rskf.get_n_splits(X, y)
for train_index, test_index in rskf.split(X,y):
print("Train:", train_index, "Validation:", test_index)
X1_train, X1_test = X.iloc[train_index], X.iloc[test_index]
y1_train, y1_test = y.iloc[train_index], y.iloc[test_index]
classifier.fit(X1_train,y1_train)
prediction = classifier.predict(X1_test)
score = accuracy_score(prediction, y1_test)
accuracy_C.append(score)
np.array(accuracy).mean()
Кроме того, для регрессии мне нужно использовать RandomForestRegressor () вместо RandomForestClassifier () и не разбивать на категории целевую переменную?