Python: оценка изолированного леса - PullRequest
0 голосов
/ 05 февраля 2019

Я делаю кластеризацию изолированного леса на базе данных mulcross с 2 классами.Я делю свои данные на обучающие и тестовые наборы и пытаюсь вычислить оценку точности, roc_auc_score и confusion_matrix на моем тестовом наборе.Но есть две проблемы: первая состоит в том, что в методе кластеризации я не должен использовать метки на этапе обучения, это означает, что "y_train" не следует упоминать, но я не нашел другого решенияоценить мою модель.Более того, результаты, которые я нашел, неверны. Моя проблема заключается в том, как оценить модель кластеризации, такую ​​как лес изоляции. Вот мой код:

df = pd.read_csv('db.csv')
y_true=df['Target']
df_data=df.drop('Target',1)

X_train, X_test, y_train, y_test = train_test_split(df_data, y_true, test_size=0.3, random_state=42)

alg=IsolationForest(n_estimators=100, max_samples= 256 , contamination=0.1, max_features=1.0, bootstrap=False, n_jobs=-1, random_state=42, verbose=0, behaviour="new")
model = alg.fit(X_train, y_train)
preds = alg.predict(X_test)

print("#############################\n#############################")
print(accuracy_score(y_test, preds))
print(roc_auc_score(y_test, preds))
cm = confusion_matrix(y_test, preds)
print(cm)
print("#############################\n#############################")

1 Ответ

0 голосов
/ 05 февраля 2019

Я не понимаю, почему вы кластеризуете и делите его на обучающие / тестовые наборы.Мне кажется, что вы смешиваете классификацию / кластеризацию или что-то в этом роде.Если у вас есть ярлыки, попробуйте метод под наблюдением.Простыми выигрышами являются xgboost, случайный лес, GLM, логистика и т. Д. *

Если вы хотите оценить методы кластеризации, вы можете исследовать расстояния между и внутри кластеров.В конце дня вы хотите иметь небольшие и хорошо разделенные кластеры.Вы также можете посмотреть на метрику под названием силуэт.

Вы также можете попробовать

print("Accuracy:", list(y_pred_test).count(1)/y_pred_test.shape[0])

, посмотрите здесь для получения более подробной информации.

...