我在做多元線性迴歸在Python(sklearn),但由於某些原因,該係數不正確返回一個列表。而是返回列表IN列表:線性迴歸()返回列表(sklearn)內列表
from sklearn import linear_model
clf = linear_model.LinearRegression()
# clf.fit ([[0, 0, 0], [1, 1, 1], [2, 2, 2]], [0, 1, 2])
clf.fit([[394, 3878, 13, 4, 0, 0],[384, 10175, 14, 4, 0, 0]],[3,9])
print 'coef array',clf.coef_
print 'length', len(clf.coef_)
print 'getting value 0:', clf.coef_[0]
print 'getting value 1:', clf.coef_[1]
這將返回列表[[]]而不是列表[]的列表中的值。任何想法爲什麼發生這種情況?輸出:
coef array [[ 1.03428648e-03 9.54477167e-04 1.45135995e-07 0.00000000e+00
0.00000000e+00 0.00000000e+00]]
length 1
getting value 0: [ 1.03428648e-03 9.54477167e-04 1.45135995e-07 0.0000000
0e+00 0.00000000e+00 0.00000000e+00]
getting value 1:
Traceback (most recent call last):
File "regress.py", line 8, in <module>
print 'getting value 1:', clf.coef_[1]
IndexError: index out of bounds
但這個工程:
from sklearn import linear_model
clf = linear_model.LinearRegression()
clf.fit ([[0, 0, 0], [1, 1, 1], [2, 2, 2]], [0, 1, 2])
# clf.fit([[394, 3878, 13, 4, 0, 0],[384, 10175, 14, 4, 0, 0]],[3,9])
print 'coef array',clf.coef_
print 'length', len(clf.coef_)
print 'getting value 0:', clf.coef_[0]
print 'getting value 1:', clf.coef_[1]
輸出:
coef array [ 0.33333333 0.33333333 0.33333333]
length 3
getting value 0: 0.333333333333
getting value 1: 0.333333333333
我不是試圖讓sklearn工作彎曲。如果有另一個Python庫,將返回相關係數線性多元迴歸,我很想聽聽它... – Zach 2012-07-19 02:24:18