在我的数据集中,我有一个字符串列,我正在使用LabelBinarizer进行转换以运行分类器。字符串列有大约5个我正在转换的值。我能够成功构建模型,但问题是预测输入需要像二进制格式一样传递:
forest.predict([[0,0,1,1,1,0,0,0,0,0]])。
我正在寻找一种使用原始属性值的方法,变换器会动态转换它。像这样的东西
forest.predict([[0,0,1,1,1, 'A']])。
这可以使用管道完成吗?如果是这样,我真的很感谢一些链接或样品可以解决这个问题吗?
代码:
data = pd.read_csv('/pydata/test.csv') #has attrs v1,v2,v3,v4,v5,class
binarizer = LabelBinarizer()
labeled_dataframe1 = pd.DataFrame( binarizer.fit_transform(data["v5"]), columns=binarizer.classes_)
X = data.drop(columns=["v5","class"]).join(labeled_dataframe1).as_matrix()
y = data['class'].as_matrix()
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3,random_state=0)
# Model fitting
forest = RandomForestClassifier(n_estimators=500)
forest.fit(X_train,y_train)
# Predict
forest.predict([[0,0,1,1,1,0,0,0,0,0]])