2016-07-22 3 views
1

저는 두 개의 데이터 프레임을 가지고 있는데, 전자는 두 개 이상의 열을 포함하고 후자는 한 열을 포함합니다. 전자는 예측 변수로 사용되며 (모두 값 0과 1이지만 희소성 때문에 대부분 0 임) 두 번째는 모델 훈련 및 테스트에 대한 응답으로 사용됩니다. 첫 번째 이름은 ser이고 두 번째 것은 star입니다. 나는 TF-IDF 변환에 대해 다음 사용tf-idf 변환을 사용한 선형 회귀

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

A = transformer.fit_transform(ser) 

(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) 

print(A)의 다음 일부를 보여줍니다 나는 모든 권리,이 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)