Octaveは、数値解析のための高レベルのプログラミング言語です。主に理工系の技術者・研究者が使用しており、フリーで使うことが可能。線形もしくは非線形問題を数値的に解くCLIを提供します。
MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。
機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。
Q&A
解決済
1回答
4641閲覧
総合スコア68
0グッド
0クリップ
投稿2019/03/04 08:28
0
Xを画像の2次元のデータとしてOctaveでプログラムを書いてみたのですが、次のように分散共分散行列から固有値、固有ベクトルを求めたあと何をすれば2次元のデータを上手に表す直線を描くことができるのでしょうか。
Octave1[V D] = eig(cov(X)); 2[D order] = sort(diag(D), 'descend'); 3V = V(:,order);
Octave
1[V D] = eig(cov(X)); 2[D order] = sort(diag(D), 'descend'); 3V = V(:,order);
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
2019/03/04 08:55
回答1件
ベストアンサー
固有ベクトルが正規直交基底になります。元の空間上でプロットするなら、固有ベクトルを交点がデータの中心(単にx, yそれぞれの平均座標)に来るような2本の線として出せば良いです。
あるいは、平均ベクトルを引いたデータと求めた固有ベクトルとをかけ合わせて線形変換すればX軸とY軸がそのまま「2次元のデータを上手に表す直線」になります。一般的に活用されるのはこちらです。
投稿2019/03/04 08:50
総合スコア30939
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
主成分分析で固有値、固有ベクトルを求めたあとの処理について