我的csv数据是这样的:
如何将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
答案 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']]
请注意,在这种情况下,X
和y
都将视图添加到原始数据中。