如何在sklearn中将分类和数字特征传递给DecisionTreeRegressor?
下面的代码显示了如何将DecisionTreeRegressor
用于数字特征:
from sklearn import tree
make_tree = tree.DecisionTreeRegressor()
fit_tree = make_tree.fit(X_train, y_train)
首先,所有分类特征都应该被编码(用数字表示(,以便回归模型可以解释。为此,您可以使用LabelEncoder,然后使用OneHotEncoder。对于高基数特征,您可以使用 FeatureHasher。
举个例子:
from sklearn.feature_extraction import FeatureHasher
# n_feature: number of unique values in the feature(s)
# input_type should be passed as 'string' to be compatible to pandas DataFrames
feature_hasher = FeatureHasher(n_features=5000, input_type='string')
df['COLUMN_NAME'] = feature_hasher.transform(df['COLUMN_NAME'])
然后,您可以将特征传递给回归器。