我确实找到了关于scikit分类变量的线索。但我找不到一个简单的答案。我确实意识到,在构建决策树的过程中,我发现了分类数据的错误,并对矢量化器等提出了建议。我尝试了各种方法,但我无法创建决策树。我的表中有很多带字符串的列,我尝试了向量化器、多LabelBinerizer等,但似乎什么都不管用。我无法导出_graphviz并显示树,因为根本没有树。我对这个很陌生。我真诚地请求帮助我了解如何处理这些专栏。我将数据分成80-20份,用于培训和测试。然后我试着建一棵树。只是一段简单的代码:
dtree=DecisionTreeClassifier(random_state=0)
mlb = preprocessing.MultiLabelBinarizer()
n_train = mlb.fit_transform(train)
n_test = mlb.transform(test)
dec_tree=dtree.fit(n_train,n_test)
我确实得到了这个答案,我很困惑:
DecisionTreeClassifier(class_weight=None, criterion='gini',
max_depth=None,
max_features=None, max_leaf_nodes=None, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
random_state=0, splitter='best')
请告知如何进行。
为了使分类器可以使用你的分类变量,一种可能的方法是使用Scikit学习的OneHodEncoder。
您应该注意,没有任何变量的级别出现次数太少。如果您不想或无法手动检查,请使用VarianceThreshold对变量的方差设置阈值。
如果您使用pandas数据帧作为结构,pandas。获取虚拟变量(DataFrame[“variable”])
将为您构建虚拟变量。
请尝试对您的功能进行编码。您应该使用标签(要预测的列)作为dtree中的第二个参数。函数,但将测试数据用作第二个参数。检查此项以了解使用DecisionTreeClassier fit功能的正确方法