Big-data-analytics-online-learning
ビッグデータ分析-オンライン学習
オンライン学習は、教師あり学習モデルを大規模なデータセットに拡張できる機械学習のサブフィールドです。 基本的な考え方は、モデルに適合するためにメモリ内のすべてのデータを読み込む必要はなく、各インスタンスを一度に読み込むだけでよいということです。
この場合、ロジスティック回帰を使用してオンライン学習アルゴリズムを実装する方法を示します。 ほとんどの教師あり学習アルゴリズムのように、最小化されたコスト関数があります。 ロジスティック回帰では、コスト関数は次のように定義されます-
J(\ theta)\:= \:\ frac \ {-1} \ {m} \ left [\ sum _ \ {i = 1} ^ \ {m} y ^ \ {(i)} log(h_ \ {\ theta}(x ^ \ {(i)}))+(1-y ^ \ {(i)})log(1-h _ \ {\ theta}(x ^ \ {(i)})) \ right]
ここで、_J(θ)_はコスト関数を表し、_h〜θ〜(x)_は仮説を表します。 ロジスティック回帰の場合、次の式で定義されます-
h_ \ theta(x)= \ frac \ {1} \ {1 + e ^ \ {\ theta ^ T x}}
コスト関数を定義したので、最小化するアルゴリズムを見つける必要があります。 これを実現する最も簡単なアルゴリズムは、確率的勾配降下法と呼ばれます。 ロジスティック回帰モデルの重みのアルゴリズムの更新ルールは次のように定義されています-
\ theta_j:= \ theta_j-\ alpha(h_ \ theta(x)-y)x
次のアルゴリズムにはいくつかの実装がありますが、https://github.com/JohnLangford/vowpal_wabbit/wiki [vowpal wabbit]ライブラリに実装されているものは、最も開発されたものです。 このライブラリは、大規模な回帰モデルのトレーニングを可能にし、少量のRAMを使用します。 クリエーター自身の言葉では、「Vowpal Wabbit(VW)プロジェクトは、Microsoft Researchおよび(以前は)Yahoo!がスポンサーとなっている高速なコア外学習システムです。 研究"。
- トレーニングデータ(train_titanic.csv)があり、
- 新しい予測を行うためのラベルなしデータ(test_titanic.csv)。
csv形式を vowpal wabbit 入力形式に変換するには、 csv_to_vowpal_wabbit.py Pythonスクリプトを使用します。 このためには、当然pythonをインストールする必要があります。 bda/part3/vw フォルダーに移動し、ターミナルを開いて次のコマンドを実行します-
このセクションでは、Windowsを使用している場合、Unixコマンドラインをインストールする必要があるため、そのためのhttps://www.cygwin.com/[cygwin] Webサイトを入力してください。
端末を開き、フォルダ bda/part3/vw で次のコマンドを実行します-
- -f model.vw -後で予測を行うためにmodel.vwファイルにモデルを保存することを意味します
- *-binary *--1、1ラベルのバイナリ分類として損失を報告
- -20回通過-データは重みを学習するために20回使用されます
- -c -キャッシュファイルを作成する
- -q ff -f名前空間で2次機能を使用する
- *-sgd *-定期的/古典的/単純な確率的勾配降下更新、つまり、非適応、非正規化、および不変量を使用します。
- *-l1 --l2 *-L1およびL2ノルム正則化
- *-learning_rate 0.5 *-更新ルールの式で定義された学習率α
次のコードは、コマンドラインで回帰モデルを実行した結果を示しています。 結果では、平均のログ損失とアルゴリズムのパフォーマンスの小さなレポートを取得します。
これで、トレーニングした model.vw を使用して、新しいデータで予測を生成できます。
前のコマンドで生成された予測は、[0、1]の範囲に収まるように正規化されていません。 これを行うには、シグモイド変換を使用します。