2012-11-04 13 views
7

OLS(multiple linear regression)を使用してモデルを計算しました。私は訓練とテスト(それぞれ半分)のためにデータを分割し、ラベルの後半の値を予測したいと思います。 ファイル「/usr/local/lib/python2.7/dist-packages/statsmodels-0.5.0-py2.7-linux-i686.egg/:統計モデルを使用したOLSモデルを使用した値の予測

model = OLS(labels[:half], data[:half]) 
predictions = model.predict(data[half:]) 

問題は、私が取得し、エラーということですstatsmodels /回帰/ linear_model.py」、行281における 戻りnp.dot(exog、paramsは)を予測 とValueError:マトリックスは

に整列されていない私は、次の配列形状を有する: data.shape:(426、 215) labels.shape:(426、)

入力をmodel.predictに転置すると、その結果が、(426213)の形状を持つので、私は(私はラベルの予測として、213の番号のいずれかのベクトルを期待する)だけでなく、その間違っているとします

model.predict(data[half:].T) 

それが仕事を得るためにどのように任意のアイデア? statsmodels> = 0.4の場合

答えて

11

、私の記憶が正しければ

model.predictパラメータについて知っている、とコール でそれらを必要としませんがどのようなあなたのケースで動作するはずですがフィットすることですhttp://statsmodels.sourceforge.net/stable/generated/statsmodels.regression.linear_model.OLS.predict.html

を見ますモデルを作成し、結果インスタンスのpredictメソッドを使用します。ドキュメンテーション文字列

注意を欠けと

model = OLS(labels[:half], data[:half]) 
results = model.fit() 
predictions = results.predict(data[half:]) 

または短い

results = OLS(labels[:half], data[:half]).fit() 
predictions = results.predict(data[half:]) 

http://statsmodels.sourceforge.net/stable/generated/statsmodels.regression.linear_model.RegressionResults.predict.html:これは予測では、「式」の情報を活用することができます開発版(下位互換性)、に変更されました http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.RegressionResults.predict.html

+0

これは、モデルのフィッティングとデータ分割についてのBIG WARNINGの質問に対する正解です。トレーニング/フィッティングには80%(またはそれ以上の部分)を、テスト/予測には20%(残り)を使用してください。データの分割50:50は、Schrodingers catと似ています。私たちは、データがすべて良いまたは間違っているという自信を持っていません。 したがって、モデルの信頼性は真ん中にあります。私たちはモデルの信頼性を高めたいので、より多くのデータを訓練してテストする必要があります。 – lukassos

関連する問題