sns.heatmap(confusion_matrix(y_test, y_clf_predict), annot=True, fmt='.20g'),调节字体大小怎么设置参数?
时间: 2024-02-12 15:06:47 浏览: 56
你可以使用 `sns.set(font_scale=1.4)` 这个函数来设置字体大小,其中 `font_scale` 参数可以根据需要进行调节。具体代码如下:
```
import seaborn as sns
import matplotlib.pyplot as plt
# 设置字体大小
sns.set(font_scale=1.4)
# 绘制热力图
sns.heatmap(confusion_matrix(y_test, y_clf_predict), annot=True, fmt='.20g')
plt.show()
```
这样就可以将字体大小设置为 1.4 倍了。
相关问题
【多选】分类正确率、混淆矩阵是评价分类模型效果的重要依据,下列编程语句有错误的是()(其中x , y是训练集和训练集标签,分别为DataFrame对象和Series对象) from sklearn.model_selection import train_test_split train_x, test_x, train_y, test_y = train_test_split(x,y, test_size=0.20,random_state=1e) from sklearn.linear_model import LogisticRegression 模型构建 clf = LogisticRegression(random_state=10,penalty='l1' ,solver='liblinear ') ####(1)#### 模型训练 clf.fit(train_x, train_y) 模型预测y_pred = clf.predict(test_x) print("分类正确率: " , round(clf.score(test_x, test_y),4))####(2)#### from sklearn.metrics import classification_report 输出主要分类指标的文本报告 print(classification_report(test_x,test_y)) ####(3)#### from sklearn.metrics import confusion_matrix import seaborn as sns 设置正常显示中文 sns.set(font='SimHei ')绘制热力图 ax = sns.heatmap(plot(test_y, y_pred), ####(4)#### annot=True,fmt= 'd ') ax.set_ylabel('真实') ax.set_xlabel('预测') ax.set_title('混淆矩阵热力图')
以下是错误的编程语句:
- 第一行代码中,test_size=0.20,random_state=1e 中的逗号应该改为小数点,即test_size=0.20,random_state=1e-1。
- 第二个错误在于print(classification_report(test_x,test_y)),应该是print(classification_report(test_y, y_pred))。
修改后的代码如下:
```
from sklearn.model_selection import train_test_split
train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=0.20, random_state=1e-1)
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(random_state=10, penalty='l1', solver='liblinear')
clf.fit(train_x, train_y)
y_pred = clf.predict(test_x)
print("分类正确率: ", round(clf.score(test_x, test_y), 4))
from sklearn.metrics import classification_report
print(classification_report(test_y, y_pred))
from sklearn.metrics import confusion_matrix
import seaborn as sns
sns.set(font='SimHei')
ax = sns.heatmap(confusion_matrix(test_y, y_pred), annot=True, fmt='d')
ax.set_ylabel('真实')
ax.set_xlabel('预测')
ax.set_title('混淆矩阵热力图')
```
# 把文档转换成矩阵 valid_vec = model_tfidf.transform(valid_X) pre_valid = clf.predict_proba(valid_vec) print(pre_valid[:5]) pre_valid = clf.predict(valid_vec) #包括两列,分别表示为正例和负例的概率 print('正例:',sum(pre_valid == 1)) print('负例:',sum(pre_valid == 0)) from sklearn.metrics import confusion_matrix from sklearn.metrics import accuracy_score cm = confusion_matrix(valid_y, pre_valid) print("混淆矩阵:") print(cm) score = accuracy_score(pre_valid,valid_y) print("准确率:",score)结合以上代码,解释混淆矩阵中行和列分别代表什么,生成一段代码:可以更直接明了的显示混淆矩阵
混淆矩阵中行和列分别代表预测结果和实际结果。具体地说,行表示预测的分类,列表示实际的分类。混淆矩阵的四个格子分别表示:
- TP(True Positive):预测为正例,实际也为正例;
- FN(False Negative):预测为负例,实际为正例;
- FP(False Positive):预测为正例,实际为负例;
- TN(True Negative):预测为负例,实际也为负例。
可以使用以下代码更直接明了地显示混淆矩阵:
```python
import seaborn as sns
cm = confusion_matrix(valid_y, pre_valid)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Predicted label')
plt.ylabel('True label')
plt.show()
```
该代码使用了`seaborn`库中的`heatmap()`函数,将混淆矩阵以热力图的形式展示出来。其中,`annot=True`表示在每个格子中显示数值,`fmt='d'`表示数值按照整数格式显示,`cmap='Blues'`表示使用蓝色调色板。`plt.xlabel()`和`plt.ylabel()`用于设置横纵轴标签。最后,使用`plt.show()`将图形显示出来。
阅读全文