如何在方法LinearRegression()的第一个参数'X'中使用2个参数.fit(X,Y)?

时间:2018-03-07 05:31:30

标签: python scikit-learn

我的csv数据是这样的:

enter image description here

如何将fit()的第一个参数设置为X1和X2,而不仅仅是X1。因为Y的数据与X1和X2都相关。但是我发现方法的第一个参数fit()我可以只传递一个值。 现在我的代码:

import pandas as pd
from sklearn import linear_model

wine = pd.read_csv(r"D:/1.csv",sep=',')
clf = linear_model.LinearRegression()
X1 = wine.loc[:, ['importance']].as_matrix()
X2 = wine.loc[:, ['match']].as_matrix()
Y = wine['point'].as_matrix()
clf.fit(X1, Y)
print(clf.coef_,clf.intercept_,clf.score(X1, Y))

输出结果: [0.00402347] 92.58619838990552 0.04442683444842255

1 个答案:

答案 0 :(得分:1)

您可以将这两个列保留为单个DataFrame。此外,您不需要使用as_matrix(); sklearn可以接受pandas对象作为输入。

import pandas as pd
from sklearn import linear_model

wine = pd.read_csv(r"D:/1.csv")  # sep=',' is default
clf = linear_model.LinearRegression()

X = wine.drop('point', axis=1)
y = wine['point']
clf.fit(X, y)
print(clf.coef_, clf.intercept_, clf.score(X, y))

上面,wine.drop('point', axis=1)只是说"给我一个DataFrame,包括除 point之外的所有列

如果你想要专门指定那些列(在这种情况下结果是相同的),你可以这样做:

X = wine.loc[:, ['importance', 'match']]

请注意,在这种情况下,Xy都将视图添加到原始数据中。