不同类型的列作为特征

时间:2019-06-16 14:46:24

标签: python scikit-learn

我有不同类型的数据,我想根据下面显示的变量Y AB来预测因变量C

    Y       A       B     C
0   11.3914 2.75    0     [0, 0, 10, 17, 35, 26, 0]
1   14.0348 2.50    0     [0, 0, 39, 35, 30, 5, 0]  
2   14.8416 2.75    1     [0, 0, 12, 5, 5, 2, 1]
3   13.7829 2.25    0     [0, 0, 2, 18, 14, 8, 0]   
...

以下尝试在ValueError: setting an array element with a sequence.行中给了我fit

X = df[['A', 'B', 'C']]
y = df['Y']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)
tree_reg = DecisionTreeRegressor()  
tree_reg.fit(X_train, y_train)

y_pred = regressor.predict(X_test)

我认为这是因为C中的数组数据,但是当我尝试仅使用变量AB进行预测时: 即X = df[['A', 'B']]

这次,我在最后的predict行中出现了另一个错误:ValueError: Number of features of the model must match the input. Model n_features is 7 and input n_features is 2

我在做什么错?如何在X中包含所有这些功能?

1 个答案:

答案 0 :(得分:0)

我认为使用功能final Verified = await signString(plainText, Signture , publicKey); 时出现错误是由于最后一行。

A and B

看来您使用错误来预测。您有y_pred = regressor.predict(X_test) 个名为fit的模型,并且正在使用另一个模型tree_reg(可能用于某些先前的数据)来预测结果。在您的情况下,regressor模型接受7个功能,而您仅提供2个。

使用所有三个功能regressor

时出错

当您想在数据框内使用A, B and C时,可以使用list方法将列表转换为数据框的各个列。

Split column of lists into multiple columns