SlideShare ist ein Scribd-Unternehmen logo
1 von 43
集合知
プログラミング
#3 グループを見つけ出す
(前半)
2012.10.30 集合知プログラミング勉強会 #TokyoCI
@komiya_atsushi
https://github.com/komiya-atsushi/TokyoCI-study
Supervised
                        and
                    Unsupervised
                      learning
Photo by cybrarian77 http://www.flickr.com/photos/cybrarian77/6284181389/
教師あり学習
•「正解」が明らかになっている入力
 データをもとにモデルを構築する(学
 習)
•「正解」があるが、明らかになってい
 ないデータを入力として、「正解」を
 予測する
教師あり学習
•「正解」が明らかになっている入力
 データをもとにモデルを構築する(学
 習)
•「正解」があるが、明らかになってい
 ないデータを入力として、「正解」を
 予測する
   データを『分類』したり
    結果を『予測』する
教師なし学習
•「正解」が存在しない
•データをごにょごにょして「なにか」
 を見つける
教師なし学習
•「正解」が存在しない
•データをごにょごにょして「なにか」
 を見つける

   データ全体の『特徴』や
   『特性』を明らかにする
目的・問題に応じて使いわけよう
•「がく」の長さと幅、そして「花弁」
 の長さと幅から既知のアヤメの種類を
 判別してくれる高精度な分類器が欲し
 いなあ…
•うちの EC サイトで商品を買ってくれ
 る人たちって、どんな傾向の人が多い
 んだろう?
目的・問題に応じて使いわけよう
•「がく」の長さと幅、そして「花弁」
 の長さと幅から既知のアヤメの種類を
 判別してくれる高精度な分類器が欲し
 いなあ…
•うちの EC サイトで商品を買ってくれ
  教師あり学習向き
 る人たちって、どんな傾向の人が多い
 んだろう?
目的・問題に応じて使いわけよう
•「がく」の長さと幅、そして「花弁」
 の長さと幅から既知のアヤメの種類を
  教師なし学習向き
 判別してくれる高精度な分類器が欲し
 いなあ…
•うちの EC サイトで商品を買ってくれ
 る人たちって、どんな傾向の人が多い
 んだろう?
教師あり学習と教師なし学習の例
•教師あり
 •ニューラルネットワーク、決定木、サ
  ポートベクトルマシン、ベイジアンフィ
  ルタなど
•教師なし
 •クラスタリング、非負値行列因子分解、
  自己組織化マップなど
教師あり学習と教師なし学習の例
•教師あり
 •ニューラルネットワーク、決定木、サ
  ポートベクトルマシン、ベイジアンフィ
  ルタなど
•教師なし
 •クラスタリング、非負値行列因子分解、
  自己組織化マップなど
Clustering
Photo by tjuel http://www.flickr.com/photos/tjuel/5805997664/
クラスタリング 概要
•「似たもの同士でグループにしてみま
 しょう」
クラスタリング 概要
•「似たもの同士でグループにしてみま
 しょう」
クラスタリング 概要
•「似たもの同士でグループにしてみま
 しょう」
クラスタリング 概要
•「似たもの同士でグループにしてみま
 しょう」



       色が同じ
クラスタリング 概要
•「似たもの同士でグループにしてみま
 しょう」
クラスタリング 概要
•「似たもの同士でグループにしてみま
 しょう」



       形が同じ
クラスタリングに必要な「もの」
•データをよく表現する「特徴」
 •【例】
  • 人:年齢、伸長、体重、性別…
•似ているかどうかを判断する/測る
 「ものさし」
 •「類似度」のこと
 •ピアソン相関係数、コサイン類似度、
  Jaccard 係数…
クラスタリングの手順
 どのように進めていくのか?

1. 個々のデータから「特徴ベクトル」
   を抽出する
2. ふたつの「特徴ベクトル」間の
   「距離・類似度」を計算する
3. 距離・類似度の近いものをまとめる
問題設定と準備

Photo by kakissel http://www.flickr.com/photos/kakissel/7182285229/
書籍中での問題設定(前半)
•「ブログサイト」を一つ一つのデータ
 と見立てる
•ブログ中で使われている単語の傾向で
 ブログをクラスタリングしてみる
 •ブログエントリ中に出てくる単語の
  「出現回数」からなる特徴ベクトルを
  用意する
準備
•feedparser を使って、100ほどのサイトの
 RSS フィードを取得する
•取得したフィードから単語を抽出し、かつ
 出現回数をカウントする
•ブログのサイト名とともに、出現回数を特
 徴ベクトルとしてファイル出力する
•ソースコード
 • http://goo.gl/Pn6aS (generatefeedvector.py)
Hierarchical
                     Clustering
Photo by pretendtious http://www.flickr.com/photos/27273053@N05/4646753786/
階層的クラスタリング
•そのときもっともよく似ているものを2つ
 くっつけましょう
 1. すべての2つの特徴ベクトルの組み合わせ
    について、
 2. 距離が最小となるものを選び、
 3. 一つの新たなグループとする
 4. 特徴ベクトルは二者の平均とする
 • 上記をグループがひとつになるまで繰り返す
階層的クラスタリング


           C   D


                   E
   A

       B


平面上の距離の近さを「類似度」とします
階層的クラスタリング


           C   D


                   E
   A

       B


平面上の距離の近さを「類似度」とします
階層的クラスタリング


           C   D


                   E
   A

       B


平面上の距離の近さを「類似度」とします
階層的クラスタリング


           C   D


                   E
   A

       B


平面上の距離の近さを「類似度」とします
階層的クラスタリング


           C   D


                   E
   A

       B


平面上の距離の近さを「類似度」とします
デンドログラム




   A       B   C       D   E




   A   B       C   D       E
階層的クラスタリングの実装
•距離関数を用意する
階層的クラスタリングの実装
•距離関数を用意する
階層的クラスタリングの実装
• 距離計算→最小距離の2つをマージ…を繰り返す
階層的クラスタリングの実装
 • 距離計算→最小距離の2つをマージ…を繰り返す



ソースコード
https://github.com/komiya-atsushi/TokyoCI-study/blob/master/chap.3/clusters.py
階層的クラスタリングのデモ




        demo
k-Means
Clustering
k-means(k平均法)
•クラスタの数 k を事前に決める
•最初にランダムに k 個の重心を配置する
1. データを最寄りの重心に割り当てる
2. 重心に割り当てられたデータの平均を、
   次の重心とする
•上記を重心が収束するか、一定回数繰り返
 したところで終了する
すばらしいオンラインデモが!




http://tech.nitoyon.com/ja/blog/2009/04/09/kmeans-visualise/
k-Means の実装




ソースコード
https://github.com/komiya-atsushi/TokyoCI-study/blob/master/chap.3/clusters.py
Thanks !
             &
       Any questions?
Photo by tjuel http://www.flickr.com/photos/tjuel/5805421265/
おまけ
Emacs で Python コードを書きたい方へ




https://github.com/komiya-atsushi/TokyoCI-study/blob/master/EmacsPythonEnvironment.md

Weitere ähnliche Inhalte

Andere mochten auch

みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
Kazuaki SAKAI
 
5年後のデータサイエンティスト
5年後のデータサイエンティスト5年後のデータサイエンティスト
5年後のデータサイエンティスト
Drecom Co., Ltd.
 
リーンスタートアップを実践してのこれまでとこれから
リーンスタートアップを実践してのこれまでとこれからリーンスタートアップを実践してのこれまでとこれから
リーンスタートアップを実践してのこれまでとこれから
Yoshihito Kuranuki
 
小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE
Yuji Tomiyama
 
米国のスマートフォンアプリ市場とプロモーション
米国のスマートフォンアプリ市場とプロモーション米国のスマートフォンアプリ市場とプロモーション
米国のスマートフォンアプリ市場とプロモーション
Hiromitsu Ishimori
 
たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜
たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜
たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜
Hiromu Shioya
 

Andere mochten auch (19)

みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?
 
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining
 
5年後のデータサイエンティスト
5年後のデータサイエンティスト5年後のデータサイエンティスト
5年後のデータサイエンティスト
 
デブサミ2013の明後日な楽しみ方
デブサミ2013の明後日な楽しみ方デブサミ2013の明後日な楽しみ方
デブサミ2013の明後日な楽しみ方
 
PMフォーラム2011大阪_maekawa_20110731
PMフォーラム2011大阪_maekawa_20110731PMフォーラム2011大阪_maekawa_20110731
PMフォーラム2011大阪_maekawa_20110731
 
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
xDev2010 早い安い新しい「Fast IT」を使いこなせ! クラウドを楽しめるエンジニアの条件
 
アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介
 
アジャイル×パターン=ぼくたちの現場 イントロダクション
アジャイル×パターン=ぼくたちの現場 イントロダクションアジャイル×パターン=ぼくたちの現場 イントロダクション
アジャイル×パターン=ぼくたちの現場 イントロダクション
 
リーンスタートアップを実践してのこれまでとこれから
リーンスタートアップを実践してのこれまでとこれからリーンスタートアップを実践してのこれまでとこれから
リーンスタートアップを実践してのこれまでとこれから
 
20130423 #devlove 職場を劇的にさせる四十八手 —「n次請けSIerでも出来ること」のその続き—
20130423 #devlove 職場を劇的にさせる四十八手 —「n次請けSIerでも出来ること」のその続き—20130423 #devlove 職場を劇的にさせる四十八手 —「n次請けSIerでも出来ること」のその続き—
20130423 #devlove 職場を劇的にさせる四十八手 —「n次請けSIerでも出来ること」のその続き—
 
小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE小さな幸せの集め方ForDevLOVE
小さな幸せの集め方ForDevLOVE
 
米国のスマートフォンアプリ市場とプロモーション
米国のスマートフォンアプリ市場とプロモーション米国のスマートフォンアプリ市場とプロモーション
米国のスマートフォンアプリ市場とプロモーション
 
とべとべ vol.9【第一部】「エンジニアの成長戦略 in ブラック」
とべとべ vol.9【第一部】「エンジニアの成長戦略 in ブラック」とべとべ vol.9【第一部】「エンジニアの成長戦略 in ブラック」
とべとべ vol.9【第一部】「エンジニアの成長戦略 in ブラック」
 
勉強会カンファレンス2011、企業と勉強会
勉強会カンファレンス2011、企業と勉強会勉強会カンファレンス2011、企業と勉強会
勉強会カンファレンス2011、企業と勉強会
 
20140925ついうっかりよさようなら
20140925ついうっかりよさようなら20140925ついうっかりよさようなら
20140925ついうっかりよさようなら
 
魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning Talk魅せる! How to fascinate audiences by your Lightning Talk
魅せる! How to fascinate audiences by your Lightning Talk
 
たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜
たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜
たのしい宿題発表会 〜慣れない言語で車輪の再開発しよう〜
 
パタン・ランゲージからプロジェクト・ランゲージへ Part1
パタン・ランゲージからプロジェクト・ランゲージへ Part1パタン・ランゲージからプロジェクト・ランゲージへ Part1
パタン・ランゲージからプロジェクト・ランゲージへ Part1
 
お客様とコードの間
お客様とコードの間お客様とコードの間
お客様とコードの間
 

Ähnlich wie 第3回集合知プログラミング勉強会 #TokyoCI グループを見つけ出す

Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
 

Ähnlich wie 第3回集合知プログラミング勉強会 #TokyoCI グループを見つけ出す (20)

コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
Test to net core 3
Test to net core 3Test to net core 3
Test to net core 3
 
Pfi last seminar
Pfi last seminarPfi last seminar
Pfi last seminar
 
Introduction to Spock
Introduction to SpockIntroduction to Spock
Introduction to Spock
 
Azure Machine Learning Services 概要 - 2019年2月版
Azure Machine Learning Services 概要 - 2019年2月版Azure Machine Learning Services 概要 - 2019年2月版
Azure Machine Learning Services 概要 - 2019年2月版
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
Opencv object detection_takmin
Opencv object detection_takminOpencv object detection_takmin
Opencv object detection_takmin
 
[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles
[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles
[DL Hacks 実装]StyleNet: Generating Attractive Visual Captions with Styles
 
「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」
 
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
 
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
 
20181031 springfest spring data geode
20181031 springfest spring data geode20181031 springfest spring data geode
20181031 springfest spring data geode
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
 
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
Hierarchical and Interpretable Skill Acquisition in Multi-task Reinforcement ...
Hierarchical and Interpretable Skill Acquisition in Multi-task Reinforcement ...Hierarchical and Interpretable Skill Acquisition in Multi-task Reinforcement ...
Hierarchical and Interpretable Skill Acquisition in Multi-task Reinforcement ...
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
Markdown DB Unit
Markdown DB UnitMarkdown DB Unit
Markdown DB Unit
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

第3回集合知プログラミング勉強会 #TokyoCI グループを見つけ出す