1

私は Weka 3.7.9 の初心者です。これらの属性、クラス、およびデータを含むarffファイルを取得しました: http://pastebin.com/s8hivv0U

Android プロジェクトを表すこのファイル。だから、1-9。属性はさまざまな種類のメトリックです。

  1. lloc - コードの論理行
  2. nid - ID の数
  3. nle - ネスト レベル
  4. nel - 要素数
  5. nip - 入力要素の数
  6. activites - AndroidManifest からのアクティビティの数
  7. inside-permissions - AndroidManifest からの内部アクセス許可の数
  8. outside-permissions - AndroidManifest からの外部アクセス許可の数
  9. all-permissions - AndroidManifest からのアクセス許可の数
  10. クラス{4、4.6、3.8、2.6。5、3.2、3.6、4.2、4.1}

最後は、プロジェクトの Google Play 評価を含むクラスです。

したがって、各行は Andorid プロジェクトです。(当然、元の *.arff ファイルにはさらに多くのプロジェクトが含まれています...)

学習アルゴリズムでデータを分析したいと考えています。予測因子は 1 から 9 までです。主に Google Play の評価に影響を与える予測因子を特定したいと思います。

どうやってやるの?そして、それを行うための最良の方法は何ですか? できれば説明をお願いしたいです。

前もって感謝します、ピーター

4

1 に答える 1

0

クラスタイプ

まず、出力を連続させたい場合は、classタイプをに変更することをお勧めします。numericそれ以外の場合は、クラスのラベル タイプをnominal(現在のように) のままにし、評価を に変更することをお勧めします{1, 2, 3, 4, 5}

数値出力に変更する場合 (たとえば、4.5 星の予測を与えることができるようにするため)、数値クラスが可能な分類子を使用する必要があります。

ウェカの使用

Weka の使用方法については、ドキュメントを参照して、チュートリアルを参照することをお勧めします。たとえば、ARFF ファイルをダブルクリックした後は、ほとんどの作業をClassifyタブで行っているはずです。分類子を選択してから、 を選択しますStart

分類子

回帰

回帰、特に線形回帰は、単純に各属性に重みを割り当て、それらの重みの乗算と加算を使用して出力を生成するため、解釈が容易なため優れています。

あなたのサンプル ファイルを使用して でテストしましたがLinearRegression、サンプル数が少ないため、最良のモデルは単純に3.9667評価として出力することであり、平均絶対誤差は0.4722.

満足できませんでした。次に を試してみSimpleLinearRegressionました。これにより、モデル -0.02 * activites + 4.13が得られ、平均絶対誤差 が得られます0.472

SMOreg次のモデルを与える

weights:
 +       0.1147 * (normalized) lloc
 -       0.0404 * (normalized) nid
 -       0.1662 * (normalized) nle
 -       0.0647 * (normalized) nel
 +       0.3385 * (normalized) nip
 -       0.1352 * (normalized) activites
 -       0.019  * (normalized) inside-permissions
 -       0.0464 * (normalized) outside-permissions
 +       0.1602 * (normalized) all-permissions
 +       0.5921

であり、平均絶対誤差は0.3859です。しかし、現時点では、データポイントが非常に少ないため、データをオーバーフィットしていると思います。

最近傍

より多くのデータがある場合は、 k 最近傍を使用することが実行可能なアプローチになる可能性があります (Weka では と呼ばれKStarます)。

決定木

アルゴリズムはDecisionStumpこのモデルを の平均絶対誤差で出力しますが0.3424、やはり過適合の可能性があります。

inside-permissions <= 1.5 : 2.6
inside-permissions > 1.5 : 4.090909090909091
inside-permissions is missing : 3.966666666666667

より多くのデータ

ご覧のとおり、データ ポイントが 12 個しかないことを考えると、モデルとエラー率はそれほど高くありません。本当に優れたモデルを構築するには、より多くのデータが必要になります。モデルのパフォーマンスを正確に把握するには、トレーニングに使用するのに十分なデータだけでなく、モデルのパフォーマンスをテストするためだけに使用する別のテスト セットとして保持するのに十分なデータが必要です。

于 2013-04-27T01:20:14.797 に答える