1
我一直在使用包tsfresh
来查找时间序列的相关特征。它输出大约300个“相关”特征,通过了每个特征可预测性的p检验阈值。当我使用scikit的DecisionTreeClassifier()
来训练分类器时,我得到了一些奇怪的结果。每次我执行树的学习时,它都会返回一个只有两个级别的树,并且每次使用的特性都不相同。我很困惑。树每次都做得很好,但是我没有看到所有的关卡? 使用此代码:理解scikit的决策树 - 不一致的学习
from sklearn import tree
from sklearn.tree import _tree
X_train, X_test, y_train, y_test = train_test_split(X_filtered, y, test_size=.2)
cl = DecisionTreeClassifier()
cl.fit(X_train, y_train)
tree.export_graphviz(cl,out_file='tree.dot',feature_names=X.columns)
其中len(X.colums)
超过300返回,每次两个层次的决策树。
这有帮助,但我很好奇的是'DecisionTreeClassifier'类。它返回不同的功能。我有一个大的测试集,所以我不知道发生了什么。 – superhero
如果您每次获得不同的选定功能时都有不同的训练集。你有没有尝试像我说的那样设置'random_state'? – dukebody
是的,使用'random_state'我得到相同的状态,但它们的重要性差异很大。 – superhero