Weka 機械学習ミニコース
14 日間で機械学習プラクティショナーになる
機械学習は魅力的な研究ですが、実際に自分の問題にどのように活用するのでしょうか?
機械学習用にデータを準備する最適な方法、使用するアルゴリズム、またはモデルを選択する方法について混乱するかもしれません。
この投稿では、数式やプログラミング コードを一切使用せずに、Weka プラットフォームを使用して応用機械学習を学ぶ 14 部構成の短期集中コースをご覧いただけます。
このミニコースを完了すると、次のようになります。
- データセットをエンドツーエンドで処理し、一連の予測や高パフォーマンスのモデルを提供する方法を理解します。
- アルゴリズムの探索方法や制御された実験の設計方法など、Weka 機械学習ワークベンチの使い方を理解できるようになります。
- 問題の複数のビューを作成し、複数のアルゴリズムを評価し、統計を使用して独自の予測モデリング問題に対して最もパフォーマンスの高いモデルを選択する方法を学びます。
私の新しい本『Machine Learning Mastery With Weka』 でプロジェクトを始めましょう。これにはステップバイステップのチュートリアルとすべての例の明確なスクリーンショットが含まれています。
始めましょう。
(ヒント: 後で参照できるように、このページを印刷またはブックマークしておくとよいでしょう)。
このミニコースは誰を対象としていますか?
始める前に、ここが正しい場所であることを確認しましょう。以下のリストは、このコースが誰を対象に設計されているかに関する一般的なガイドラインを示しています。
これらのポイントが正確に一致していなくてもパニックにならないでください。追いつくには、1 つまたは別の領域をブラッシュアップする必要があるだけかもしれません。
あなたは機械学習について少しだけ知っている開発者です。
これは、相互検証、いくつかのアルゴリズム、バイアスと分散のトレードオフなど、機械学習の基本のいくつかについて理解していることを意味します。これは、あなたが機械学習の博士号を取得しているという意味ではなく、ランドマークを知っている、またはどこで調べればよいかを知っているというだけです。
このミニコースは機械学習の教科書ではありません。
これにより、機械学習を少し知っている開発者から、Weka プラットフォームを使用してデータセットを最初から最後まで処理し、一連の予測や高性能モデルを提供できる開発者になれます。
ミニコースの概要 (何を期待するか)
このミニコースは14のパートに分かれています。
各レッスンは約 30 分かかるように設計されています。はるかに早く終わるものもあれば、より深く掘り下げて時間を費やすことを選択するものもあります。
各パートは、好きなだけ早く完了することも、ゆっくりと完了することもできます。無理のないスケジュールは、2 週間にわたって 1 日 1 レッスンを完了することです。強くお勧めします。
次の 14 レッスンで取り上げるトピックは次のとおりです。
- レッスン 01: Weka をダウンロードしてインストールします。
- レッスン 02: 標準の機械学習データセットを読み込みます。
- レッスン 03: 記述的な統計と視覚化。
- レッスン 04: データを再スケーリングします。
- レッスン 05: データの特徴選択を実行します。
- レッスン 06: Weka の機械学習アルゴリズム。
- レッスン 07: モデルのパフォーマンスを推定します。
- レッスン 08: データのベースライン パフォーマンス。
- レッスン 09: 分類アルゴリズム。
- レッスン 10: 回帰アルゴリズム。
- レッスン 11: アンサンブル アルゴリズム。
- レッスン 12: アルゴリズムのパフォーマンスを比較します。
- レッスン 13: アルゴリズム パラメーターを調整します。
- レッスン 14: モデルを保存します。
これはとても楽しいことになるでしょう。
ただし、Weka を少し読んだり、少しいじったりするなど、いくつかの作業を行う必要があります。応用機械学習を始めたいと思っていますよね?
(ヒント: これらのレッスンの答えはすべてこのブログで見つけることができます。検索機能を使用してください)
ご質問がございましたら、以下のコメント欄にご投稿ください。
コメントで結果を共有してください。
頑張れ、諦めないで!
レッスン 01: Weka をダウンロードしてインストールする
最初に行うことは、Weka ソフトウェアをワークステーションにインストールすることです。
Weka は無料のオープンソース ソフトウェアです。これは Java で書かれており、Java をサポートする次のプラットフォーム上で実行できます。
- ウィンドウズ。
- Mac OS X。
- リナックス。
Weka は、スタンドアロン ソフトウェアとして、または Java にバンドルされたバージョンとしてダウンロードできます。
システムに Java がまだインストールされていない場合は、Java にバンドルされているバージョンをダウンロードしてインストールすることをお勧めします。
- このレッスンのタスクは、Weka ダウンロード ページにアクセスし、Weka をダウンロードしてワークステーションにインストールすることです。
レッスン 02: 標準の機械学習データセットをロードする
Weka をインストールしたので、データをロードする必要があります。
Weka は、ARFF と呼ばれるネイティブ形式でデータをロードするように設計されています。これは、各属性 (列) のタイプに関する追加情報を含む、修正された CSV 形式です。
Weka のインストールには、すぐにロードできる ARFF 形式の標準的な機械学習データセットが多数含まれたサブディレクトリが含まれています。
Weka は、生の CSV ファイルやデータベースからのデータの読み込みもサポートしており、必要に応じてデータを ARFF に変換します。
このレッスンでは、Weka Explorer に標準データセットをロードします。
- Weka を起動します (鳥のアイコンをクリックします)。これにより、Weka GUI セレクターが起動します。
- 「エクスプローラー」ボタンをクリックすると、Weka Explorer インターフェースが開きます。
- 「ファイルを開く…」ボタンをクリックし、Weka インストール内の data/ ディレクトリに移動して、diadiadia.arff データセットをロードします。
Weka インストールに data/ ディレクトリがない場合、または見つからない場合は、Weka ダウンロード Web ページから Weka の .zip バージョンをダウンロードし、解凍して data/ ディレクトリにアクセスしてください。
Weka に最初のデータセットをロードしました。
他のデータセットのいくつかを data/ ディレクトリにロードしてみてください。
UCI Machine Learning リポジトリから生の CSV ファイルをダウンロードし、Weka にロードしてみてください。
レッスン 03: 記述統計と視覚化
Weka にデータをロードできたら、それを確認することが重要です。
Weka を使用すると、データから計算された記述統計を確認できます。視覚化ツールも提供します。
このレッスンでは、Weka を使用してデータについて詳しく学習します。
- Weka GUI セレクターを開きます。
- Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「属性」リストでさまざまな属性をクリックし、「選択した属性」ペインで詳細を確認します。
- すべての属性分布を確認するには、「すべて視覚化」ボタンをクリックします。
- 「視覚化」タブをクリックし、すべての属性の散布図マトリックスを確認します。
「前処理」タブでさまざまな属性の詳細を確認し、「視覚化」タブで散布図マトリックスを調整することに慣れてください。
レッスン 04: データを再スケーリングする
多くの場合、生データはモデリングには適していません。
多くの場合、属性を再スケーリングすることで機械学習モデルのパフォーマンスを向上させることができます。
このレッスンでは、Weka でデータ フィルターを使用してデータを再スケーリングする方法を学びます。データセットのすべての属性を正規化し、0 から 1 の一貫した範囲に再スケーリングします。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「フィルター」ペインの「選択」ボタンをクリックし、unsupervised.attribute.Normalize を選択します。
- 「適用」ボタンをクリックします。
「選択した属性」ペインで各属性の詳細を確認し、スケールの変更を確認します。
標準化フィルターなどの他のデータ フィルターを使用して調べます。
ロードされたフィルターの名前をクリックし、パラメーターを変更して、フィルターの構成を確認します。
[前処理] タブの [保存…] ボタンをクリックして、後で使用できるように変更したデータセットを保存してテストします。
レッスン 05: データの特徴選択を実行する
データセット内のすべての属性が、予測する属性に関連しているとは限りません。
特徴選択を使用して、出力変数に最も関連する属性を特定できます。
このレッスンでは、さまざまな特徴選択方法の使用に慣れます。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「属性の選択」タブをクリックします。
「属性評価」ペインの「選択」ボタンをクリックし、「CorrelationAttributeEval」を選択します。
- この特徴選択方法を使用する場合に必要な「ランカー」検索方法に変更するよう求めるダイアログが表示されます。 「はい」ボタンをクリックします。
[属性選択出力] ペインの出力を確認し、各属性の相関スコアに注目してください。数値が大きいほど、特徴の関連性が高いことを示します。
情報ゲイン (エントロピー) の使用など、他の特徴選択方法を検討してください。
[前処理] タブと [削除] ボタンで、データセットから削除する特徴の選択を確認します。
レッスン 06: Weka の機械学習アルゴリズム
Weka ワークベンチの主な利点は、提供される多数の機械学習アルゴリズムです。
機械学習アルゴリズムを回避する方法を知る必要があります。
このレッスンでは、Weka の機械学習アルゴリズムを詳しく見ていきます。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「分類」タブをクリックします。
- 「選択」ボタンをクリックして、アルゴリズムのさまざまなグループに注目してください。
- 選択したアルゴリズムの名前をクリックして構成します。
- 実装の詳細については、設定ウィンドウの「詳細」ボタンをクリックしてください。
- 設定ウィンドウの「機能」ボタンをクリックすると、その使用方法の詳細が表示されます。
- ウィンドウ上の「開く」ボタンと「保存」ボタンに注目してください。さまざまな設定を保存およびロードできます。
- 構成パラメータにカーソルを置くと、ツールチップのヘルプが表示されます。
- 「開始」ボタンをクリックしてアルゴリズムを実行します。
利用可能なアルゴリズムを参照してください。データセットが分類 (カテゴリの予測) タイプの問題であるか、回帰 (実数値の予測) タイプの問題であるかに応じて、一部のアルゴリズムは使用できないことに注意してください。
Weka で利用可能なさまざまなアルゴリズムを調べて詳しく学習してください。
アルゴリズムの選択と構成に自信を持ってください。
レッスン 07: モデルのパフォーマンスを推定する
さまざまなアルゴリズムを選択して構成する方法がわかったので、次はアルゴリズムのパフォーマンスを評価する方法を知る必要があります。
このレッスンでは、Weka のアルゴリズムのパフォーマンスを評価するさまざまな方法について学びます。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「分類」タブをクリックします。
「テスト オプション」ペインには、アルゴリズムのパフォーマンスを評価するために使用できるさまざまな手法がリストされます。
- ゴールドスタンダードは 10 倍の「相互検証」です。これはデフォルトで選択されています。小さなデータセットの場合、折り畳みの数は 10 から 5、さらには 3 まで調整できます。
- データセットが非常に大きく、アルゴリズムを迅速に評価したい場合は、「パーセンテージ分割」オプションを使用できます。デフォルトでは、このオプションはデータセットの 66% でトレーニングし、残りの 34% を使用してモデルのパフォーマンスを評価します。
- あるいは、検証データセットを含む別のファイルがある場合は、「提供されたテスト セット」オプションを選択して、そのファイルに基づいてモデルを評価できます。モデルはトレーニング データセット全体でトレーニングされ、別のデータセットで評価されます。
- 最後に、トレーニング データセット全体でモデルのパフォーマンスを評価できます。これは、予測モデルよりも記述モデルに興味がある場合に役立ちます。
「開始」ボタンをクリックして、選択したテスト オプションで特定のアルゴリズムを実行します。
さまざまなテスト オプションを試してください。
[その他のオプション…] ボタンをクリックして、提供される構成内のテスト オプションをさらに調整します。
レッスン 08: データのベースライン パフォーマンス
データセットに対して複数の機械学習アルゴリズムの評価を開始する場合は、比較のためのベースラインが必要です。
ベースライン結果は、特定のアルゴリズムの結果が良いか悪いか、またその程度を知るための基準点を提供します。
このレッスンでは、分類および回帰アルゴリズムのベースラインとして使用できる ZeroR アルゴリズムについて学習します。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「分類」タブをクリックします。デフォルトでは、ZeroR アルゴリズムが選択されます。
- 「開始」ボタンをクリックします。
これにより、データセットに対して 10 分割相互検証を使用して ZeroR アルゴリズムが実行されます。
ZeroR アルゴリズムは、ゼロ ルールとも呼ばれ、データセット上のすべてのアルゴリズムのパフォーマンスのベースラインを計算するために使用できるアルゴリズムです。これは「最悪」の結果であり、より良いパフォーマンスを示すアルゴリズムには、問題に対する何らかのスキルが必要です。
分類アルゴリズムでは、ZeroR アルゴリズムは常に最も豊富なカテゴリを予測します。データセットに同じ数のクラスがある場合、最初のカテゴリ値が予測されます。
糖尿病データセットでは、分類精度は 65% になります。
回帰問題の場合、ZeroR アルゴリズムは常に平均出力値を予測します。
さまざまなデータセットで ZeroR アルゴリズムを試してください。これは、ベースラインを作成するために、他のアルゴリズムよりも先に常に最初に実行する必要があるアルゴリズムです。
レッスン 09: 分類アルゴリズムのツアー
Weka は、多数の分類アルゴリズムを提供します。
このレッスンでは、分類問題に使用できる 5 つの主要な分類アルゴリズムを学習します。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「分類」タブをクリックします。
- 「選択」ボタンをクリックします。
5 分類に使用できる主なアルゴリズムは次のとおりです。
- ロジスティック回帰 (関数.ロジスティック)。
- ナイーブベイズ (bayes.NaiveBayes)。
- k-最近傍 (lazy.IBk)。
- 分類および回帰ツリー (trees.REPTree)。
- ベクター マシン (functions.SMO) をサポートします。
これらの主要なアルゴリズムをそれぞれ試してください。
2 つのクラスを持つデータセットやそれ以上のクラスを持つデータセットなど、さまざまな分類データセットでそれらを試してください。
レッスン 10: 回帰アルゴリズムのツアー
分類アルゴリズムは Weka の専門分野ですが、これらのアルゴリズムの多くは回帰に使用できます。
回帰は実際の価値のある結果 (金額など) を予測するもので、カテゴリ (「犬」や「猫」など) を予測する分類とは異なります。
このレッスンでは、回帰問題に使用できる 5 つの上位回帰アルゴリズムを学習します。
標準回帰機械学習データセットのスイートは、Weka データセット ダウンロード Web ページからダウンロードできます。 次のタイトルの回帰問題の datasets-numeric.jar アーカイブをダウンロードします。
- 「さまざまなソースから入手した、37 個の回帰問題を含む jar ファイル」
お気に入りの解凍プログラムを使用して .jar ファイルを解凍すると、numeric/ という新しいディレクトリが作成され、作業できる 37 個の回帰問題が含まれます。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/housing.arff データセットをロードします。
- 「分類」タブをクリックします。
- 「選択」ボタンをクリックします。
5 回帰に使用できる主なアルゴリズムは次のとおりです。
- 線形回帰 (functions.LinearRegression)。
- ベクトル回帰をサポートします (functions.SMOReg)。
- k-最近傍 (lazy.IBk)。
- 分類および回帰ツリー (trees.REPTree)。
- 人工ニューラル ネットワーク (functions.MultilayerPerceptron)。
これらの主要なアルゴリズムをそれぞれ試してください。
さまざまな回帰データセットで試してみてください。
レッスン 11: アンサンブル アルゴリズムのツアー
Weka は非常に使いやすく、これが他のプラットフォームに対する最大の利点と言えます。
これに加えて、Weka はアンサンブル機械学習アルゴリズムの大規模なスイートを提供しており、これが他のプラットフォームに対する Weka の 2 番目の大きな利点である可能性があります。
Weka のアンサンブル アルゴリズムを使いこなすために時間を費やす価値はあります。このレッスンでは、使用できる 5 つの主要なアンサンブル機械学習アルゴリズムを学習します。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「分類」タブをクリックします。
- 「選択」ボタンをクリックします。
5 使用できる主なアンサンブル アルゴリズムは次のとおりです。
- バギング (meta.Bagging)。
- ランダム フォレスト (trees.RandomForest)。
- AdaBoost (meta.AdaBoost)。
- 投票 (メタ投票)。
- スタッキング (meta.Stacking)。
これらの主要なアルゴリズムをそれぞれ試してください。
これらのアンサンブル手法のほとんどでは、サブモデルを選択できます。サブモデルのさまざまな組み合わせを使用して実験してください。非常に異なる方法で機能し、異なる予測を生成する手法を組み合わせると、パフォーマンスが向上することがよくあります。
さまざまな分類データセットと回帰データセットでそれらを試してください。
レッスン 12: アルゴリズムのパフォーマンスを比較する
Weka は、Weka 実験環境と呼ばれる、アルゴリズムを比較するために特別に設計された別のツールを提供します。
Weka 実験環境を使用すると、機械学習アルゴリズムを使用して制御された実験を設計および実行し、結果を分析できます。
このレッスンでは、Weka で最初の実験を設計し、Weka 実験環境を使用して機械学習アルゴリズムのパフォーマンスを比較する方法を学びます。
- 「Weka セレクター GUI」を開きます。
- 「実験」ボタンをクリックして「Weka実験環境」を開きます。
- 「新規」ボタンをクリックします。
- 「データセット」ペインの「新規追加…」ボタンをクリックし、「data/diabetes.arff」を選択します。
- 「アルゴリズム」ペインの「新規追加…」ボタンをクリックし、「ZeroR」と「IBk」を追加します。
- 「実行」タブをクリックし、「開始」ボタンをクリックします。
- 「分析」タブをクリックし、「実験」ボタンをクリックしてから、「テストの実行」ボタンをクリックします。
Weka での最初の制御実験の設計、実行、結果の分析が完了しました。
糖尿病データセットのデフォルト構成で、ZeroR アルゴリズムと IBk アルゴリズムを比較しました。
結果は、IBK の分類精度が ZeroR よりも高く、この差が統計的に有意であることを示しています (結果の横にある小さな「v」文字)。
実験を展開してアルゴリズムを追加し、実験を再実行します。
「分析」タブの「テストベース」を変更して、どの結果セットを他の結果と比較するための基準として採用するかを変更します。
レッスン 13: アルゴリズム パラメーターの調整
機械学習アルゴリズムを最大限に活用するには、問題に合わせてメソッドのパラメーターを調整する必要があります。
これを最適に行う方法を事前に知ることはできないため、さまざまなパラメータを試してみる必要があります。
Weka 実験環境を使用すると、さまざまなアルゴリズム パラメーターの結果を比較し、その差が統計的に有意かどうかを比較するための制御された実験を設計できます。
このレッスンでは、k 最近傍アルゴリズムのパラメーターを比較する実験を設計します。
- 「Weka セレクター GUI」を開きます。
- 「実験」ボタンをクリックして「Weka実験環境」を開きます。
- 「新規」ボタンをクリックします。
- 「データセット」ペインの「新規追加…」ボタンをクリックし、「data/diabetes.arff」を選択します。
- 「アルゴリズム」ペインの「新規追加...」ボタンをクリックし、「IBk」アルゴリズムの 3 つのコープを追加します。
- リスト内の各 IBk アルゴリズムをクリックし、「選択したものを編集…」ボタンをクリックして、3 つの異なるアルゴリズムごとに「KNN」を 1、3、5 に変更します。
- 「実行」タブをクリックし、「開始」ボタンをクリックします。
- 「分析」タブをクリックし、「実験」ボタンをクリックしてから、「テストの実行」ボタンをクリックします。
アルゴリズム パラメーターを比較するための制御された実験の設計、実行、結果の分析を行いました。
K 値が大きい場合の結果はデフォルトの 1 よりも優れており、その差は顕著であることがわかります。
KNN の他の構成プロパティの変更を検討し、機械学習アルゴリズムを調整するための実験を開発する際の自信を築きます。
レッスン 14: モデルを保存する
問題に対して最高のパフォーマンスを発揮するモデルを見つけたら、後で使用できるようにそれを完成させる必要があります。
この最後のレッスンでは、最終モデルをトレーニングし、後で使用できるようにファイルに保存する方法を学びます。
- Weka GUI セレクターを開き、次に Weka エクスプローラーを開きます。
- data/diabetes.arff データセットをロードします。
- 「分類」タブをクリックします。
- 「テストオプション」を「トレーニングセットを使用する」に変更し、「開始」ボタンをクリックします。
- 「結果リスト」内の結果を右クリックし、「モデルを保存」をクリックして、「diabetes-final」のようなファイル名を入力します。
トレーニング データセット全体で最終モデルをトレーニングし、結果のモデルをファイルに保存しました。
このモデルを Weka にロードし直し、それを使用して新しいデータの予測を行うことができます。
- 「結果リスト」を右クリックし、「モデルのロード」をクリックし、モデル ファイル (「diabetes-final.model」) を選択します。
- 「テスト オプション」を「提供されたテスト セット」に変更し、data/diabetes.arff を選択します (これは予測のない新しいファイルである可能性があります)。
- 「テストオプション」の「その他のオプション」をクリックし、「出力予測」を「プレーンテキスト」に変更します。
- ロードされたモデルを右クリックし、「現在のテスト セットでモデルを再評価」を選択します。
新しい予測が「分類子出力」ペインにリストされます。
さまざまなモデルを保存して、まったく新しいデータセットの予測を行ってみてください。
Weka による機械学習ミニコースのレビュー
おめでとうございます。成功しました。よくやった!
少し時間を取って、これまでの道のりを振り返ってください。
- おそらく初めて、Weka Explorer と Weka Experiment Environment の起動方法と使用方法を発見しました。
- データを読み込み、分析し、データ フィルタと特徴選択を使用して、モデリング用のデータを準備しました。
- あなたは、一連の機械学習アルゴリズムと、そのパフォーマンスを評価するための制御された実験を設計する方法を発見しました。
これを軽視しないでください。あなたは短期間で長い道のりを歩んできました。これは、Weka を使用した応用機械学習の旅の始まりにすぎません。練習を続けてスキルを開発してください。
このミニ講座は楽しんでいただけましたか?ご質問や問題点がありましたら
コメントを残してお知らせください。