qq_44711208 2022-05-12 10:28
浏览 33
已结题

决策树可视化时报0xb2的错误

我的代码:

-- coding: UTF-8 --

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn import tree
import pandas as pd
import numpy as np
import pydotplus

if name == 'main':
with open('lenses.txt', 'r',encoding="unicode_escape") as fr: #加载文件
lenses = [inst.strip().split('\t') for inst in fr.readlines()] #处理文件
lenses_target = [] #提取每组数据的类别,保存在列表里
for each in lenses:
lenses_target.append(each[-1])
#print(lenses_target)

lensesLabels = ['age', 'prescript', 'astigmatic', 'tearRate']            #特征标签       
lenses_list = []                                                        #保存lenses数据的临时列表
lenses_dict = {}                                                        #保存lenses数据的字典,用于生成pandas
for each_label in lensesLabels:                                            #提取信息,生成字典
    for each in lenses:
        lenses_list.append(each[lensesLabels.index(each_label)])
    lenses_dict[each_label] = lenses_list
    lenses_list = []
# print(lenses_dict)                                                        #打印字典信息
lenses_pd = pd.DataFrame(lenses_dict)                                    #生成pandas.DataFrame
# print(lenses_pd)                                                        #打印pandas.DataFrame
le = LabelEncoder()                                                        #创建LabelEncoder()对象,用于序列化           
for col in lenses_pd.columns:                                            #序列化
    lenses_pd[col] = le.fit_transform(lenses_pd[col])
# print(lenses_pd)                                                        #打印编码信息

clf = tree.DecisionTreeClassifier(max_depth = 4)                        #创建DecisionTreeClassifier()类
clf.fit(lenses_pd.values.tolist(), lenses_target)                    #使用数据,构建决策树

dot_data=tree.export_graphviz(clf, out_file = None,                            #绘制决策树
                    feature_names = lenses_pd.keys(),
                    class_names = clf.classes_,
                    filled=True, impurity=False,
                    rounded=True,
                    special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("tree.pdf")

报错: graph.write_pdf("tree.pdf")这行报错
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 13: invalid start byte

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月20日
    • 创建了问题 5月12日

    悬赏问题

    • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
    • ¥15 求caverdock使用教程
    • ¥15 Coze智能助手搭建过程中的问题请教
    • ¥15 12864只亮屏 不显示汉字
    • ¥20 三极管1000倍放大电路
    • ¥15 vscode报错如何解决
    • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
    • ¥15 python随机森林对两个excel表格读取,shap报错
    • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
    • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。