我确实找到了关于scikit分类变量的线程。但我找不到一个简单的答案。我确实意识到在构建决策树时,sklearn错误用于分类数据,并且有关于矢量化器等的建议。我尝试了 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')
请告知如何进行。
为了使分类变量可以被分类器使用,一种可能性是使用scikit-learn的OneHodEncoder。
您应该注意,没有变量具有出现次数太少的水平。如果您不想或无法手动检查此设置,请使用 EveranceThreshold 对变量方差的阈值。
如果您使用 pandas DataFrame 作为结构,pandas.get_dummies(DataFrame["variable"])
将为您构建虚拟变量。
尝试对特征进行编码。您应该在 dtree.fit() 函数中使用标签(要预测的列)作为第二个参数,但使用测试数据作为第二个参数。检查此内容以了解使用决策树分类器拟合函数的正确方法