来自多种数据类型特征的决策树
decision trees from features of multiple datatypes
我正在尝试使用 scikit-learn 构建决策树 DecisionTreeClassifier
。我的数据具有由整数和浮点值组成的数字特征。
构建决策树时,整数特征被转换
漂浮。
例如:如果 A 是一个只能具有 1-12 整数值的特征,则树中会出现 "A < 5.5" 或 "A < 3.1" 等分裂标准。我不想要 A 的浮点值拆分标准。
如果整数要素转换为浮点数,树的深度会增加。如何限制整数特征转换为浮点数?
此外,scikit-learn 的 DecisionTreeClassifier
不允许分类特征。是否有任何替代方法 packages/libraries 用于构建允许分类特征的决策树?
关于决策树的整数与浮点数,对于构建树来说无关紧要。两个连续整数之间的任何拆分都是等价的。它永远不会在同一对连续整数之间进行两次拆分,因为这样做,其中一个叶子将没有样本。无论使用整数还是浮点数,它都会生成一个等效模型。
使用 scikit-learn,您可以使用 LabelBinarizer
来使用分类特征。这将为类别创建一个虚拟值矩阵(一个热编码)。
这是一个例子:
from sklearn.preprocessing import LabelBinarizer
from sklearn.tree import DecisionTreeClassifier
import numpy as np
定义特征
month = ['Jan', 'Feb', 'Jan', 'Mar']
day = [1, 15, 30, 5]
定义类别目标
y = [0, 1, 1, 1]
构建假人:
lb = LabelBinarizer()
X_month_dummies = lb.fit_transform(month)
X_month_dummies
那么:
array([[0, 1, 0],
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
将虚拟变量与数字特征相结合(天)
X = np.hstack([np.column_stack([day]), X_month_dummies])
构建分类器。
clf = DecisionTreeClassifier()
clf.fit(X, y)
我正在尝试使用 scikit-learn 构建决策树 DecisionTreeClassifier
。我的数据具有由整数和浮点值组成的数字特征。
构建决策树时,整数特征被转换 漂浮。
例如:如果 A 是一个只能具有 1-12 整数值的特征,则树中会出现 "A < 5.5" 或 "A < 3.1" 等分裂标准。我不想要 A 的浮点值拆分标准。
如果整数要素转换为浮点数,树的深度会增加。如何限制整数特征转换为浮点数?
此外,scikit-learn 的 DecisionTreeClassifier
不允许分类特征。是否有任何替代方法 packages/libraries 用于构建允许分类特征的决策树?
关于决策树的整数与浮点数,对于构建树来说无关紧要。两个连续整数之间的任何拆分都是等价的。它永远不会在同一对连续整数之间进行两次拆分,因为这样做,其中一个叶子将没有样本。无论使用整数还是浮点数,它都会生成一个等效模型。
使用 scikit-learn,您可以使用 LabelBinarizer
来使用分类特征。这将为类别创建一个虚拟值矩阵(一个热编码)。
这是一个例子:
from sklearn.preprocessing import LabelBinarizer
from sklearn.tree import DecisionTreeClassifier
import numpy as np
定义特征
month = ['Jan', 'Feb', 'Jan', 'Mar']
day = [1, 15, 30, 5]
定义类别目标
y = [0, 1, 1, 1]
构建假人:
lb = LabelBinarizer()
X_month_dummies = lb.fit_transform(month)
X_month_dummies
那么:
array([[0, 1, 0],
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
将虚拟变量与数字特征相结合(天)
X = np.hstack([np.column_stack([day]), X_month_dummies])
构建分类器。
clf = DecisionTreeClassifier()
clf.fit(X, y)