2016-07-22 16 views
1

私は2つのデータフレームを持っていますが、前者は列内に> 700予測子を含み、後者は1列を含みます。前者はプレディクタとして使用されます(すべて0と1の値を持ちますが、ほとんどが希薄さのため0です)。2番目はモデルトレーニングとテストの応答として使用されます。最初の名前はserで、2番目の名前はstarです。私は次のように示しtf-idf変換を使用した線形回帰

from sklearn.feature_extraction.text import TfidfTransformer 
transformer = TfidfTransformer() 

A = transformer.fit_transform(ser) 

TF-IDFの形質転換のためにprint(A)

(0, 302) 0.613133438876 
(0, 202) 0.789979358042 
(1, 556) 1.0 
(2, 556) 0.432375068194 
(2, 17) 0.901693850708 
(3, 556) 0.269567465847 
(3, 335) 0.671245025218 
(3, 256) 0.400099662956 
(3, 238) 0.562746618986 
(4, 556) 0.401348891903 
(4, 137) 0.915925251846 
(5, 641) 0.785485510985 
(5, 396) 0.618880046562 
(6, 317) 0.525163047715 
(6, 305) 0.851001629443 
... (more are cut) 

の一部を次のように使用し

は、私は、このTF-IDFの変換はすべての権利を使用しましたか?私が次のように述べると、私は投稿の最後に投稿するというエラーを受け取ります。

star = pd.DataFrame({"star": star}) 
data = pd.concat([ser, star], axis = 1) 

from sklearn.linear_model import LinearRegression 

D = LinearRegression() 

Dfit = D.fit(ser, star, sample_weight = A) 
Dpred = D.predict(ser) 
Dscore = D.score(ser,star) 
print(Dscore) 

エラー

Traceback (most recent call last): 
File "categories_model.py", line 67, in <module> 
Dfit = D.fit(ser, star, sample_weight = A) 
File "/opt/conda/lib/python2.7/site-packages/sklearn/linear_model/base.py", line 434, in fit 
sample_weight=sample_weight) 
File "/opt/conda/lib/python2.7/site-packages/sklearn/linear_model/base.py", line 127, in center_data 
X_mean = np.average(X, axis=0, weights=sample_weight) 
File "/opt/conda/lib/python2.7/site-packages/numpy/lib/function_base.py", line 937, in average 
"1D weights expected when shapes of a and weights differ.") 
TypeError: 1D weights expected when shapes of a and weights differ. 

誰も私はこのすべてを理解して、コードを改善するために、どのように助けてもらえますか?ありがとうございました!!

答えて

0

エラーは、変換された行列の位置を誤っていることに起因します。これは問題を解決します。

Dfit = D.fit(A, star) 
関連する問題