如何使用pandas创建交叉表来展示随机森林预测器的预测结果?

2024-06-26 13:44:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我是随机森林(以及python)的新手。 我使用随机森林分类器,数据集被定义为't2002'。在

 t2002.column 

以下是专栏:

^{pr2}$

我使用以下代码运行分类器:

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import make_scorer, accuracy_score
from sklearn.model_selection import GridSearchCV

from sklearn.model_selection import train_test_split
X_all = t2002.drop(['MainMode_B03ID'],axis=1)
y_all = t2002['MainMode_B03ID']
p = 0.2

X_train,X_test, y_train, y_test = train_test_split(X_all,y_all,test_size=p, 
random_state=23)

clf = RandomForestClassifier()
acc_scorer = make_scorer(accuracy_score)

 parameters = {
         }    # parameter is blank

grid_obj = GridSearchCV(clf,parameters,scoring=acc_scorer)
grid_obj = grid_obj.fit(X_train,y_train)

clf = grid_obj.best_estimator_
clf.fit(X_train,y_train)

predictions = clf.predict(X_test)
print(accuracy_score(y_test,predictions))

在这种情况下,我如何使用pandas生成交叉表(如表)来显示详细的预测结果?在

提前谢谢!在


Tags: fromtestimportobj分类器森林trainsklearn
2条回答

您可以首先使用sklearn创建一个混淆矩阵,然后将其转换为pandas数据帧。在

from sklearn.metrics import confusion_matrix
#creating confusion matrix as array
confusion = confusion_matrix(t2002['MainMode_B03ID'].tolist(),predictions)

#converting to df
new_df = pd.DataFrame(confusion,
                 index = t2002['MainMode_B03ID'].unique(),
                 columns = t2002['MainMode_B03ID'].unique())

用熊猫很容易显示所有的预测结果。使用cv_results_,如docs中所述。在

import pandas as pd

results = pd.DataFrame(clf.cv_results_) # clf is the GridSearchCV object
print(results.head()) 

相关问题 更多 >