記事内に商品プロモーションを含む場合がありますウマたん当サイト【スタビジ】の本記事では次元の呪いについて解説してきます。次元の呪いとは、高次元になればなるほど機械学習による回帰・分類が上手くいかない現象を指します。高次元であると必要な出た量が指数関数的に増加することを意味しています。今回は次元の呪いとその解決方法について解説していきます。こんにちは!スタビジ編集部です!今回は次元の呪いについて解説していきます!次元の呪いとは「データが高次元になるにつれて、機械学習における回帰・分類の汎化性能が低下する現象」です。次元の呪いについて解説!何故高次元になるほど、機械学習モデルの精度が低下するのでしょうか?簡単な例から見てみましょう!例として書店に行ったとき、どの本を買いたいかを考えたとします。この時、本を選ぶ基準というのは様々です。「ジャンル」で考えればSF・ホラー・純文学...などで考えると5種類ぐらいあると考えます。この特徴量「ジャンル」だけ見れば5通りの中から1つ選ぶだけなので簡単そうですね!しかしジャンルだけでなく、作者やページ数、評価といった特徴量を考えると何千通りの中から1つ選ぶことになります。これを繰り返していくと指数関数的に情報量が多くなることが考えられますね!これを「次元の呪い」と呼びます。情報量が指数関数的に増加することでどういった問題が発生するのでしょうか?高次元ということは必然的にデータ量を多くなってしまうので計算量が膨大になることが考えられます。不必要な情報も混じっている可能性が高いです。したがって次元の呪いの問題点は「計算時間は膨大になりつつ、適切な評価ができているかわからないこと」と考えられます!(ビジネスでは致命的になりますね...)数学的な観点から考えた次元の呪い次元の呪いを数学的な観点から考えてみると、見え方が少し変わります。数学的な観点から考えた次元の呪いとは「高次元になると、データが空間の外側に分布してしまう現象」と表せます。例として、半径rの球体の上に十分に小さい厚さεの薄皮があると考えましょう。この時、半径がrのd次元球体の体積は以下の通りになります。Γ()はガンマ関数を表しています!\(V_{r}=\frac{π^{d/2}r^{d}}{Γ(d/2)+1}\)次に半径r+εの超球の体積は以下の通りになります!先ほどの式とほぼ一緒ですね。\(V_{r+ε}=\frac{π^{d/2}(r+ε)^{d}}{Γ(d/2)+1}\)この時、これらの球体の体積の比はどうなるかというと...?\(\frac{V_{r}}{V_{r+ε}}=(1+\frac{ε}{r})^{-d}\)つまり次元数dを無限に増加させると、この体積の比は0に近づくことが考えられますね!したがって薄皮の厚さεの部分の体積と、その内部の半径rのd次元球体の比を考えたとき、表面の体積の割合がほとんど1になり、内部の体積は0になってしまいます!したがってd次元空間の次元数が大きくなると、体積が0の領域にはデータが生起されないと考えられます。原点付近のデータがほぼ発生しないことと同じです。することで高次元データの次元を削減しつつ、なるべく情報量のロスを抑えることが考えられます。次元削減の方法はいくつかありますが、代表的な手法は主成分分析(PCA)でしょう。主成分分析とは複数の変数をいくつかの変数に合成する手法です。こちらの記事をぜひ参考にしてみてください!主成分分析とは?簡単な説明とPythonでの実装!当サイト【スタビジ】の本記事では、実務の基礎分析にて使われることの多い主成分分析について詳しく見ていきます。することで、有用な特徴量のみを選択しつつ次元を削減する方法が考えられます。特徴量選択の基準として、ランダムフォレスト・XGBoostで使われる特徴量重要度が考えられます。Lasso回帰によって、不要な特徴量の係数を0にすることも挙げられます。これらの記事もぜひ見てくださいね!ランダムフォレストとは?PythonとRで実装してみよう!当サイト【スタビジ】の本記事では、決定木をアンサンブル学習することにより汎化能力を高めた強力な機械学習手法「ランダムフォレスト」について見ていきましょう!アルゴリズムを確認した後にRでもPythonでも実装をおこなっていきますよー!...XGboostとは?理論とPythonとRでの実践方法!当ブログ【スタビジ】の本記事では、機械学習手法の中でも非常に有用で様々なコンペで良く用いられるXgboostについてまとめていきたいと思います。最後にはRで他の機械学習手法と精度比較を行っているのでぜひ参考にしてみてください。...Lasso(ラッソ)回帰・Ridge(リッジ)回帰を線形回帰と比較して実装してみよう!当サイト【スタビジ】の本記事では、線形回帰・Lasso(ラッソ)回帰・Ridge(リッジ)回帰についてRでの実装も行いながらまとめていきます。高次元データを分析する際はぜひLasso(ラッソ)回帰・Ridge(リッジ)回帰を利用してみてくださいね!...次元の呪いについて検証してPythonで主成分分析を使って次元削減に挑戦!次元の呪いの影響について実際にシミュレーションデータを発生させて確認してみましょう!ここでは2値分類の1000サンプルのデータセットを作成します。100で検証してみましょう!コードは以下のようになります。0.8866666666666667}次元数5~50までは分類精度はそれほど変わりませんが、次元数が100になり大きく分類精度が下がっていることが分かります。まとめ本記事では次元の呪いについてまとめました!このようなデータサイエンスの力を身に付けるためにはスタビジの記事やスクールを活用すると良いでしょう。データサイエンスを網羅的に学ぶ実践的なビジネスフレームワークを学ぶSQLとPythonを組み合わせて実データを使った様々なワークを行うマーケティングの実行プラン策定マーケティングとデータ分析の掛け合わせで集客マネタイズデータサイエンティストとしての経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「スタアカ」!!当メディアが運営するスクールです。24時間以内の質問対応と現役データサイエンティストによる複数回のメンタリングを実施します!カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください!他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!...【データサイエンティスト厳選18冊】データサイエンスを学ぶ上でオススメな本・教材!当ブログ【スタビジ】の本記事では、データサイエンスを学ぶ上でオススメできる本を厳選して紹介していきます。ここではデータサイエンティストになるために習得するスキルをデータサイエンスと称しております。いくつかの観点に切り分けて見ていきます。...スタビジアカデミーでデータサイエンスをさらに深く学ぼう!スタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。CEO&データサイエンティスト。AIデータサイエンスに特化した「スタビジ」という月15万人に読まれるWEBメディアや4万人超が登録するYoutubeチャンネル運営。Udemy講師として3万人以上に指導。