SlideShare a Scribd company logo
1 of 86
Download to read offline
R でデータマイニング
 ∼サンプリングデータのケース∼




      Tokyo.R #24
    @kenchan0130_aki
自己紹介
某理科系大学院生

専攻は確率過程、信用リスク
            ⇨ テキストマイニング?

寝ることが趣味

働いたら負け

最近の原動力  ⇨
自己紹介
某理科系大学院生

専攻は確率過程、信用リスク
            ⇨ テキストマイニング?

寝ることが趣味

働いたら負け

最近の原動力  ⇨
Data Mining with R
 Learning with Case Studies
       Luis Torgo(2010)


• 導入


• 藻類の予測


• 株式市場のリターンの予測


• 不正行為の検知


• マクロアレイの分類
Data Mining with R
    Learning with Case Studies
           Luis Torgo(2010)


• 導入


• 藻類の予測


• 株式市場のリターンの予測        の 機会
       た次      ま


• 不正行為の検知    の 機会
    た次 ま


•   マクロアレイの分類機会
          次の
       また
本日の目標

私も初心者です!一緒に勉強しましょう

ここにはデータマイニングのプロが多くいらっ

しゃる

− 分からないことはお聞きしてしまおう!
データマイニング

 データマイニングとは、統計学、パターン認識、人工
知能等のデータ解析の技法を大量のデータに網羅的に適
用することで知識を取り出す技術。
  通 常 の デー タ の 扱 い 方 か ら は 想 像 が 及 び に く い 、
ヒューリスティクな知識獲得が可能であるという期待を
含意していることが多い。

                                   引用:Wikipedia
今回はすごい技術教えてくれるんですか?
いいえ
データをどう見るのか?(に近いです)
Predicting Algae Blooms
               (直訳:藻類の予測)

川に有害な藻類が発生してます

                       http://digimaga.net/uploads/2008/07/player-
                    performs-sailing-competition-in-an-alga-in-the-
                                                      dirty-sea.jpg




藻類の大繁殖の予測は川の質の向上に必要
不可欠

じゃあ藻類の発生頻度を予測しましょう
この問題の背景

水中に存在する藻類の識別は大変


顕微鏡検査やらなんやらと経験者が必要


高価で分析スピードが遅い
発生頻度を予測できたら

 安価で自動化されたシステムを作れるかもしれない

 化学物質だけではなく、他の特性(季節や川の種
 類など)がどう影響するか理解できるかもしれな
 い
データ
水のサンプルはヨーロッパの異なる河川で一年間
採取したもの

有害な藻類の発生頻度とほぼ同じ間隔で採取

DMwRパッケージのalgaeのデータセットを使いま
す
パッケージが用意されているのでインストール


使うのはalgae
mxPH・・・ ph値の最大値

mnO2・・・ 酸素の最小値

Cl ・・・ 塩化物の平均値

NO3 ・・・ 硝酸イオンの平均値

NH4 ・・・ アンモニウムイオンの平均値

oPO4 ・・・ オルソリン酸イオンの平均

PO4 ・・・ リン酸の合計の平均値

Chla ・・・ 葉緑素の平均

a1∼a7 ・・・ 異なる7つの藻類の発生頻度
データの要約と可視化

データが与えられたらとりあえずsummary

− データ(統計量など)を確認する


データを見える化しましょう
− plotしてみたりする
summaryから頻度などの特徴が得られる
とりあえずたくさん可視化してみましょう!
試しにmxPHのヒストグラムを出力してみる
Histogram of algae$mxPH




          0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
Density




                                            6        7         8      9   10

                                                         algae$mxPH
Histogram of algae$mxPH




          0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
Density




                                             6        7         8      9   10

                                                          algae$mxPH


                                            正規分布みたいですよね
ちなみに attach(algae) をすると

 mxPH   = algae$mxPH

 直接カラム名でアクセスできる


やめたいときは detach(algae)
じゃあ本当に正規分布なのか確かめる
Histogram of maximum pH value

          1.0
          0.8
          0.6
Density

          0.4
          0.2
          0.0




                6       7         8      9      10

                            algae$mxPH
Histogram of maximum pH value

             1.0
             0.8
             0.6
   Density

             0.4
             0.2
             0.0




                   6       7         8      9      10

                               algae$mxPH


裾の辺りに小さい値が2つ存在することがわかる
Normal QQ plot of maximum pH
             9
algae$mxPH

             8




                                                               # distribution:デフォルトで norm
                                                               # envelope:デフォルトで 0.95
             7
             6




                 -3    -2    -1         0          1   2   3

                                  norm quantiles
Normal QQ plot of maximum pH
             9
algae$mxPH

             8




                                                               # distribution:デフォルトで norm
                                                               # envelope:デフォルトで 0.95
             7
             6




                 -3    -2    -1         0          1   2   3

                                  norm quantiles
                 5%エラーで

                            ほぼ正規分布であることがわかる
次にoPO4の箱ひげ図
Orthophosphate (oPO4)

0   100 200 300 400 500
Orthophosphate (oPO4)

                      0   100 200 300 400 500




positive skewが確認できる
Orthophosphate (oPO4)

                                           0   100 200 300 400 500




                     positive skewが確認できる

値の大きい外れ値がいくつか確認できる
もうちょい外れ値についてゴニョゴニョ
25000
                        mean
                        mean+sd
                        median
            15000
algae$NH4

            5000
            0




                    0      50     100   150   200
25000
                        mean
                        mean+sd
                        median
            15000
algae$NH4

            5000
            0




                    0      50     100   150   200

            やっぱり外れ値いっぱいあるね
外れ値の元データどういうのか知りたいですね
algae$NH4

      0   5000        15000    25000




0
50
100
150
                              153




200
いちいちマウスでクリックは面倒くさい




plotで大体15000以上だからそれで検索かけてもOK
げ、NA祭りだ・・・
ちゃんとNAを除く処理を書くようにしましょう
NAを処理する方法
   manyNAs()

   is.na()

   complete.cases()

   na.omit()

   mean()やsd()などのna.rmオプション
藻類の発生頻度の分布を箱ひげ図で確かめる
80
           60
Algal a1

           40
           20
           0




                 large    medium      small

                         River Size


                見づらいので・・・
River Size     small




             medium




               large




                       0   20   40         60   80

                                Algal a1
River Size     small




                medium




                  large




                          0   20   40         60   80

                                   Algal a1



a1はsmallに多く分布していることが確認できる
もうちょっと・・・すごい(気がする)箱ひげ図
small
River Size




                                                     # ●は頻度の平均値
             medium                                  # 縦線は左から 第一四分位点、中央値、第三四分位点
                                                     # ダッシュは実際のデータの頻度




               large




                       0   20   40         60   80

                                Algal A1
small
River Size




                                                     # ●は頻度の平均値
             medium                                  # 縦線は左から 第一四分位点、中央値、第三四分位点
                                                     # ダッシュは実際のデータの頻度




               large




                       0   20   40         60   80

                                Algal A1


                                頻度も確認できるので便利
0   10    20     30   40

                   minO2                           minO2
 winter

summer

 spring

autumn
                                                                     # number:データを何個に分けるか
                   minO2                           minO2             # overlap:分けた時にデータをどのくらい重複させるか
 winter
                                                                     # striplot は lattice パッケージ
summer

 spring

autumn


          0   10    20     30   40

                                     a3
0   10    20     30   40

                   minO2                           minO2
 winter

summer

 spring

autumn
                                                                     # number:データを何個に分けるか
                   minO2                           minO2             # overlap:分けた時にデータをどのくらい重複させるか
 winter
                                                                     # striplot は lattice パッケージ
summer

 spring

autumn


          0   10    20     30   40

                                     a3




                   a3とseasonの関係とminO2を表している
欠損値の補完

さっきも出てきたNAたちをどうしよう
か?ということ

欠損値を除く=その行のデータが消える
−色々な方法で補完
平均と中央値で補完する
相関関係を使って補完してみる
補完OKなのは相関係数0.9以上
今回はPO4とoPO4
回帰した結果で補完
k近傍法でNAを補完してくれる関数が
  DMwRには用意されている
予測モデル


藻類の発生頻度を予測

今回は線形回帰モデルと樹木モデルを使用
調整済み決定係数低いなぁー
調整済み決定係数低いなぁー

 分散分析確認してみよう
seasonのF値低いし除いてみようかな
正直、微妙
正直、微妙

一応ちゃんと比較してみる
約30%の信頼度
Rには素敵な関数stepが用意されています
うん、微妙
約40%の信頼度になった
どうも線形モデルはうまく当てはまらない?
これ
xerrorの最小値からその標準偏差1倍
 の範囲内の最大のxerror値を選ぶ
0.6158 < xerror < 0.83332
これ




この剪定した結果を用いて樹木を作る
なんでcp=0.08なんですかね?
今の作業を全部やってくれる関数が
 DMwRには用意されている
モデルの選択と評価


線形回帰モデルと樹木モデルのモデルを評
価する
平均絶対誤差(mae)、平均二乗誤差(mse)、平均二乗誤差の
ルート(rmse)、正規化平均二乗誤差(nmse)、正規化平均絶対
       誤差(nmae)を求めてくれる関数が
        DMwRには用意されている
80
                     Linear Model                             Regression Tree




                                                        80
              60




                                                        60
True Values




                                          True Values
              40




                                                        40
              20




                                                        20
              0




                                                        0
                   -10 0   10        30                      10   20      30    40

                       Predictions                                Predictions




                                正直、微妙
ホールドアウト、モンテカルロシミュレーション、
ブートストラップなどを使って予測モデルを直してくれる
   experimentalComparison関数というものが
        DMwRには用意されている
すみません
これより先よくわかりませんでした
おそらくスコアをつけて予測モデルを修正していくらしい
言い訳をすると

            この本は
「モデル選択の段階でとても興味深い得点を得ることができた」
         と終わらせています
まとめ
データを可視化してどうなってるのか見ま
しょう

欠損値(NA)をうまく処理しましょう

モデル予測の当てはめは面倒

今回の方法も
「こんな風にやっていけばデータマイニン
グできるんじゃない?」
という提唱にすぎません
ありがとうございました

More Related Content

Viewers also liked

Tokyor42 ggplot2
Tokyor42 ggplot2Tokyor42 ggplot2
Tokyor42 ggplot2Yohei Sato
 
Tokyor42_r_datamining_18
Tokyor42_r_datamining_18Tokyor42_r_datamining_18
Tokyor42_r_datamining_18Yohei Sato
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門toilet_lunch
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
R言語で学ぶマーケティング分析 競争ポジショニング戦略
R言語で学ぶマーケティング分析 競争ポジショニング戦略R言語で学ぶマーケティング分析 競争ポジショニング戦略
R言語で学ぶマーケティング分析 競争ポジショニング戦略Yohei Sato
 
Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門Yohei Sato
 

Viewers also liked (6)

Tokyor42 ggplot2
Tokyor42 ggplot2Tokyor42 ggplot2
Tokyor42 ggplot2
 
Tokyor42_r_datamining_18
Tokyor42_r_datamining_18Tokyor42_r_datamining_18
Tokyor42_r_datamining_18
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
 
R言語で学ぶマーケティング分析 競争ポジショニング戦略
R言語で学ぶマーケティング分析 競争ポジショニング戦略R言語で学ぶマーケティング分析 競争ポジショニング戦略
R言語で学ぶマーケティング分析 競争ポジショニング戦略
 
Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門Tokyo r12 - R言語による回帰分析入門
Tokyo r12 - R言語による回帰分析入門
 

More from Tadayuki Onishi

More from Tadayuki Onishi (8)

はじパタLT3
はじパタLT3はじパタLT3
はじパタLT3
 
そろそろSublime Text 2を熱く語ろうと思う
そろそろSublime Text 2を熱く語ろうと思うそろそろSublime Text 2を熱く語ろうと思う
そろそろSublime Text 2を熱く語ろうと思う
 
はじパタLT2
はじパタLT2はじパタLT2
はじパタLT2
 
はじパタLT Section1
はじパタLT Section1はじパタLT Section1
はじパタLT Section1
 
アド部6回発表
アド部6回発表アド部6回発表
アド部6回発表
 
アド部5回発表
アド部5回発表アド部5回発表
アド部5回発表
 
garchfit
garchfitgarchfit
garchfit
 
Tokyo r 10_12
Tokyo r 10_12Tokyo r 10_12
Tokyo r 10_12
 

Recently uploaded

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 

Recently uploaded (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Data Mining with R algae bloom case