2016-06-13 10 views
-1

私はこのタイプのnumpy配列を持っています。ここでは、配列の2つの要素を示しました。 .jpegファイルをnumpy配列に変換しました。教師なし学習の次元を小さくする

[[[130 130 130 ..., 255 255 255] 
    [255 255 255 ..., 255 255 255] 
    [255 255 255 ..., 255 255 255] 
    ..., 
    [255 255 255 ..., 255 255 255] 
    [255 255 255 ..., 255 255 255] 
    [ 68 68 68 ..., 68 68 68]] 

    [[130 130 130 ..., 255 255 255] 
    [255 255 255 ..., 255 255 255] 
    [255 255 255 ..., 255 255 255] 
    ..., 
    [255 255 255 ..., 255 255 255] 
    [255 255 255 ..., 255 255 255] 
    [ 68 68 68 ..., 68 68 68]]] 

このnumpy配列の形状は、(2,243,320)です。 今、私はラベル付きの配列と一緒に、この機能の配列の教師なし学習をしたいと思います。しかし、私がそれをしようとすると、予想される引数の数が示されます< = 3。

今、私はLDAで次のように寸法を縮小しようとしました。

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis 
lda = LinearDiscriminantAnalysis(n_components=2) 
X_r2 = lda.fit(features, labels).transform(features) 

しかし、LDAは< = 2次元を期待しています。どのようにディメンションを減らすのですか?

答えて

1

、あなたは.fitが必要とするフォーマットは、2次元配列です....必要な形式でリストを送信していません。あなたが送信しているのは3次元です...次元の縮小を使用する必要は全くありません。それはまったく別の問題なので...(オーバーフィットが特定できないようにする)

あなたの配列は名前arr(ndarray)

はちょうどこれを行う - やるこれは、今あなたがモデルに合うようにそれを使用することができ、2Dリストとwootにあなたの配列に変換は何

fin_array = arr.reshape((2*243, 320)) 

+0

優れた答えです。どうもありがとうございます。私は機械学習には新しいので、私の基礎はそれほど強くない。 –

0

使用リシェイプ:あなたのコードに問題は単純である

new_img = np.reshape(old_data,(2,243*320)) 
+0

ValueError:新しい配列の合計サイズは変更しないでください。 これは私がこれを試したときのエラーです。 –

+0

これを試してください:new_img = np.reshape(old_data、(2,243 * 320,1))そして最後の軸を取り除くためにsqueezeを使います。 – Alessandro

関連する問題