通过列联表将预测结果与真实值进行对比python代码
时间: 2024-03-12 21:47:57 浏览: 24
好的,您可以使用pandas库中的crosstab函数来生成列联表,用于比较预测结果与真实值之间的差异。下面是一个例子:
```
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
# 导入数据
data = pd.read_csv('data.csv')
# 准备数据集
X = data.drop('target', axis=1)
y = data['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 建立随机森林模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# 进行预测并计算准确率
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
# 生成列联表
confusion = pd.crosstab(y_test, y_pred, rownames=['Actual'], colnames=['Predicted'])
print(confusion)
```
在上面的代码中,我们首先使用sklearn库中的confusion_matrix函数生成混淆矩阵,该函数返回一个数组,其中包含真实值和预测值之间的差异。然后,我们使用pandas库中的crosstab函数将混淆矩阵转换为易于阅读的列联表。该表的行表示实际值,列表示预测值。每个单元格中的值表示实际值和预测值都匹配的次数。通过比较表中的值,我们可以确定模型的性能和准确性。