入力データを複数グループに分類する機能です。ユーザーがあらかじめグループ分けの例を学ばせておき、定義した文字情報をキーとして分類が行われます。
利用例・・・スパムメールの判定 など
※Jubatusとは・・・?
オンライン機械学習向け分散処理フレームワークJubatusのご紹介 をご覧ください
Classifierは、与えられたデータ(主に文字列)から学習を行い、それを元に別の入力データを複数グループに分類します。
最もシンプルな使い方として、2列の表データのうち、A列で名称を、B列でカテゴリを与え、A列の名称から学習した結果を使って、膨大なデータを分類できます。
列のフィールド値として短い文字列を与えるだけでなく、長文のテキスト情報をすべて読み込ませて、内容で分類することもできます。
人が内容を判断して仕分けするような業務で、自動化に貢献できます。
今回は、地名に含まれる、地歴に相当する単語("池" "山" "浦" "稲" "曽根" など)から、土地の成り立ちを表す3つのグループ「軟弱」・「良好」・「例外地名」に分類します。
「全部で1,2000レコードの文字列を、177レコードの分類表を使って38分類に仕分けする」
この作業を人間が実施したらどれほどの時間が必要かを考えると、プログラムにやらせたくなるのが人情です。もちろん、機械学習を使わなくても、簡単なスクリプトを組んだり、SQLで複雑な構文を駆使すれば、同様のことは実現できます。
しかし、分類のルールを変えて検証するなど、異なるデータセットを柔軟に適用していきたいので、ハードコーディングは行わず、あえて機械学習で解決してみます。
地名の分類
地形の分類(ラベル) | 地名に含まれる漢字 | |
軟弱 | 軟弱・みさき | 岬 |
軟弱・海岸・海 | 浜、洲、州、潟 | |
軟弱・水辺 | 島、岸、淵、入、浦 | |
軟弱・窪地 | 谷 | |
軟弱・河川 | 川、河、江、瀬、沢、渓、池、沼 | |
軟弱・人工物 | 堤、橋、船、津、港、井、舟、堰、渠、田 | |
軟弱・水辺の植物 | 萩、蓮、竹、蒲、荻、葦、管、芦 | |
軟弱・農作物 | 稲 | |
軟弱・水鳥 | 鶴、鴻、鴨、鷺、鵜、鵠、鴇、鷭、鳰、雁 | |
軟弱・水生生物 | 貝、亀、魚 | |
軟弱・当て字 | 梅、須、須加、須賀、縁、渕、杁、露 | |
軟弱・現象 | 潮、汐 | |
軟弱・動作 | 渡、浅、深 | |
軟弱・たまる | 池、袋、湖、沼、淀、澱 | |
軟弱・湧く | 泉、井 | |
軟弱・なみ | 波、浪、潮、汐 | |
軟弱・浜辺・干潟 | 浜、州、洲、須、潟、須賀、須加 | |
軟弱・うみ | 海、塩 | |
軟弱・水際 | 淵、縁、渡、島、岸 | |
軟弱・入江 | 磯、浦、湾、入、杁 | |
軟弱・人工物 | 堤、橋、舟、船、津、港、湊 | |
軟弱・水の状態 | 水、浅、深、澄、淡、流 | |
軟弱・植物 | 芦、葦、蘆、管、蒲、萩、荻、蓮、藻、竹 | |
軟弱・窪地 | 窪、凹、久保、坂下 | |
軟弱・低湿地 | 谷、沢、洞、迫、渓、久手、泥 | |
軟弱・低・下 | 低、下 | |
軟弱・田地 | 田、野、原、代 | |
軟弱・開墾 | 新開、墾、針、張、播、春、治 | |
軟弱・農作物 | 稲 | |
良好 | 良好・山地 | 山、尾、根、岳、峰、嶽、嶺 |
良好・台地 | 岡、丘、台、坂上、阪上 | |
良好・山の生物 | 猪 | |
良好・当て字 | 曽根、矢、久保、久手 | |
良好・傾斜地 | 坂、阪、崎 | |
良好・傾斜 | 坂、阪、段、乗越 | |
良好・地質 | 岩、磐 | |
良好・森林 | 森、林 | |
例外地名 | 例外地名・例外地名 | 高、上、下 |
1.学習用データの準備 漢字と地形の分類がペアになった、学習用のデータを作成します。
2.データの学習 作成した学習用のデータをJubatusに与え、学習を行います。
3.推定用データの準備 学習した内容に基づいて、分類させたいデータを作成します。
4.学習に基づく分類 2.の学習に基づいて、作成した推定用データを分類します。
5.結果の出力 4.の分類の結果を出力します。
「軟弱」・「良好」に分類された場合、そのグループに属することの「確からしさの値」が付与されます。
この「確からしさの値」が"0"の場合、分類ルールに該当しなかったいうことになりますので、結果データから除去しておきます。
バス停名称の分類結果
農業集落名称(愛知県)の分類結果
分類した結果が、どのように空間分布しているかを知るには、GISによる可視化が有益です。
今回は、地名から地盤の硬軟を推定しましたが、そのままでは単なる風評、噂話のレベルです。本当にやりたいのは、将来起こる地震で液状化被害が出そうかどうかを判断することですので、実際のボーリングデータN値との相関や、実際に、過去液状化被害があった集落(東日本大震災において大きな液状化被害が出た、千葉県など)の地名やN値との相関を評価する必要があります。下記の記事をご参考ください。
※詳細は 機械学習とデータ分析からリスクを検証 をご覧ください