2016-04-27 16 views
0

私は、SciKit-Learns Linear Discriminant Analysisパッケージを使用して、既知の座標をラベルに基づいて座標にラベルを割り当てようとしています。 1つのパンダのデータフレームに格納された座標とラベルをトレーニングし、別の座標系をターゲットとします。 2つのデータフレームは行の長さが等しくなく、トレーニングセットがより大きくなります。元のデータフレームの座標にラベルを適用して、pd.mergeでキーとして使用したいと考えています。LinearDiscriminantAnalysisの関数をフィットまたは予測する

私は、この問題に多面体またはマテリアルのマットプロット点を使用してアプローチすることができますが、この方法でテストしたいと思います。ここで私はあなたがターゲットで混乱していると思います、そして、以下のように実行され、私はdocs

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis 
from sklearn.preprocessing import LabelEncoder 
le = LabelEncoder() 
labels_fea = le.fit_transform(Spatial_index['Postcode']) 
trainingdata=df1[['xcoord','ycoord']].values 
targetvalues=df2[['xcoord','ycoord']].values 
clf = LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None,  
n_components=None, store_covariance=False, tol=0.0001) 

に基づいたものだ

clf.fit(trainingdata,targetvalues) 

これは、次のエラーをスローし、

ValueError: bad input shape (8860, 2) 
+0

あなたは含めることができclf.predict(testdata)であなたのモデルをテストすることになるだろうtestdataからtargetdataの名前を変更し、その後

clf.fit(trainingdata, labels_fea) 

とやりたいです'fit'と呼ぶ行? – maxymoo

+0

最大を見てくれてありがとう、今すぐ追加しました –

答えて

0

とテスト。クラシファイアはラベルの1次元配列(あなたの場合はポストコード)を期待しているため、エラーが発生しています。あなたのデータを見ることなく、私は確かに言うことはできませんが、あなたはおそらく、あなたはあなたの予測が

+0

ありがとうございました。私はこれらの調整を行っています。時間がたっても消えています(ロンドン全体で約80kのラベルがあります)が、次のエラーを受け取ります。 'ZeroDivisionError:私は両方の( '地区')に共通のデータの別の列を追加して一致を改善できると思ったが、それはstrの値であるという事実を好きではない。私はコードの後ろで何が起こるのか分からないが、地区がポストコードの数を11,640以下に制限しているので、これが助けになると思った。 –

+0

データを見ることなく何が起こっているのかを言うのは難しいですが、このエラーが発生した場所でデータの最小限のサブセットを見つけることができますか?データセットの最初の数行に制限するだけでエラーになりますか? – maxymoo

関連する問題