Weka-quick-guide
Weka-はじめに
Machine Learningアプリケーションの基盤はデータです。ほんの少しのデータではなく、現在の用語では「ビッグデータ」と呼ばれる巨大なデータです。
マシンをトレーニングしてビッグデータを分析するには、データに関するいくつかの考慮事項が必要です-
- データはクリーンでなければなりません。
- null値を含めることはできません。
また、データテーブルのすべての列が、達成しようとしている分析の種類に役立つとは限りません。 機械学習の用語で呼ばれる無関係なデータ列または「機能」は、データを機械学習アルゴリズムに供給する前に削除する必要があります。
つまり、ビッグデータを機械学習に使用するには、大量の前処理が必要です。 データの準備ができたら、分類、回帰、クラスタリングなどのさまざまな機械学習アルゴリズムを適用して、最後に問題を解決します。
適用するアルゴリズムのタイプは、主にドメインの知識に基づいています。 分類などの同じタイプ内でも、いくつかのアルゴリズムが利用可能です。 同じクラスでさまざまなアルゴリズムをテストして、効率的な機械学習モデルを構築できます。 その間、処理されたデータの視覚化を好むため、視覚化ツールも必要になります。
次の章では、上記のすべてを簡単に実現し、ビッグデータを快適に操作できるソフトウェア、Wekaについて学習します。
Wekaとは何ですか?
WEKA-オープンソースソフトウェアは、データの前処理、いくつかの機械学習アルゴリズムの実装、および視覚化ツールを提供し、機械学習技術を開発して、実際のデータマイニング問題に適用できるようにします。 WEKAが提供するものは、次の図にまとめられています-
画像の流れの始まりを観察すると、ビッグデータを機械学習に適したものにするための多くの段階があることを理解できます-
最初に、フィールドから収集された生データから始めます。 このデータには、いくつかのヌル値と無関係なフィールドが含まれる場合があります。 WEKAで提供されるデータ前処理ツールを使用して、データをクレンジングします。
次に、前処理済みのデータをローカルストレージに保存して、MLアルゴリズムを適用します。
次に、開発しようとしているMLモデルの種類に応じて、 Classify、Cluster 、または Associate などのオプションのいずれかを選択します。 *属性の選択*により、フィーチャの自動選択により、削減されたデータセットを作成できます。
各カテゴリの下で、WEKAはいくつかのアルゴリズムの実装を提供することに注意してください。 任意のアルゴリズムを選択し、必要なパラメーターを設定して、データセットで実行します。
次に、WEKAはモデル処理の統計出力を提供します。 データを検査するための視覚化ツールを提供します。
さまざまなモデルを同じデータセットに適用できます。 その後、異なるモデルの出力を比較して、目的に合った最適なものを選択できます。
したがって、WEKAを使用すると、機械学習モデル全体がより迅速に開発されます。
WEKAとは何か、またその機能を理解したので、次の章ではWEKAをローカルコンピューターにインストールする方法を学びます。
Weka-インストール
WEKAをマシンにインストールするには、https://www.cs.waikato.ac.nz/~ml/weka/downloadingl [WEKAの公式Webサイト]にアクセスして、インストールファイルをダウンロードします。 WEKAは、Windows、Mac OS X、Linuxへのインストールをサポートしています。 OSにWEKAをインストールするには、このページの指示に従うだけです。
Macにインストールするための手順は次のとおりです-
- Macインストールファイルをダウンロードします。
- ダウンロードした* weka-3-8-3-corretto-jvm.dmgファイルをダブルクリックします*。
インストールが成功すると、次の画面が表示されます。
- weak-3-8-3-corretto-jvm アイコンをクリックして、Wekaを起動します。
- オプションで、コマンドラインから起動することができます-
WEKA GUI Chooserアプリケーションが起動し、次の画面が表示されます-
GUI Chooserアプリケーションを使用すると、ここにリストされている5種類のアプリケーションを実行できます-
- 冒険者
- 実験者
- KnowledgeFlow
- ワークベンチ
- シンプルなCLI
このチュートリアルでは Explorer を使用します。
Weka-エクスプローラーの起動
この章では、エクスプローラーがビッグデータを操作するために提供するさまざまな機能を見てみましょう。
あなたは*アプリケーション*セレクタで*エクスプローラ*ボタンをクリックすると、次の画面が開きます-
上部には、ここにリストされているようにいくつかのタブが表示されます-
- 前処理
- 分類する
- クラスタ
- アソシエイト
- 属性を選択
- 視覚化
これらのタブの下には、いくつかの事前実装された機械学習アルゴリズムがあります。 それでは、それぞれについて詳しく見ていきましょう。
前処理タブ
最初にエクスプローラーを開くと、 Preprocess タブのみが有効になっています。 機械学習の最初のステップは、データの前処理です。 したがって、 Preprocess オプションでは、データファイルを選択して処理し、さまざまな機械学習アルゴリズムの適用に適したものにします。
分類タブ
[分類]タブには、データを分類するためのいくつかの機械学習アルゴリズムが用意されています。 いくつかをリストするには、線形回帰、ロジスティック回帰、サポートベクターマシン、デシジョンツリー、ランダムツリー、ランダムフォレスト、NaiveBayesなどのアルゴリズムを適用できます。 このリストは非常に網羅的であり、教師ありおよび教師なしの機械学習アルゴリズムを提供します。
クラスタータブ
関連付けタブ
属性タブを選択
- 属性の選択*を使用すると、ClassifierSubsetEval、PrinicipalComponentsなどのいくつかのアルゴリズムに基づいて機能を選択できます。
タブを視覚化
最後に、 Visualize オプションを使用すると、処理されたデータを分析のために視覚化できます。
お気づきのように、WEKAは、機械学習アプリケーションをテストおよび構築するための、すぐに使用できるいくつかのアルゴリズムを提供します。 WEKAを効果的に使用するには、これらのアルゴリズム、それらがどのように機能するか、どの状況でどのアルゴリズムを選択するか、処理された出力で何を探すかなどについての十分な知識が必要です。 つまり、WEKAを効果的に使用してアプリを構築するには、機械学習の強固な基盤が必要です。
次の章では、エクスプローラーの各タブについて詳しく学習します。
Weka-データの読み込み
この章では、データの前処理に使用する最初のタブから始めます。 これは、モデルを構築するためにデータに適用するすべてのアルゴリズムに共通であり、WEKAのすべての後続操作の共通ステップです。
機械学習アルゴリズムで許容可能な精度を実現するには、まずデータをクレンジングする必要があります。 これは、フィールドから収集された生データにヌル値、無関係な列などが含まれている可能性があるためです。
この章では、生データを前処理し、さらに使用するためのクリーンで意味のあるデータセットを作成する方法を学習します。
最初に、データファイルをWEKAエクスプローラーにロードする方法を学習します。 データは、次のソースからロードすることができます-
- ローカルファイルシステム
- Web
- データベース
この章では、データをロードする3つのオプションすべてを詳細に説明します。
ローカルファイルシステムからのデータのロード
前のレッスンで学習したMachine Learningタブの下に、次の3つのボタンがあります-
- ファイルを開く…
- URLを開く…
- DBを開く…
- ファイルを開く*をクリックしてください… ボタン。 次の画面に示すように、ディレクトリナビゲータウィンドウが開きます-
次に、データファイルが保存されているフォルダーに移動します。 WEKAのインストールには、実験するための多くのサンプルデータベースが用意されています。 これらは、WEKAインストールの data フォルダーにあります。
学習目的で、このフォルダから任意のデータファイルを選択します。 ファイルの内容はWEKA環境にロードされます。 このロードされたデータを検査して処理する方法については、まもなく学習します。 その前に、Webからデータファイルを読み込む方法を見てみましょう。
Webからのデータの読み込み
私たちは、パブリックURLからファイルを開きますポップアップボックスに次のURLを入力します-
https://storm.cis.fordham.edu/~gweiss/data-mining/weka-data/weather.nominal.arff
データが保存されている他のURLを指定できます。 Explorer は、リモートサイトから環境にデータをロードします。
DBからのデータのロード
データベースへの接続文字列を設定し、データ選択用のクエリを設定し、クエリを処理して、選択したレコードをWEKAにロードします。
Weka-ファイル形式
WEKAは、データ用に多数のファイル形式をサポートしています。 ここに完全なリストがあります-
- arff
- arff.gz
- bsi
- csv
- dat
- data
- json
- json.gz
- libsvm
- m
- 名前
- xrff
- xrff.gz
サポートするファイルの種類は、画面下部のドロップダウンリストボックスに一覧表示されます。 これは、以下のスクリーンショットに示されています。
お気づきのとおり、CSVやJSONを含むいくつかの形式をサポートしています。 デフォルトのファイルタイプはArffです。
Arffフォーマット
- ヘッダーは属性タイプを記述します。
- データセクションには、データのカンマ区切りリストが含まれています。
Arff形式の例として、WEKAサンプルデータベースからロードされた Weather データファイルを以下に示します-
スクリーンショットから、次の点を推測することができます-
- @relationタグは、データベースの名前を定義します。
- @attributeタグは属性を定義します。
- @dataタグは、各コンマ区切りフィールドを含むデータ行のリストを開始します。
- ここに示されている見通しの場合のように、属性は公称値を取ることができます-
- 属性は、この場合のように実際の値を取ることができます-
- また、ここに示すように、playというターゲット変数またはクラス変数を設定できます-
- ターゲットは、yesまたはnoの2つの公称値を想定しています。
その他の形式
Explorerは、前述の形式のいずれかでデータをロードできます。 arffはWEKAで推奨される形式であるため、任意の形式からデータをロードし、後で使用するためにarff形式に保存できます。 データを前処理した後、さらなる分析のためにそれをarff形式に保存するだけです。
次の章では、データをWEKAにロードする方法を学習したので、データを前処理する方法を学習します。
Weka-データの前処理
フィールドから収集されるデータには、誤った分析につながる多くの不要なものが含まれています。 たとえば、データにはnullフィールドが含まれる場合があり、現在の分析とは無関係な列が含まれる場合があります。 したがって、データは、求める分析のタイプの要件を満たすために前処理する必要があります。 これは前処理モジュールで行われます。
前処理で使用可能な機能を示すために、インストールで提供される Weather データベースを使用します。
ファイルを開くと、画面は次のようになります-
この画面には、ロードされたデータに関するいくつかの情報が表示されます。詳細については、この章で説明します。
データを理解する
まず、強調表示された Current relation サブウィンドウを見てみましょう。 現在ロードされているデータベースの名前が表示されます。 あなたはこのサブウィンドウから2点を推測することができます-
- 14個のインスタンス(テーブル内の行数)があります。
- この表には、次のセクションで説明する5つの属性(フィールド)が含まれています。
左側で、データベースのさまざまなフィールドを表示する Attributes サブウィンドウに注目してください。
最初に温度属性を選択しましょう。 それをクリックすると、次の画面が表示されます-
- 選択された属性*サブウィンドウでは、次を観察することができます-
- 属性の名前とタイプが表示されます。
- temperature 属性のタイプは Nominal です。
- *欠落*値の数はゼロです。
- 一意の値を持たない3つの異なる値があります。
- この情報の下の表は、このフィールドの公称値を高温、マイルド、低温として示しています。
- また、各公称値のパーセンテージでカウントと重量を示します。
ウィンドウの下部に、 class 値の視覚的表現が表示されます。
属性を削除する
多くの場合、モデルの構築に使用するデータには、多くの無関係なフィールドが含まれています。 たとえば、顧客データベースには、彼の信用格付けの分析に関連する彼の携帯電話番号が含まれている場合があります。
属性を削除するには、それらを選択して、下部にある[削除]ボタンをクリックします。
選択した属性がデータベースから削除されます。 データを完全に前処理した後、モデル作成のためにデータを保存できます。
次に、このデータにフィルターを適用して、データを前処理する方法を学習します。
フィルターの適用
アソシエーションルールマイニングなどの機械学習手法には、カテゴリデータが必要なものがあります。 フィルターの使用を説明するために、2つの numeric 属性- temperature および humidity を含む weather-numeric.arff データベースを使用します。
生データにフィルターを適用して、これらを nominal に変換します。 *フィルター*サブウィンドウで*選択*ボタンをクリックし、次のフィルターを選択します-
- 適用*ボタンをクリックして、*温度*および/または*湿度*属性を調べます。 これらが数値型から名義型に変更されたことがわかります。
ここで別のフィルターを見てみましょう。 play を決定するための最適な属性を選択するとします。 次のフィルターを選択して適用します-
データベースから温度と湿度の属性が削除されることがわかります。
データの前処理に満足したら、「保存」をクリックしてデータを保存します… ボタン。 この保存されたファイルをモデル作成に使用します。
次の章では、事前定義されたいくつかのMLアルゴリズムを使用したモデル構築について説明します。
Weka-分類子
多くの機械学習アプリケーションは分類に関連しています。 たとえば、腫瘍を悪性または良性として分類することができます。 天候に応じて、屋外ゲームをプレイするかどうかを決めることができます。 一般的に、この決定は天気のいくつかの特徴/条件に依存します。 そのため、再生するかどうかを決定するためにツリー分類器を使用することをお勧めします。
この章では、気象データに基づいてこのようなツリー分類器を構築し、プレイ条件を決定する方法を学習します。
テストデータの設定
前のレッスンの前処理済みの気象データファイルを使用します。 Open file を使用して、保存したファイルを開きます… *前処理*タブの下のオプション、*分類*タブをクリックすると、次の画面が表示されます-
利用可能な分類器について学ぶ前に、テストオプションを調べてみましょう。 次の4つのテストオプションに気付くでしょう-
- トレーニングセット
- 付属のテストセット
- 交差検証
- 割合分割
独自のトレーニングセットまたはクライアントが提供するテストセットがない限り、相互検証またはパーセント分割オプションを使用します。 交差検定では、トレーニングの各反復中にデータ全体を分割して使用するフォールドの数を設定できます。 割合分割では、設定された分割割合を使用して、トレーニングとテストの間でデータを分割します。
ここで、出力クラスのデフォルトの play オプションを保持します-
次に、分類子を選択します。
分類子の選択
「選択」ボタンをクリックして、次の分類子を選択します-
これは、以下のスクリーンショットに示されています-
[開始]ボタンをクリックして、分類プロセスを開始します。 しばらくすると、ここに示すように分類結果が画面に表示されます-
画面の右側に表示される出力を調べてみましょう。
ツリーのサイズは6です。 ツリーの視覚的な表現が間もなく表示されます。 概要では、インスタンスを正しく2に分類し、インスタンスを3に誤って分類したことを示し、相対絶対誤差が110%であることも示しています。 また、混同マトリックスも示しています。 これらの結果の分析に入ることは、このチュートリアルの範囲外です。 ただし、これらの結果から分類が受け入れられないことを簡単に確認できます。モデルの精度に満足するまで、分析、フィーチャ選択の改良、モデルの再構築などのためにより多くのデータが必要になります。 とにかく、それがWEKAのすべてです。 アイデアをすばやくテストできます。
結果を視覚化する
結果を視覚的に表示するには、[結果リスト]ボックスで結果を右クリックします。 ここに示すように、いくつかのオプションが画面にポップアップ表示されます-
以下のスクリーンショットに示すように、「ツリーの視覚化」を選択して、トラバーサルツリーの視覚的表現を取得します-
- 視覚化分類器エラー*を選択すると、ここに示すように分類の結果がプロットされます-
現在のプロットは、 outlook 対 play です。 これらは、画面上部の2つのドロップダウンリストボックスで示されます。
次に、これらの各ボックスで異なる選択を試して、X軸とY軸がどのように変化するかを確認します。 同じことは、プロットの右側にある水平ストリップを使用することで実現できます。 各ストリップは属性を表します。 ストリップを左クリックすると、選択した属性がX軸に設定され、右クリックするとY軸に設定されます。
より詳細な分析のために、他のプロットがいくつか用意されています。 それらを慎重に使用して、モデルを微調整してください。 *コスト/ベネフィット分析*のそのようなプロットは、クイックリファレンスのために以下に示されています。
これらのチャートで分析を説明することは、このチュートリアルの範囲外です。 読者は、機械学習アルゴリズムの分析に関する知識を磨くことをお勧めします。
次の章では、機械学習アルゴリズムの次のセット、つまりクラスタリングについて学習します。
Weka-クラスタリング
クラスタリングアルゴリズムは、データセット全体で類似したインスタンスのグループを見つけます。 WEKAは、EM、FilteredClusterer、HierarchicalClusterer、SimpleKMeansなどのいくつかのクラスタリングアルゴリズムをサポートしています。 WEKA機能を十分に活用するには、これらのアルゴリズムを完全に理解する必要があります。
分類の場合と同様に、WEKAでは検出されたクラスターをグラフィカルに視覚化できます。 クラスタリングを実証するために、提供されたirisデータベースを使用します。 データセットには、それぞれ50インスタンスの3つのクラスが含まれています。 各クラスは、アイリス植物の種類を指します。
データのロード
WEKAエクスプローラーで、 Preprocess タブを選択します。 ファイルを開く*をクリックしてください… オプションを選択し、ファイル選択ダイアログで *iris.arff ファイルを選択します。 データをロードすると、画面は次のようになります-
150個のインスタンスと5個の属性があることがわかります。 属性の名前は、 sepallength 、 sepalwidth 、 petallength 、 petalwidth 、および class としてリストされています。 最初の4つの属性は数値型ですが、クラスは3つの異なる値を持つ名義型です。 各属性を調べて、データベースの機能を理解します。 このデータの前処理は行わず、すぐにモデルの構築に進みます。
クラスタリング
ここで、クラスタリングアルゴリズムとして EM を選択します。 *クラスタモード*サブウィンドウで、以下のスクリーンショットに示すように*クラスタ評価*クラスにオプションを選択します-
[開始]ボタンをクリックして、データを処理します。 しばらくすると、結果が画面に表示されます。
次に、結果を調べてみましょう。
出力を調べる
データ処理の出力は、以下の画面に示されています-
出力画面から、あなたはそれを観察することができます-
- データベースで5つのクラスター化されたインスタンスが検出されました。
- Cluster 0 はsetosa、 Cluster 1 はvirginica、 Cluster 2 はversicolorを表しますが、最後の2つのクラスターにはクラスが関連付けられていません。
出力ウィンドウを上にスクロールすると、検出されたさまざまなクラスターの各属性の平均と標準偏差を示す統計も表示されます。 これは、以下のスクリーンショットに示されています-
次に、クラスターの視覚的表現を見ていきます。
クラスターの視覚化
クラスターを視覚化するには、結果リスト*の *EM 結果を右クリックします。 次のオプションが表示されます-
[クラスターの割り当てを視覚化する]を選択します。 次の出力が表示されます-
分類の場合と同様に、正しく識別されたインスタンスと誤って識別されたインスタンスの区別に気付くでしょう。 X軸とY軸を変更して結果を分析することで、いろいろ試してみることができます。 分類の場合のようにジッタリングを使用して、正しく識別されたインスタンスの集中度を調べることができます。 視覚化プロットの操作は、分類の場合に学習した操作に似ています。
階層クラスタリングの適用
WEKAの威力を示すために、別のクラスタリングアルゴリズムのアプリケーションを見てみましょう。 WEKAエクスプローラーで、以下のスクリーンショットに示すように、MLアルゴリズムとして HierarchicalClusterer を選択します-
[クラスター評価のクラス]に[クラスターモード]を選択し、[開始]ボタンをクリックします。 次の出力が表示されます-
- 結果リスト*には、2つの結果がリストされていることに注意してください。最初の結果はEMの結果で、2番目の結果は現在の階層です。 同様に、複数のMLアルゴリズムを同じデータセットに適用し、それらの結果をすばやく比較できます。
このアルゴリズムによって生成されたツリーを調べると、次の出力が表示されます-
次の章では、MLアルゴリズムの Associate タイプについて学習します。
ウェカ-協会
ビールを買う人も同時におむつを買うことが観察されました。 それは、ビールとおむつを一緒に買うことに関連があるということです。 これは納得がいかないように思えますが、この関連付けルールはスーパーマーケットの巨大なデータベースから採掘されました。 同様に、ピーナッツバターとパンの間には関連性が見られます。
スーパーマーケットでは、ビールの隣におむつを仕入れるので、顧客が両方のアイテムを簡単に見つけてスーパーマーケットの販売を増やすことができるため、そのような関連付けを見つけることは不可欠です。
データのロード
WEKAエクスプローラーで、 Preprocess タブを開き、 Open file をクリックします… ボタンをクリックして、インストールフォルダから supermarket.arff データベースを選択します。 データがロードされた後、次の画面が表示されます-
データベースには、4627のインスタンスと217の属性が含まれています。 このような多数の属性間の関連付けを検出することがどれほど難しいかを簡単に理解できます。 幸いなことに、このタスクはAprioriアルゴリズムの助けを借りて自動化されています。
アソシエーター
[関連付け]タブをクリックし、[選択]ボタンをクリックします。 スクリーンショットに示すように、 Apriori アソシエーションを選択します-
Aprioriアルゴリズムのパラメーターを設定するには、その名前をクリックします。パラメーターを設定できるウィンドウが以下のようにポップアップ表示されます-
パラメータを設定したら、[開始]ボタンをクリックします。 しばらくすると、下のスクリーンショットに示すように結果が表示されます-
下部には、検出された関連の最良のルールがあります。 これは、スーパーマーケットが製品を適切な棚に仕入れるのに役立ちます。
Weka-機能選択
データベースに多数の属性が含まれる場合、現在探している分析では重要にならないいくつかの属性があります。 したがって、データセットから不要な属性を削除することは、優れた機械学習モデルを開発する上で重要なタスクになります。
データセット全体を視覚的に調べて、無関係な属性を決定できます。 これは、前のレッスンで見たスーパーマーケットの場合のように、多数の属性を含むデータベースにとっては大きなタスクです。 幸いなことに、WEKAは機能選択のための自動化ツールを提供します。
この章では、多数の属性を含むデータベースでこの機能を示します。
データのロード
WEKAエクスプローラーの Preprocess タグで、システムにロードする labor.arff ファイルを選択します。 あなたがデータをロードすると、次の画面が表示されます-
17個の属性があることに注意してください。 私たちのタスクは、分析に関係のない属性の一部を削除することにより、削減されたデータセットを作成することです。
特徴抽出
属性の選択 TABをクリックします。次の画面が表示されます-
- 属性エバリュエーター*および*検索方法*の下に、いくつかのオプションがあります。 ここではデフォルトを使用します。 *属性選択モード*で、完全なトレーニングセットオプションを使用します。
[開始]ボタンをクリックして、データセットを処理します。 次の出力が表示されます-
結果ウィンドウの下部に、 Selected 属性のリストが表示されます。 視覚的な表現を得るには、*結果*リストの結果を右クリックします。
出力は、次のスクリーンショットに示されています-
正方形をクリックすると、さらに分析するためのデータプロットが表示されます。 典型的なデータプロットを以下に示します-
これは、前の章で見たものと似ています。 結果を分析するために利用可能なさまざまなオプションを試してみてください。
次は何ですか?
これまでに、機械学習モデルの迅速な開発におけるWEKAの力を見てきました。 使用したのは、これらのモデルを開発するための Explorer と呼ばれるグラフィカルツールです。 WEKAは、エクスプローラーで提供されるよりも強力なコマンドラインインターフェイスも提供します。
G * UI Chooser アプリケーションで *Simple CLI ボタンをクリックすると、このコマンドラインインターフェイスが起動します。これは、以下のスクリーンショットに示されています-
下部の入力ボックスにコマンドを入力します。 エクスプローラーでこれまでに行ったすべての操作に加えて、さらに多くの操作を実行できます。 詳細については、WEKA documentation(https://www.cs.waikato.ac.nz/ml/weka/documentationl)を参照してください。
最後に、WEKAはJavaで開発され、そのAPIへのインターフェースを提供します。 あなたがJava開発者であり、自分のJavaプロジェクトにWEKA ML実装を組み込みたい場合は、簡単に行うことができます。
結論
WEKAは、機械学習モデルを開発するための強力なツールです。 最も広く使用されているいくつかのMLアルゴリズムの実装を提供します。 これらのアルゴリズムをデータセットに適用する前に、データを前処理することもできます。 サポートされているアルゴリズムのタイプは、分類、クラスター、関連付け、および選択属性に分類されています。 処理のさまざまな段階での結果は、美しく強力な視覚表現で視覚化できます。 これにより、データサイエンティストは、データセットにさまざまな機械学習手法をすばやく適用し、結果を比較して、最終使用に最適なモデルを作成することが容易になります。