機械学習で大事なことをミニgunosyをつくって学んだ╭( ・ㅂ・)و ̑̑ 

73
ミニGunosyを 作るには

Upload: seiji-takahashi

Post on 15-Jul-2015

10.329 views

Category:

Technology


0 download

TRANSCRIPT

ミニGunosyを 作るには

ANYGMA:1stミニGunosyを作ろう

高橋誠二

名前:高橋誠二 学歴:慶應経済4年 職種:エンジニア勤務3年 ライブラリ2つ自作して起業家に 関するデータ分析の卒論書いた。 Digital Founders Japan選抜。 7社インターン、新規開発・運用部 100名規模の人事評価制度設計。 エンジニアの海外コミュニティーサイト Casualyze.com運営経験。 Techlabpaakプロジェクト会員 Gunosyっぽいやつできた←New

twitter: @timadayon github: timakin

ANYGMAとは

ビジネスとテクノロジーの両面 において、スキルを持った

エンジニア集団

自分のプロダクトを個々が持ち、 水面下ではなく表に出て ハッカーとして活動する団体

創設の思い

エンジニアって結局 ビジネスサイドの奴隷みたいに

なってる

自分でプロダクトを 作れる力を持って、

ハッカーが世の中を主導していく 足がかりを作ろう。

•データマイニングとは •ミニGunosyのつくりかた •今回問題になった点 •機械学習プロダクトのつくりかた

目次

データマイニングとは

雑多なデータ群から 有益な情報を引き出すこと

機械学習そのものとデータマイニングは 必ずしも一致しない。

今回の事例

生の記事タイトルから

202 URL 8 28 Ubuntu 18 364 Unity 10 134 Vagrant 6 13 View 3 158 Vim 7 517 VirtualBox 3 219 Visual 7

名詞を抽出 言語ベクトル変換

要は生のターゲット情報を 加工して、解析可能な形にする

ってこと。

これを元に解釈を加えるのが データマイニングと 機械学習の垣根

研究活動とかだと データマイニングよくやる (やらない学科は死ぬ)

具体名

テキスト解析 画像認識 音声認識 数値解析

クラスタリング フィルタリング 特徴抽出

Deep Learning Neural Net KNN SVM Bayes Analysis

Deep Learning Neural Net KNN SVM Bayes Analysis

すごい

作ったほうがはやいんじゃ?

ミニGunosyのつくりかた

そもそもなんでそれ作った

Gunosyの 福島さんって凄いこと やってるっぽいけど、 ほんとにすげぇのか?

ライブラリ使うだけだぜ? 機械学習Yo

よゆーでいけるわー:D

なんかQiitaの情報って RSSでも流れてこないから 手軽に手に入れたいわー よゆーでいけるわー:D

よゆーじゃない:D

工程

RubyでAPI接続と生データ抽出、形態素解析で単語分割、名詞のみ抽出、テキスト書き出し。Pythonでテキストから意味ある名詞とその意味の重要さ、登場頻度を考慮した特徴語抽出、特殊語の不要なものをさらにクリーニング、CSVに書き出し、特徴語を言語ベクトルに変換、言語ベクトルの次元圧縮、クラスタリング、予測モデルのトレーニング、結果のチューニング、クライアントツール化

・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化

・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化

ところで

・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化

本来やらんでいいとこ

・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化

Qunosy Personal Gunosy for Qiita With machine

learning, corpus clustering, recommend you the latest code that match your interest.

Qunosy adopt random forest as clustering method.

https://github.com/timakin/qunosy

製作期間

1週間 ╭( ・ㅂ・)و ̑̑

使った言語

Python Ruby Go Shell

Python Ruby Go Shell

Golang

話題なのにWeb周辺で使わない ので、今回ちょっと触った。

コマンド ツール化

デモ

今回問題になった点

文字列処理

MeCab

Natto

言語選択

最初から 1つか2つ がいい。

あくまでプロトタイプ作るなら、 言語増えるはずはない。

今回はたまたまコマンドライン ツール化したから増えた。

調べごと

ぜんぶ専門的な英語

機械学習プロダクトのつくりかた

1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える

1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える

・オープンデータ ・クローリング ・DeveloperAPI

1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える

・分類が必要か? ・重み付けするか? ・予測するか?

1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える

・文字コード ・数値の単位 ・欠損データ

1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える

機械を訓練するデータを 自分で作る必要があるのが、 教師あり学習

適切な手順を踏んで、 手法を調査していけば、 だいたい先人の知恵でうまくいく。

おつ :)