scikit,catagorical列,决策树

时间:2016-02-19 07:37:44

标签: machine-learning scikit-learn classification decision-tree

我找到了关于scikit catagorical变量的线索。但我找不到一个简单的答案。我确实在构建决策树的过程中,为了解决了数据库错误,并且对Vectorizer等提出了建议。我尝试了evrything但是我无法创建决策树。我的表有很多带有字符串的列,我尝试了矢量化器,多标记化器等。没有看到它的工作原理。我无法export_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 个答案:

答案 0 :(得分:0)

为了使分类变量可以使用分类变量,一种可能性是使用scikit-learn中的OneHodEncoder

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

如果您使用pandas DataFrame作为结构的其他可能性,pandas.get_dummies(DataFrame["variable"])将为您构建虚拟变量。

答案 1 :(得分:0)

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