我想在Python中使用sk-learn運行通常的線性迴歸,但我有一些分類數據,我不知道如何處理,特別是因爲我導入了數據大熊貓read.csv()
,我從之前的經驗中得知,讀到熊貓和sk-learn並沒有相處得很好(還)。使用分類變量sklearn的線性迴歸
我的數據是這樣的:使用AtBat
Salary AtBat Hits League EastDivision
475 315 81 1 0
480 479 130 0 0
500 496 141 1 1
我想預測薪水,命中,聯賽和EastDivision,在聯賽和EastDivision是絕對的。
如果我通過numpy的loadtext()
導入數據,我得到一個numpy數組,理論上我可以使用sklearn,但是當我使用DictVectorizer時出現錯誤。我的代碼是:
import numpy as np
from sklearn.feature_extraction import DictVectorizer as DV
nphitters=np.loadtxt('Hitters.csv',delimiter=',', skiprows=1)
vec = DV(sparse = False)
catL=vec.fit_transform(nphitters[:,3:4])
而我得到的錯誤,當我運行的最後一行catL=vec.fit_transform(nphitters[:,3:4])
,誤差
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/sklearn/feature_extraction/dict_vectorizer.py", line 142, in fit_transform
self.fit(X)
File "/usr/lib/python2.7/dist-packages/sklearn/feature_extraction/dict_vectorizer.py", line 107, in fit
for f, v in six.iteritems(x):
File "/usr/lib/python2.7/dist-packages/sklearn/externals/six.py", line 268, in iteritems
return iter(getattr(d, _iteritems)())
AttributeError: 'numpy.ndarray' object has no attribute 'iteritems'
我不知道如何解決它,而另一件事是,一旦我得到分類數據的工作,我該如何運行迴歸?就好像分類變量是另一個數字變量一樣?
我發現了幾個類似於我的問題,但他們都沒有真正爲我工作。
關於熊貓和sklearn,他們在一起工作得很好。這只是一個習慣它的問題。如果你只想要價值,。數據幀末尾的值 – 2014-10-08 23:39:56
是的,我後來看到我的數據已準備好;並找出了一些使sklearn和熊貓一起工作的方法。非常感謝! – 2014-10-28 22:34:57
嘿,馬里奧。小心分享一個描述你可以讓Pandas和Sklearn很好地結合在一起的方式的鏈接?謝謝。 – 2017-04-03 02:24:37