私はデータ処理と統計に慣れていないので、どこに投稿すればよいかわからない質問があります。これが適切な場所であることを願っています。
私は現在、機械学習プロジェクトに取り組んでいます。いくつかのデータがあり、SVMを使用したいと思います。まず、データを[0; 1]間隔に配置するためにスケーリングを適用する必要があると思います。私はこの式を適用しました:
n = (e - e_min)/(e_max - e_min)
次に、列の各要素に平均正規化(列の要素-この列の平均)を適用しました。
その後、SVMを使用して、良好な予測結果が得られました。しかし、結果の精度を向上させたいと思います。じゃあどうすればいい ?より良いスケーリングアルゴリズムを見つけることができると思いますが、私にはわかりません...私を助けることができるスケーリングアルゴリズムを知っていますか?または、SVMで予測を改善するための他のアイデアはありますか?
ありがとうございました。
さまざまな正規化方法を試すことができます。一般的なものには、Pノルムまたは単に線形ノルムとも呼ばれるLノルムが含まれます。
より一般的な方法は、特徴選択または特徴学習と呼ばれます。これは、どの機能が分類器にとって実際に価値があるかを識別しようとします。MATLABの特徴選択方法?いくつかの提案を提供します。
試すもう1つの一般的なことは、SVMにさまざまなカーネルを使用することです。カーネルは、機能を別の機能空間に変換します。これにより、SVMで機能をより分離できるようになる場合とされない場合があります。Matlabのsvmtrain
関数には、「kernel_function」パラメーターにいくつかのカーネルオプションがあります。このドキュメントには、ガウスカーネルを使用するためのチュートリアルも含まれています。
分類器の精度を向上させることは、通常、正規化方法、特徴選択方法、およびカーネルの複数の組み合わせをテストするプロセスです。通常、いくつかの異なる分類子もテストします。
SVMを使用した結果を、DecisionForestまたはAdaBoostなどの他の非線形手法と比較することをお勧めします。SVMは、線形分離可能データ(またはカーネルで線形分離可能であるデータ)に対して非常に強力ですが、データが線形分離可能でない場合、標準と特徴選択を試してみると、ある程度まで分類が改善されるだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加