SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
第一回 DataMining 勉強会
     2013/1/10
       第二章
R による基本統計量の計算
自己紹介
   About Me
    ●   Twitter @yushin_hirano 。
    ●   最近 Hadoop に関われなくて不満。
    ●   1/4 まで引っ越し残作業その他で勉強してなかった。
    ●   発表の前日と当日朝4時までこの資料を作ってた。
    ●   いろいろヒドイ無計画なエンジニア。
Contents
●   R による平均と分散の計算
    ●   平均と分散
    ●   R を使った計算
●   R を始めるための弾丸ツアー
    ●   インストール
    ●   起動 - インタラクティブモードとバッチモード
    ●   演算子、制御構造
    ●   変数と型
    ●   データソース
    ●   デモ
    ●   ヘルプ
    ●   その他
●   n 進数→略(さすがに大丈夫でしょう)
基本統計
平均と分散
お前ら、
  平均と分散は
もちろん知ってるな?
Of Course
  Yes !
超基本統計



   省略
    平均と分散

        ~完~
平均と分散


テキスト見て式を復習しておいてください。
        念のため。
では、 R を使って
 計算するんだ。
R を使った平均と分散


> x1 <- c( 118, 119, 121, 122, 170 )
> x2 <- c(128,129,130,131,132)

> mean(x1)
> var(x2)
以上。
意味
わかんない!
R の導入
   R を「始める」にあたって、
  「覚えておいた方がよいこと」
  「便利なこと」を中心に記述。
   (詳しい利用ケースなどは、
後の回に出てくるでしょう。期待。)
R とは
   R 言語
    ●   統計・分析・グラフィックスに優れたスクリプト言語。
    ●   AT&T が開発した統計言語 S からアイデアを得た、 OSS での実
        装。
    ●   Windows 、 Mac 、 Linux 、 Unix 版など、様々な OS で動作。
    ●   オブジェクト指向、関数型言語の特徴を持つ。
   しかし
    ●   R 一文字って Google で検索し辛い。
    ●   検索結果が専門的すぎて素人お断り。
スクリプト言語
…?
何言ってんの
プログラミングとか
 するわけないよ
 所詮 PC オタクが
  するもんだよ
オタクは帰れ帰れ!
そこのお前。
Windows の電卓と
  EXCEL だけで
 1000 万レコード
 計算してみろ。
※ スクリプト言語の1個を覚えるだけ
で計算がこんなに便利に。

※ ここからややプログラミング言語的
な話に入ります。
とりあえず、変数と型と関数リファレ
ンスがあれば入っていけるでしょう。
※ ここでは紹介レベル。各項目の詳細
は各自ご調査を。
※ いずれ EXCEL で 1000 万行できそうで怖い。
R のインストール
   CRAN ( Comprehensive R Archive
    Network )で提供されている。
   For Windows
    ●   http://www.r-project.org/
    ●   プロジェクトページ =>CRAN から適当に探して Windows 向け
        のインストーラを取得。とりあえず base パッケージをどうぞ。
   For Linux
    ●   同じくプロジェクトページの CRAN から。
    ●   Redhat 系、 Debian 系、 SUSELinux 、 ubuntu 向けにパッケー
        ジが公開されている。
R の起動
   二つのモードがある。
   インタラクティブモード
    ●   一つ一つコマンドを打ち込んでその結果を確認しつつ動作させ
        るもの。
    ●   つまりはインタプリタ。
    ●   デフォルトのモード。普通に起動するとこちらで動作する。
   バッチモード
    ●   あらかじめ R のコマンドを記述したスクリプトファイルを用意
        し、それらを一括して起動させるモード。
    ●   コマンドラインから $ R CMD BATCH 「スクリプトファイル」
        で実行。
演算子と制御構造①
   演算子
    ●   一般的なスクリプト言語、オブジェクト指向言語にある基本的
        なものはほとんど存在。
    ●   + 、 - 、 * 、 / 、 ^ 、 < 、 > 、 == 、 != 、 && 、 || 、 ! 、など。
    ●   中々見ない記法のものは以下。
         –   %/% :整数除算
         –   %% : mod( 剰余 )
         –   <- :代入演算子
R の演算子と制御構造②
   制御構造
    ●   一般的なスクリプト言語にある制御構造はやっぱり大体ある。
    ●   for 、 while 、 if 、など。
    ●   for はベクトル等を対象にすると便利な使い方が可能。
         –   といっても、最近の言語じゃこの程度当たり前か・・・



    > for (n in Nile) print(n * 2)
R の変数と型①
   変数
    ●   一般的な変数と同様。
    ●   宣言不要。
    ●   静的型付けではない。
    ●   同じ変数に別の型のデータを何度も入れ替えできる。
    ●   代入には【 <- 】演算子を使う。 = も効くが特殊なケースでうま
        く動かないことがあるらしい。


    > n <- c(1,3,5,9)
    > m <- c(10,5,5,8)
R の変数と型②
   変数の参照
    ●   変数名打って ENTER 叩くだけ。
    ●   print( 変数名 )
    ●   attributes( 変数名 )
    ●   変数名 $ 要素名 ( => 後述)


    >n
    >m
    > print(n)
    > print(m)
R の変数と型③
   ベクトル型
    ●    同じ型のデータセット。
    ●    c( 要素 1, 要素 2, ...) で生成できる。
    ●    x[ インデックス番号 ] で参照できる。
    ●    インデックスは1から始まる。
    ●    長さは length(x) で参照


        > vec <- c(100,110,120,120,130)
        > vec
        > vec[2]
        > vec[2:4]
R の変数と型④
   文字、数字、ブール、文字列型
    ●   文字や数字は特に苦労なし。
    ●   ブール値は「 TRUE 」、「 FALSE 」。 T 、 F で省略可能。
    ●   文字列型はダブルクォーティングで生成する。
    ●   文字列型は文字型のベクトルとなっている。
        –   というよりも、単なる文字型すら要素1の文字ベクトル。
        –   これは数値も同様で、単独の値は要素1のベクトル。


    > str1 <- “teststr”
    > str1
R の変数と型⑤
   行列型
     ●   数学でいう n×m 行列。
     ●   c( 要素 1, 要素 2, ...) で生成できる。
     ●   全要素が同じ型である。
     ●   rbind (行結合)、 cbind (列結合)で、ベクトルを結合して作
         る。
     ●   インデックス二つで要素を指定する他、行のみ、列のみの指定
         が可能。
    > mtx1 <- rbind(c(1,5,6),c(2,6,7))
    > mtx2 <- cbind(c(1,5,6),c(2,6,7))
    > mtx1
    > mtx2
    > mtx1[1,2]
    > mtx1[,2]
    > mtx1[2,]
R の変数と型⑥
   リスト型
    ●   データ構造に出てくるいわゆる [ リスト ] とは無関係。
    ●   異なる型の値を複数保持できるもの。
    ●   C 言語の構造体に近い。
    ●   list() で作る。
    ●   list の各要素にアクセスするには、
    ●   変数名 $ 要素名(スペース等開けない)

    > l1 <- list(unit=2, val="str")
    > l1
    > l1$unit
R の変数と型⑦
       データフレーム型
        ●   一言で行ってしまえば、 RDB のテーブルみたいなもの。
        ●   各カラムそれぞれ異なる型を持てる行列。
        ●   実際の中身としては、各要素が行列であるリスト、ということ
            になっている。
        ●   data.frame() で作成。
        ●   基本的には、このように作るよりも、 RDB やファイルなどから
            Import する。

>   df <- data.frame(list(uid=c("0001","0002","0003"),time=c(10,20,40)))
>   df
>   df$time
>   df[,1]
R の変数と型⑧
   変数出力、型調査など。
    ●   print
    ●   attributes()
    ●   class()
    ●   str() :オブジェクト構造を出力
   関数定義
   クラス作成
    ●   宿題。
    ●   関数自作の際、 return を省略すると最後の式の戻り値がそのま
        ま return される。(ここだけチェックした・・・)
R のデータソース
   Input
        ●   RDB からデータ Input→ データフレームを作成
        ●   ファイルからデータ Input→ データフレームを作成
        ●   量が大きくなればこの2パターンが主

    >   res <- read.table("exam_result",header=TRUE)
    >   res
    >   res$math
    >   mean(res$math)
Coffee Break.
寝るな。
起きろ。
R デモ
   デモデータ
    ●   R にはあらかじめデモデータが備わっています。
    ●   data() で参照してみましょう。
平均と分散、その他統計
   デモデータを使った平均、分散、など
    ●   mean(Orange$age)
    ●   var(Orange$age)
    ●   sd(Orange$age)
    ●   mean(Nile)
    ●   max(Nile)
    ●   sum(Nile)
   グラフ化(グラフィックスは次回の講義)
    ●   hist(Orange$age)
R の関数


山の様に。
ヘルプ
   何が出てきても調べられるように、ヘルプ
    の参照をチェック。
    ●   help( 関数名 ) 、 ?” 関数名”
    ●   help.search(“ キーワード” ) 、 ??” キーワード”→検索が走る。
    ●   help(package= パッケージ名 ) で、パッケージマニュアル。
    ●   example( 関数名 ) で、各関数の使用例とデモが出力される。
    ●   example(lm) (線形モデル例)
    ●   Google ではヒットさせ辛い。 R 言語専門の検索サイトなどを使
        うのも手。 SeekR など。 http://seekr.jp/
その他
   IDE
    ●   通常はコマンドラインで利用する。
    ●   しかし IDE( 統合開発環境 ) も存在する。
    ●   RStudio
         –   http://d.hatena.ne.jp/hiratake55/20120527/1338091311
    ●   StatET ( Eclipse )
    ●   ESS(emacs)
Summary
   R を使ったら
    ●   本当に統計的な計算に向いている。他の言語に比べて。
        –   例:発表者の以前作ったシェルスクリプト(ヒストグラム出
            すまで)
        –   gnuplot を使ったが 226 行。
        –   R なら hist( データセット ) で終わり。
        –   早いし楽。
    ●   オブジェクトサイズ 2GB までという制限があり、巨大なデータ
        セットには不向き。
    ●   オブジェクト指向的要素、パフォーマンス、並列 R などはご興
        味ありましたら各自で。
    ●   グラフィックスは4章(次回)。
統計に向いてる
のは本当です。
使いましょう。
ご清聴ありがとう
ございました。
余談
なぜ私の
 CentOS6.3 には
  EPEL 経由で
yum インストール
  できんのだ。




    ※ ライブラリのバージョンが
    合わない・・・
バカじゃないの!
ソースコードから
  ビルドすれば
いいだけじゃん!
  そんなことも
 できないんなら
  仕事やめなよ
  HAHAHA !
※R は OSS です。ソースコードはこち
ら。
http://cran.md.tsukuba.ac.jp/src
CentOS6.3 のビルドツールチェインなら、特に苦労なくすんなり入った。

Contenu connexe

Tendances

Material
MaterialMaterial
Material_TUNE_
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーるSachiko Hirata
 
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016統計環境R_データ入出力編2016
統計環境R_データ入出力編2016wada, kazumi
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門Hideyuki Tanaka
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツShuyo Nakatani
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)Takumi Asai
 
第3回Rを使って統計分析を勉強する会
第3回Rを使って統計分析を勉強する会第3回Rを使って統計分析を勉強する会
第3回Rを使って統計分析を勉強する会Nobuto Inoguchi
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Ra Zon
 
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編wada, kazumi
 
テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式digitalghost
 
Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩wada, kazumi
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)parrotstudio
 
やさしく知りたいC言語
やさしく知りたいC言語やさしく知りたいC言語
やさしく知りたいC言語uru nru
 
Pythonデータ分析 第4回勉強会資料 12章
Pythonデータ分析 第4回勉強会資料 12章Pythonデータ分析 第4回勉強会資料 12章
Pythonデータ分析 第4回勉強会資料 12章Makoto Kawano
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
Python基礎その1
Python基礎その1Python基礎その1
Python基礎その1大貴 末廣
 

Tendances (20)

Material
MaterialMaterial
Material
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーる
 
統計環境R_データ入出力編2016
統計環境R_データ入出力編2016統計環境R_データ入出力編2016
統計環境R_データ入出力編2016
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)
 
第3回Rを使って統計分析を勉強する会
第3回Rを使って統計分析を勉強する会第3回Rを使って統計分析を勉強する会
第3回Rを使って統計分析を勉強する会
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
 
C言語講習会2
C言語講習会2C言語講習会2
C言語講習会2
 
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編
 
テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式
 
Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩Rプログラミング01 はじめの一歩
Rプログラミング01 はじめの一歩
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
 
やさしく知りたいC言語
やさしく知りたいC言語やさしく知りたいC言語
やさしく知りたいC言語
 
Ruby講座一回目
Ruby講座一回目Ruby講座一回目
Ruby講座一回目
 
Ruby講座一回目
Ruby講座一回目Ruby講座一回目
Ruby講座一回目
 
Pythonデータ分析 第4回勉強会資料 12章
Pythonデータ分析 第4回勉強会資料 12章Pythonデータ分析 第4回勉強会資料 12章
Pythonデータ分析 第4回勉強会資料 12章
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
Python基礎その1
Python基礎その1Python基礎その1
Python基礎その1
 

Similaire à 第一回Data mining勉強会 -第二章 - 原案

10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門Yuichiro Kobayashi
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)Masahiro Hayashi
 
知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能Soudai Sone
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるHideyuki Tanaka
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)Shoji Haraguchi
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編) daiki hojo
 
Tokyo.R #19 発表資料 「Rで色々やってみました」
Tokyo.R #19 発表資料 「Rで色々やってみました」Tokyo.R #19 発表資料 「Rで色々やってみました」
Tokyo.R #19 発表資料 「Rで色々やってみました」Masayuki Isobe
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南Mikiya Okuno
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 JubatusハンズオンYuya Unno
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 JubatusハンズオンJubatusOfficial
 

Similaire à 第一回Data mining勉強会 -第二章 - 原案 (20)

はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
Rでreproducible research
Rでreproducible researchRでreproducible research
Rでreproducible research
 
知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編)
 
Tokyo.R #19 発表資料 「Rで色々やってみました」
Tokyo.R #19 発表資料 「Rで色々やってみました」Tokyo.R #19 発表資料 「Rで色々やってみました」
Tokyo.R #19 発表資料 「Rで色々やってみました」
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
 

Dernier

My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrRodolfFernandez1
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 

Dernier (20)

My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhrKARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 

第一回Data mining勉強会 -第二章 - 原案

  • 1. 第一回 DataMining 勉強会 2013/1/10 第二章 R による基本統計量の計算
  • 2. 自己紹介  About Me ● Twitter @yushin_hirano 。 ● 最近 Hadoop に関われなくて不満。 ● 1/4 まで引っ越し残作業その他で勉強してなかった。 ● 発表の前日と当日朝4時までこの資料を作ってた。 ● いろいろヒドイ無計画なエンジニア。
  • 3. Contents ● R による平均と分散の計算 ● 平均と分散 ● R を使った計算 ● R を始めるための弾丸ツアー ● インストール ● 起動 - インタラクティブモードとバッチモード ● 演算子、制御構造 ● 変数と型 ● データソース ● デモ ● ヘルプ ● その他 ● n 進数→略(さすがに大丈夫でしょう)
  • 6. Of Course Yes !
  • 7. 超基本統計 省略 平均と分散 ~完~
  • 9. では、 R を使って 計算するんだ。
  • 10. R を使った平均と分散 > x1 <- c( 118, 119, 121, 122, 170 ) > x2 <- c(128,129,130,131,132) > mean(x1) > var(x2)
  • 13. R の導入 R を「始める」にあたって、 「覚えておいた方がよいこと」 「便利なこと」を中心に記述。 (詳しい利用ケースなどは、 後の回に出てくるでしょう。期待。)
  • 14. R とは  R 言語 ● 統計・分析・グラフィックスに優れたスクリプト言語。 ● AT&T が開発した統計言語 S からアイデアを得た、 OSS での実 装。 ● Windows 、 Mac 、 Linux 、 Unix 版など、様々な OS で動作。 ● オブジェクト指向、関数型言語の特徴を持つ。  しかし ● R 一文字って Google で検索し辛い。 ● 検索結果が専門的すぎて素人お断り。
  • 16. 何言ってんの プログラミングとか するわけないよ 所詮 PC オタクが するもんだよ オタクは帰れ帰れ!
  • 17. そこのお前。 Windows の電卓と EXCEL だけで 1000 万レコード 計算してみろ。
  • 19. R のインストール  CRAN ( Comprehensive R Archive Network )で提供されている。  For Windows ● http://www.r-project.org/ ● プロジェクトページ =>CRAN から適当に探して Windows 向け のインストーラを取得。とりあえず base パッケージをどうぞ。  For Linux ● 同じくプロジェクトページの CRAN から。 ● Redhat 系、 Debian 系、 SUSELinux 、 ubuntu 向けにパッケー ジが公開されている。
  • 20. R の起動  二つのモードがある。  インタラクティブモード ● 一つ一つコマンドを打ち込んでその結果を確認しつつ動作させ るもの。 ● つまりはインタプリタ。 ● デフォルトのモード。普通に起動するとこちらで動作する。  バッチモード ● あらかじめ R のコマンドを記述したスクリプトファイルを用意 し、それらを一括して起動させるモード。 ● コマンドラインから $ R CMD BATCH 「スクリプトファイル」 で実行。
  • 21. 演算子と制御構造①  演算子 ● 一般的なスクリプト言語、オブジェクト指向言語にある基本的 なものはほとんど存在。 ● + 、 - 、 * 、 / 、 ^ 、 < 、 > 、 == 、 != 、 && 、 || 、 ! 、など。 ● 中々見ない記法のものは以下。 – %/% :整数除算 – %% : mod( 剰余 ) – <- :代入演算子
  • 22. R の演算子と制御構造②  制御構造 ● 一般的なスクリプト言語にある制御構造はやっぱり大体ある。 ● for 、 while 、 if 、など。 ● for はベクトル等を対象にすると便利な使い方が可能。 – といっても、最近の言語じゃこの程度当たり前か・・・ > for (n in Nile) print(n * 2)
  • 23. R の変数と型①  変数 ● 一般的な変数と同様。 ● 宣言不要。 ● 静的型付けではない。 ● 同じ変数に別の型のデータを何度も入れ替えできる。 ● 代入には【 <- 】演算子を使う。 = も効くが特殊なケースでうま く動かないことがあるらしい。 > n <- c(1,3,5,9) > m <- c(10,5,5,8)
  • 24. R の変数と型②  変数の参照 ● 変数名打って ENTER 叩くだけ。 ● print( 変数名 ) ● attributes( 変数名 ) ● 変数名 $ 要素名 ( => 後述) >n >m > print(n) > print(m)
  • 25. R の変数と型③  ベクトル型 ● 同じ型のデータセット。 ● c( 要素 1, 要素 2, ...) で生成できる。 ● x[ インデックス番号 ] で参照できる。 ● インデックスは1から始まる。 ● 長さは length(x) で参照 > vec <- c(100,110,120,120,130) > vec > vec[2] > vec[2:4]
  • 26. R の変数と型④  文字、数字、ブール、文字列型 ● 文字や数字は特に苦労なし。 ● ブール値は「 TRUE 」、「 FALSE 」。 T 、 F で省略可能。 ● 文字列型はダブルクォーティングで生成する。 ● 文字列型は文字型のベクトルとなっている。 – というよりも、単なる文字型すら要素1の文字ベクトル。 – これは数値も同様で、単独の値は要素1のベクトル。 > str1 <- “teststr” > str1
  • 27. R の変数と型⑤  行列型 ● 数学でいう n×m 行列。 ● c( 要素 1, 要素 2, ...) で生成できる。 ● 全要素が同じ型である。 ● rbind (行結合)、 cbind (列結合)で、ベクトルを結合して作 る。 ● インデックス二つで要素を指定する他、行のみ、列のみの指定 が可能。 > mtx1 <- rbind(c(1,5,6),c(2,6,7)) > mtx2 <- cbind(c(1,5,6),c(2,6,7)) > mtx1 > mtx2 > mtx1[1,2] > mtx1[,2] > mtx1[2,]
  • 28. R の変数と型⑥  リスト型 ● データ構造に出てくるいわゆる [ リスト ] とは無関係。 ● 異なる型の値を複数保持できるもの。 ● C 言語の構造体に近い。 ● list() で作る。 ● list の各要素にアクセスするには、 ● 変数名 $ 要素名(スペース等開けない) > l1 <- list(unit=2, val="str") > l1 > l1$unit
  • 29. R の変数と型⑦  データフレーム型 ● 一言で行ってしまえば、 RDB のテーブルみたいなもの。 ● 各カラムそれぞれ異なる型を持てる行列。 ● 実際の中身としては、各要素が行列であるリスト、ということ になっている。 ● data.frame() で作成。 ● 基本的には、このように作るよりも、 RDB やファイルなどから Import する。 > df <- data.frame(list(uid=c("0001","0002","0003"),time=c(10,20,40))) > df > df$time > df[,1]
  • 30. R の変数と型⑧  変数出力、型調査など。 ● print ● attributes() ● class() ● str() :オブジェクト構造を出力  関数定義  クラス作成 ● 宿題。 ● 関数自作の際、 return を省略すると最後の式の戻り値がそのま ま return される。(ここだけチェックした・・・)
  • 31. R のデータソース  Input ● RDB からデータ Input→ データフレームを作成 ● ファイルからデータ Input→ データフレームを作成 ● 量が大きくなればこの2パターンが主 > res <- read.table("exam_result",header=TRUE) > res > res$math > mean(res$math)
  • 34. R デモ  デモデータ ● R にはあらかじめデモデータが備わっています。 ● data() で参照してみましょう。
  • 35. 平均と分散、その他統計  デモデータを使った平均、分散、など ● mean(Orange$age) ● var(Orange$age) ● sd(Orange$age) ● mean(Nile) ● max(Nile) ● sum(Nile)  グラフ化(グラフィックスは次回の講義) ● hist(Orange$age)
  • 37. ヘルプ  何が出てきても調べられるように、ヘルプ の参照をチェック。 ● help( 関数名 ) 、 ?” 関数名” ● help.search(“ キーワード” ) 、 ??” キーワード”→検索が走る。 ● help(package= パッケージ名 ) で、パッケージマニュアル。 ● example( 関数名 ) で、各関数の使用例とデモが出力される。 ● example(lm) (線形モデル例) ● Google ではヒットさせ辛い。 R 言語専門の検索サイトなどを使 うのも手。 SeekR など。 http://seekr.jp/
  • 38. その他  IDE ● 通常はコマンドラインで利用する。 ● しかし IDE( 統合開発環境 ) も存在する。 ● RStudio – http://d.hatena.ne.jp/hiratake55/20120527/1338091311 ● StatET ( Eclipse ) ● ESS(emacs)
  • 39. Summary  R を使ったら ● 本当に統計的な計算に向いている。他の言語に比べて。 – 例:発表者の以前作ったシェルスクリプト(ヒストグラム出 すまで) – gnuplot を使ったが 226 行。 – R なら hist( データセット ) で終わり。 – 早いし楽。 ● オブジェクトサイズ 2GB までという制限があり、巨大なデータ セットには不向き。 ● オブジェクト指向的要素、パフォーマンス、並列 R などはご興 味ありましたら各自で。 ● グラフィックスは4章(次回)。
  • 43. なぜ私の CentOS6.3 には EPEL 経由で yum インストール できんのだ。 ※ ライブラリのバージョンが 合わない・・・
  • 44. バカじゃないの! ソースコードから ビルドすれば いいだけじゃん! そんなことも できないんなら 仕事やめなよ HAHAHA !
  • 45. ※R は OSS です。ソースコードはこち ら。 http://cran.md.tsukuba.ac.jp/src CentOS6.3 のビルドツールチェインなら、特に苦労なくすんなり入った。