python-3.x - Graphviz 似乎认为第一列中的每一行都是一个属性,无法解决
问题描述
我对数据科学很陌生,并且上过一些关于 codecademy 和 sololearn 的课程。我在使用 graphviz 和 sklearn 时遇到问题。似乎当它对我的数据执行决策树时,它会将第一列中的每一行作为一个属性引用,即使我自己指定了这些属性。我现在不关心统计数据本身,我只是想学习如何正确编写代码来处理数据。
我一直收到的错误是:特征名称的长度,303 与特征数量不匹配,6。
任何帮助表示赞赏!
编辑:应该补充说我正在使用这个数据集进行练习:https ://www.kaggle.com/ronitf/heart-disease-uci
def warn(*args, **kwargs):
pass
import warnings
warnings.warn = warn
from sklearn import tree
import pandas as pd
from sklearn.model_selection import train_test_split
import sklearn.linear_model
import matplotlib
import pydotplus
import numpy as np
from IPython.display import Image
csv = pd.read_csv('heart 2.csv', header=0, index_col=False)
dataframe = pd.DataFrame(csv)
labels = dataframe[['cp']]
attributes = dataframe[['sex','trestbps','chol','slope','oldpeak','age']]
attributes_array = np.array(attributes)
labels_array = np.array(labels)
training_data,test_data,training_labels,test_labels = train_test_split(attributes_array,labels_array, test_size=0.2)
model = sklearn.tree.DecisionTreeClassifier(random_state = 1)
model.fit(training_data,training_labels)
print(model.predict_proba(test_data))
dot_data = tree.export_graphviz(model,out_file=None,feature_names=labels,class_names=attributes)
graph = pydotplus.graph_from_dot_data(dot_data)
Image(graph.create_png())
graph.write_pdf("heart.pdf")
解决方案
推荐阅读
- c - 预期标识符 caesar.c 1 错误括号
- sql - 如何使来自两个不同表的两个非常相似的列显示在主表的相同主键下
- java - 使用单例 MainActivity?
- python-2.7 - 端点调用者没有权限
- android - 在构建 apk 后对未显示的本机图像做出反应
- reactjs - React.js 在映射表单上设置状态
- ruby-on-rails - 如何根据 ruby 中的字符串生成非随机 UUID?
- sharepoint - 安装更新后升级-SPContentDatabase 失败
- javascript - 浏览器扩展隐藏的 bootstrap-4.1.3 固定底部窗口
- python - ValueError:在尝试检测汽车铭牌时,在 openCV 中解压的值太多(预期为 2)