データ分析の要約----- SVM(サポートベクターマシン)10の一般的なインタビューの質問



Summary Data Analysis Svm Ten Common Interview Questions

読む前にここを読んでください :ブロガーはデータ分析を学んでいるメンバーです。ブログには学習過程での要約が記録されており、皆さんと一緒に進歩していきたいと思います。録音するとき、必然的に多くの脱落と不完全さがあります。問題がある場合は、非公開にしてくださいブロガーが私を訂正します。
ブログアドレス: Tianlanの青いブログ 学習過程で困難と混乱が生じることは避けられません。誰もがこの学習プロセスで自分自身を肯定し、自分自身を超え、最終的に自分自身を創造できることを願っています。

SVM「サポートベクターマシン」10の一般的なインタビューの質問

(1)SVMの原理は何ですか?

サポートベクターマシンは 二項分類モデル 、その基本モデルはで定義されています 特徴空間で最大の間隔を持つ線形分類器 、最大間隔により、パーセプトロンサポートベクターマシンとは異なります。 核スキル 、それは彼を実質的にします 非線形分類器 。サポートベクターマシン 学習戦略は、間隔を最大化することです 、凸二次計画法を解く問題として形式化できます。これは、正則化されたヒンジ損失関数を最大化する問題にも相当します。サポートベクターマシン 学習アルゴリズムは、凸二次計画法を解くための最適なアルゴリズムです。



(2)サポートベクターマシンの分類と違い

画像

(3)SVMが間隔最大化を使用するのはなぜですか?

トレーニングデータが線形分離可能である場合、2つのタイプのデータを正しく分離できる無限の分離超平面があります。
パーセプトロンは、誤分類の最小戦略を使用して分離超平面を見つけますが、現時点では無数の解があります。
線形分離可能なサポートベクターマシン 間隔を最大化して、最適な分離超平面を見つけます 現時点では、ソリューションは独自のものです。 一方、この時点で分離超平面によって生成された分類結果は、最も堅牢であり、未知のインスタンスに対して最も強力な一般化能力を持っています。



(4)SVMがカーネル機能を導入するのはなぜですか? (線形分離可能性を線形分離可能性に変えます)

サンプルが元の空間で線形に分離できない場合、サンプルは元の空間から 高次元の特徴空間 、この特徴空間でサンプルを線形分離可能にします。

(5)一般的に使用されるカーネル関数

  • 多項式カーネル関数:
    K(x、z)=(x・z + 1)p K(x、z)=(x cdot z + 1)^ p
    対応するサポートベクターマシンはp pサブ多項式分類器。
    多項式カーネル関数は、低次元の入力空間を高緯度の特徴空間にマッピングできますが、多項式カーネル関数には多くのパラメーターがあります。多項式の次数が比較的高い場合、カーネル行列要素値は無限小または無限小になる傾向があり、計算の複雑さは計算するには大きすぎます。
  • ガウスカーネル関数:
    K(x、z)= e x p(− ∣ ∣ ∣ x − z ∣ ∣22σ2)K(x、z)= exp(- frac ^ 2 {2 sigma ^ 2})
    対応するサポートベクターマシンは、ガウス動径基底関数分類器です。
    ガウス動径基底関数は、サンプルを高次元空間にマッピングできる、強くローカライズされたカーネル関数です。カーネル関数が最も広く使用されています。大小のサンプルはどちらもパフォーマンスが高く、多項式カーネル関数よりもパラメーターが少なくなっています。そのため、ほとんどの場合、使用するカーネル関数がわからない場合は、ガウスカーネル関数が優先されます。
  • 線形カーネル関数
    K(x、z)=x⋅zK(x、z)= x cdot z
    線形カーネル。主に線形分離可能な状況で使用されます。特徴空間から入力空間までの次元は同じであり、パラメーターが少なく、速度が速いことがわかります。線形分離可能なデータの場合、分類効果は非常に理想的であるため、通常、最初に線形カーネル関数を使用して分類し、それがどれほど効果的であるかを確認し、そうでない場合は他の
  • Neuronの非線形作用カーネル関数Sigmoid:
    K(x、z)= t a n h(η(x・z)+θ)K(x、z)= tanh(η(x cdot z)+θ)
    シグモイドカーネル関数を使用して、サポートベクターマシンは多層ニューラルネットワークを実装します。

したがって、カーネル関数を選択するときに、データに関する事前の知識がある場合は、事前にデータ分布に準拠するカーネル関数を選択します。わからない場合は、通常、交差検定法を使用して試行します。異なるエラーが最小のカーネル関数が最も効果の高いカーネル関数であるか、複数のカーネル関数を組み合わせてハイブリッドカーネル関数を形成することができます。 Wu Endaのクラスでは、カーネル関数を選択するための一連のメソッドも提供されました。
特徴の数がサンプルの数と同じくらい多い場合は、LRまたは線形カーネルSVMを選択します
特徴の数が少なく、サンプルの数が正常である場合は、SVM +ガウスカーネル関数を使用します
特徴の数が少なく、サンプルの数が多い場合は、最初のケースになるようにいくつかの特徴を手動で追加する必要があります。

SVMカーネル機能の違い:
一般に、線形カーネルとガウスカーネルが選択されます。線形カーネルは、主に線形分離可能な状況で使用され、パラメーターが少なく、速度が高速です。
RBFコア:主に線形分離不可能性の場合に使用され、多くのパラメーターがあり、分類結果はパラメーターに大きく依存します。多くの人がトレーニングデータの相互検証を使用して適切なパラメーターを見つけますが、それはより時間がかかります。



(6)SVMを解くという元の問題をその二重問題に変換する必要があるのはなぜですか?

まず、双対問題は解決しやすいことがよくあります(制約が存在するときに最良の利点を探す場合、制約が存在すると検索の範囲は狭くなりますが、問題はより複雑になります。問題を簡単にするために処理するために、私たちの方法は、目的関数と制約を新しい関数、つまりラグランジュ関数に統合し、この関数を使用して最良の利点を見つけることです。)

双対問題を解くのが簡単な理由 、その理由は、アルゴリズムの計算の複雑さを軽減するためです。元の問題では、アルゴリズムの複雑さはサンプルの次元、つまり重みwに等しい次元に関連しています。双対問題では、アルゴリズムの複雑さは、ラグランジュ演算子の数であるサンプルの数に関連しています。
したがって、線形分類を行っていて、サンプルの次元がサンプルサイズよりも小さい場合は、元の問題で解決することをお勧めします。 Liblinearのような線形SVMはデフォルトでこれを行いますが、非線形分類を行う場合は、昇順の次元(カーネル関数としてガウスカーネルを使用するなど、実際にはサンプルは無限次元にアップグレードされます)、次元の後のサンプルは、サンプルの数よりもはるかに大きいことがよくありますが、現時点では明らかに、双対問題の下で解決する方が良いでしょう。
一方、サポートベクター上のサンプルに対応するラグランジュ演算子λのみが0より大きく、残りのλはすべて= 0であると分析しました。これは、双対問題の計算対象はλのみです。したがって、計算の複雑さが大幅に軽減されます。
次に、カーネル関数が自然に導入され、非線形分類問題に拡張されます。

SVMが元の問題から双対問題に変わる理由(簡略化)

  1. 双対問題は、元の問題の制約を双対問題の等式制約に変換します
  2. カーネル関数の導入を容易にします
  3. 問題の複雑さを変更しました。特徴ベクトルwの検索から比例係数aの検索まで、元の問題では、解の複雑さはサンプルの次元、つまりwの次元に関連しています。双対問題では、サンプルサイズにのみ関係します。

(7)SVMが欠落データに敏感なのはなぜですか?

ここで言及されている欠測データは、特定の特徴データの欠如を示しており、ベクトルデータは不完全です。 SVMには、欠落した値を処理するための戦略がありません(決定木にはあります)。 SVMは、サンプルが特徴空間で線形分離可能であることを望んでいるため、特徴空間の品質はSVMのパフォーマンスにとって非常に重要です。 機能データが欠落していると、トレーニング結果の品質に影響します。

(8)SVMは複数分類の問題にどのように対処しますか?

一般に2つの方法があります。1つは目的関数で直接変更される直接法であり、複数の分類面のパラメーター解は最適化問題にマージされます。簡単そうに見えますが、計算量が非常に多いです。

もう1つのアプローチは、トレーナーを組み合わせるという間接的な方法です。より典型的なものは1対1と1対多です。

1対多とは、分類器がクラスごとにトレーニングされ、svmが2クラス分類であるため、分類器の2つのクラスがターゲットクラスとして設定され、残りのクラスは別のクラスであることを意味します。このようにして、k個の分類子をk個のクラスに対してトレーニングできます。新しいサンプルが来ると、k個の分類器がテストに使用されます。その分類子の確率は高く、サンプルがどのクラスに属しているかがわかります。この方法はあまり効果的ではなく、バイアスは比較的高いです。

svm 1対1メソッド(1対1)、任意の2つのクラスの分類器をトレーニングします。k個のクラスがある場合、合計C(2、k)分類器がトレーニングされるため、新しいサンプルがある場合なると、これらのC(2、k)分類器を使用してテストします。特定のカテゴリに属する​​と判断されるたびに、カテゴリが1つインクリメントされ、最後に投票数が最も多いカテゴリがサンプルのカテゴリと見なされます。

(9)SVMはどのようにして過剰適合を防ぎますか?

サポートベクターに異常がある場合は、SVMにそのようなデータを適合させるのはばかげており、最終的な超平面は最適ではありません。
過剰適合の解決策は、SVMにスラック変数(ξ)を導入することです。
y i(w T x i + b)≥1−ξi y_i(w ^ Tx_i + b) geq 1- xi_i
したがって、SVMアナウンスの目的関数もそれに応じて変更する必要があります。緩和変数の二乗和を加算し、最小値を見つけます。このようにして、バランスが達成されます。異常点の問題を解決するためにスラック変数が存在することを期待し、スラック変数が大きすぎて分類ソリューションが不十分になることを望まないのです。

(10)SVMの長所と短所

  • SVMの利点:

•大きなフィーチャスペースを処理する機能
•非線形フィーチャ間の相互作用を処理する機能
•データ全体に依存する必要はありません

  • SVMのデメリット:

•観測サンプルが多い場合、効率はそれほど高くありません。
•適切なカーネル関数を見つけるのが難しい場合があります
この目的のために、これら3つのアルゴリズムをいつ選択するかを決定する簡単なワークフローを作成しようとしました。プロセスは、次のとおりです。
•最初に選択する必要があるのは、ロジスティック回帰です。効果が良くない場合は、その結果を参考にしてください。
•次に、決定木(ランダムフォレスト)がモデルのパフォーマンスを大幅に向上させることができるかどうかを試してください。最終モデルとして使用しない場合でも、ランダムフォレストを使用してノイズ変数を削除できます
•特徴と観測サンプルの数が特に多い場合、リソースと時間が十分であれば、SVMを使用することもできます。

参照: データマイニング(機械学習)インタビュー– SVMインタビューの質問(https://blog.csdn.net/szlcw1/article/details/52259668)