Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

14,057 views

Published on

ANYGMA講義第1回
ミニGunosyをつくった。その解説と機械学習プロダクトで詰まる点

Published in: Technology
  • Be the first to comment

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

  1. 1. ミニGunosyを 作るには
  2. 2. ANYGMA:1st ミニGunosyを作ろう 高橋誠二
  3. 3. 名前:高橋誠二 学歴:慶應経済4年 職種:エンジニア勤務3年 ライブラリ2つ自作して起業家に 関するデータ分析の卒論書いた。 Digital Founders Japan選抜。 7社インターン、新規開発・運用部 100名規模の人事評価制度設計。 エンジニアの海外コミュニティーサイト Casualyze.com運営経験。 Techlabpaakプロジェクト会員 Gunosyっぽいやつできた←New twitter: @timadayon github: timakin
  4. 4. ANYGMAとは
  5. 5. ビジネスとテクノロジーの両面 において、スキルを持った エンジニア集団
  6. 6. 自分のプロダクトを個々が持ち、 水面下ではなく表に出て ハッカーとして活動する団体
  7. 7. 創設の思い
  8. 8. エンジニアって結局 ビジネスサイドの奴隷みたいに なってる
  9. 9. 自分でプロダクトを 作れる力を持って、 ハッカーが世の中を主導していく 足がかりを作ろう。
  10. 10. • データマイニングとは • ミニGunosyのつくりかた • 今回問題になった点 • 機械学習プロダクトのつくりかた 目次
  11. 11. データマイニングとは
  12. 12. 雑多なデータ群から 有益な情報を引き出すこと
  13. 13. 機械学習そのものとデータマイニングは 必ずしも一致しない。
  14. 14. 今回の事例
  15. 15. 生の記事タイトルから
  16. 16. 202URL 8 28Ubuntu 18 364Unity10 134Vagrant 6 13View 3 158Vim7 517VirtualBox 3
  17. 17. 名詞を抽出 言語ベクトル変換
  18. 18. 要は生のターゲット情報を 加工して、解析可能な形にする ってこと。
  19. 19. これを元に解釈を加えるのが データマイニングと 機械学習の垣根
  20. 20. 研究活動とかだと データマイニングよくやる (やらない学科は死ぬ)
  21. 21. 具体名
  22. 22. テキスト解析 画像認識 音声認識 数値解析
  23. 23. クラスタリング フィルタリング 特徴抽出
  24. 24. Deep Learning Neural Net KNN SVM Bayes Analysis
  25. 25. Deep Learning Neural Net KNN SVM Bayes Analysis
  26. 26. すごい
  27. 27. 作ったほう がはやいん じゃ?
  28. 28. ミニGunosyのつくりかた
  29. 29. そもそもなんでそれ作った
  30. 30. Gunosyの 福島さんって凄いこと やってるっぽいけど、 ほんとにすげぇのか? ライブラリ使うだけだぜ? 機械学習Yo よゆーでいけるわー:D
  31. 31. なんかQiitaの情報って RSSでも流れてこないから 手軽に手に入れたいわー よゆーでいけるわー:D
  32. 32. よゆーじゃない:D
  33. 33. 工程
  34. 34. RubyでAPI接続と生データ抽出、形態素 解析で単語分割、名詞のみ抽出、テキス ト書き出し。Pythonでテキストから意味 ある名詞とその意味の重要さ、登場頻度 を考慮した特徴語抽出、特殊語の不要な ものをさらにクリーニング、CSVに書き 出し、特徴語を言語ベクトルに変換、言 語ベクトルの次元圧縮、クラスタリング、 予測モデルのトレーニング、結果のチュー
  35. 35. ・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化
  36. 36. ・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化
  37. 37. ところで
  38. 38. ・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化
  39. 39. 本来やらんでいいとこ
  40. 40. ・生データ抽出 ・名詞のみ抽出テキスト書き出し。 ・意味の重要さ、登場頻度を考慮 ・邪魔な単語を除外 ・互いの単語の関係を座標で表現 ・トピックごとにまとめる ・予測モデルのトレーニング ・結果を良くする ・クライアントツール化
  41. 41. 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.
  42. 42. https://github.com/timakin/qunosy
  43. 43. 製作期間
  44. 44. 1週間 ╭( ・ㅂ・)‫و‬ ̑̑
  45. 45. 使った言語
  46. 46. Python Ruby Go Shell
  47. 47. Python Ruby Go Shell
  48. 48. Golang
  49. 49. 話題なのにWeb周辺で使わない ので、今回ちょっと触った。
  50. 50. コマンド ツール化
  51. 51. デモ
  52. 52. 今回問題になった点
  53. 53. 文字列処理
  54. 54. MeCab
  55. 55. Natto
  56. 56. 言語選択
  57. 57. 最初から 1つか2つ がいい。
  58. 58. あくまでプロトタイプ作るなら、 言語増えるはずはない。 今回はたまたまコマンドライン ツール化したから増えた。
  59. 59. 調べごと
  60. 60. ぜんぶ専門的な英語
  61. 61. 機械学習プロダクトのつくりかた
  62. 62. 1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える
  63. 63. 1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える
  64. 64. ・オープンデータ ・クローリング ・DeveloperAPI
  65. 65. 1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える
  66. 66. ・分類が必要か? ・重み付けするか? ・予測するか?
  67. 67. 1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える
  68. 68. ・文字コード ・数値の単位 ・欠損データ
  69. 69. 1. やりたいことを決める 2. 分析に必要なデータを調べる 3. 分析手法を決める 4. 手法にあったデータを抽出する 5. 適切な形にデータを加工する 6. (訓練データを作って学習) 7. 表示形式を整える
  70. 70. 機械を訓練するデータを 自分で作る必要があるのが、 教師あり学習
  71. 71. 適切な手順を踏んで、 手法を調査していけば、 だいたい先人の知恵でうまくいく。
  72. 72. おつ :)

×