提问者:小点点

scikit,分类列,决策树


我确实找到了关于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')

请告知如何进行。


共2个答案

匿名用户

为了使分类器可以使用你的分类变量,一种可能的方法是使用Scikit学习的OneHodEncoder。

您应该注意,没有任何变量的级别出现次数太少。如果您不想或无法手动检查,请使用VarianceThreshold对变量的方差设置阈值。

如果您使用pandas数据帧作为结构,pandas。获取虚拟变量(DataFrame[“variable”])将为您构建虚拟变量。

匿名用户

请尝试对您的功能进行编码。您应该使用标签(要预测的列)作为dtree中的第二个参数。函数,但将测试数据用作第二个参数。检查此项以了解使用DecisionTreeClassier fit功能的正确方法