的Python:评价一个隔离森林

问题描述 投票:-1回答:1

我上的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#############################")
python scikit-learn cluster-analysis evaluation unsupervised-learning
1个回答
0
投票

我不明白你为什么要聚类并把它分成训练/测试集。在我看来,像你混合分类/集群或类似的东西。如果你有标签,尽量有监督方法。简易的奖金将xgboost,随机森林,GLM,物流等..

如果你要评估聚类方法,你可以调查间和群集内的距离。在一天结束时,你想拥有小和良好分离集群。你可以看一下一个指标叫做人影了。

您也可以尝试

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

此外,寻找here一些更多的细节。

© www.soinside.com 2019 - 2024. All rights reserved.