問題タブ [linear-discriminant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - scikit-learnでLDA(線形判別式)を使用して予測を実行するには?
自動的に識別したい 3 つの異なるタイプの画像タグを分類するために、PCA と LDA がどの程度うまく機能するかをテストしてきました。私のコードでは、X はデータ マトリックスで、各行は画像のピクセルであり、y は各行の分類を示す 1D 配列です。
LDA を使用すると、最終的に 3 つの明確に区別できるクラスターが得られますが、それらはわずかに重なり合うだけです。分類したい新しい画像がある場合、それを 1D 配列に変換したら、それがどのクラスターに分類されるかを予測するにはどうすればよいでしょうか。 "? また、「.transform(X)」関数が自分のデータに適合するとどうなるかにも興味がありました。
matlab - 線形判別分析で得られた投影からデータを再構築する方法
LDA で得られた投影からデータを再構築しようとしています。アイデアは、縮小された LDA 係数のセットから得られた再構成エラーを評価することです。次の matlab コードでは、射影されたデータ p と固有ベクトル LTrans を使用して再構成を取得する方法が問題になります。
math - 分類よりも回帰を使用する前に許容できるラベルの数
Python で教師あり学習を使用しようとしているところに問題があります。1 つのデータ セットのラベルに属していることがわかっている一連の x、y 座標があります。もう一方には、x、y 座標しかありません。1 つのセットを使用してもう 1 つのセットをトレーニングします。私のアプローチは、教師あり学習のアプローチであり、ラベルの数が離散的であるため、分類アルゴリズム (線形判別分析) を使用します。それらは離散的ですが、数が多いです(n =〜80,000)。私の質問は、回帰が連続ラベルに適している分類よりも回帰を考慮する必要があるラベルの数です。機械学習パッケージとして SciKit を使用し、ガイドとして astronml.orgs の優れたチュートリアルを使用しています。
r - 線形判別関数と柔軟判別関数の分析における R 係数
私は柔軟な判別関数分析、特にRの「mda」パッケージの「fda」コマンドを理解しようとしています。私の理解では、デフォルトの方法は単純な線形判別関数分析であり、どの方法が私のものかを理解できます。元の予測子は、次のコードを使用して各判別式に最も貢献します (ドキュメントの例から)。
私の理解では、上記から、Petal.Width が DF1 のグループの識別に最も大きく貢献していると解釈できます (ただし、この例では、他の変数が同様の識別を行っています)。
メソッドが火星に設定されている場合(たとえば、柔軟な判別関数分析を使用している場合)、類似の係数を取得しようとしています。
メソッドの理解が限られていることを許してください。ここで何が返されるか、これらの値をどのように解釈するかについては明確ではありません (たとえば、7 つの行がありますが、初期変数は 4 つしかありません...係数には非線形も含まれていますか?モデルの項?)。Hastie et al からこれを理解できませんでした。紙...
また、分析の主な動機は結果の分類ではなく、この分類でどの変数が最も識別力があるかを理解することであることを説明する必要があります。私は他の方法を模索していますが、fdaが役立つかもしれないと思いました...
前もって感謝します!
c++ - LDA を使用して SVM をトレーニングする方法
OpenCV 3.0 で C++ を使用しています。
いくつかの画像から抽出した機能を含むトレーニング データ マトリックスがあります ( trainData )。それぞれ 1104 個の特徴を持つ 2750 個の画像 (正と負) があるため、このマトリックスのサイズは 2750x1104 です。ラベル ( trainLabels ) を持つ 2750x1 の他のマトリックスがあります。
- trainData : 2750 画像 x 1104 特徴。
- trainLabels : 2750 画像 x 列ごとに 1 ラベル
この情報を使用して SVM をトレーニングし、PCA (主成分分析)、LDA (線形判別分析)、および両方の組み合わせを使用してパフォーマンスを評価したいと考えています。問題なく PCA を適用しましたが、LDA を使用すると、SVM が入力として使用できない2750x1 ( projected ) の行列が得られます。
このリンクを使用しましたが、SVM を採用していません。
これはコードです:
num_componentsを 1 として選択しました。これは、2 つのクラス (人物と人物なし) があるためです。
そして、これらは私の結果です:
- 固有ベクトル: 1104 行 x 1 列
- 投影: 2750 行 x 1 列
私が理解している限り、固有ベクトルは 1104x1104 で射影された 2750x1104 である必要があるため、SVM は射影された行列でトレーニングできます。
コードが本当に間違っているかどうかはわかりません。LDA がどのように機能するかを正しく理解していない可能性があります。もしそうなら、私にいくつかのヒントを教えてもらえますか?実際、LDA を使用して SVM をトレーニングできますか?
前もって感謝します。
python - sklearn/PythonでLDAが1列しか返さないのはなぜですか?
次のコード
以下を返します。
つまりlda.fit()
、言われているにもかかわらず、1列を返しますn_components=2
。
2列を強制的に返す理由と方法は?
machine-learning - カーネル フィッシャーの影響を元に戻すにはどうすればよいですか?
私は自分のプロジェクトでカーネルフィッシャーの判別分析を使用しましたが、うまく機能しました。しかし、私の問題は、カーネル関数を使用してデータセットをマッピングすると、すべてのデータとすべての固有値と固有ベクトルがその空間にあり、新しいサンプルをテストするためにいくつかの問題に直面するという事実から生じます。例を挙げて説明しましょう。たとえば、各サンプルを説明するための 10 の特徴を持つ 50 のサンプルがある場合、データ マトリックスは 50 x 10 であり、この関数をマッピングすると、新しい特徴空間で 50 x 50 のマトリックスになります。したがって、固有ベクトル (FDA では W) も 50D 空間にあります。特徴として 10 個の要素を持つベクトルである新しいサンプルをテストするために、マップされたデータ マトリックスは 10 x 10 になり、50D 空間にないため、それを W に射影してどのクラスがそれを行うかを取得することはできません。に属しています... 助けてください、どうすればよいですか?
switch-statement - Shiny で 2 グループと 2 グループ以上の LDA を切り替えると、次元数が正しくない
私は、実践者がメソッドをより利用できるようにするために、機知に富んだ研究記事を含む光沢のあるアプリを作成する方法を独学してきました。Shiny を使用して、特定の変数セットに対して判別関数分析を行う Web アプリを作成しています。分析から 3 つ以上のグループが選択されている場合、アプリケーションは正常に動作しますが、スイッチ機能を使用してコードを 2 つのグループに変更すると、ディメンションの数が正しくないというエラーが発生します。コードは正常に機能していたので、R と rStudio を更新しましたが、2 つのグループ比較を試みるたびに、「次元の数が正しくありません」というメッセージが表示されました。数時間デバッグしようとしましたが、役に立ちませんでした。
光沢のあるインターフェイスでは、ユーザーは 2 グループ分析と 2 グループ以上の分析のいずれかを選択し、グループを選択してから、データをデータ入力テーブルに入力できます。入力された変数に応じて参照データがサブセット化されるようにテーブルを設定しました。
以下はserver.Rコードです - コーディングのひどい状態を許してください - これは私の最初の試みであり、私は進んで学んでいます.
そしてサーバー.R
lda_mod でスイッチ関数を配置する場所を変更しようとしましたが、同じ問題が発生し続けます。どんな提案でも大歓迎です。