SlideShare a Scribd company logo
1 of 10

                                     Think	
  Stats
             -Probability	
  and	
  Statistics	
  for	
  Programmers-


                     プログラマのための統計⼊入⾨門
             第1章  プログラマのための統計的な考え⽅方


                                            Be	
  a	
  pythonista!!!



                                                @millionsmile
    4th	
  of	
  Oct,	
  2012,	
  集合知プログラミング勉強会LT





                                                                                   2
Pythonの実⾏行行環境を準備する
 Pythonのインストール(まだ2.x系をインストールがよさげ)
 http://www.python.org/download/

 環境設定いろいろ
 http://www.pythonweb.jp/install/

 シェルの⽤用意。IPythonオススメ
 http://ipython.org/download.html

 テキストエディタの⽤用意。Sublime	
  Text	
  2がちょーオススメ
 http://www.sublimetext.com/2
 ※テキストエディタ戦争には巻き込まれたくはないので基本的にはお好みのエディタをご利⽤用ください。
 ※PEP8とか適宜プラグインやパッケージを設定する必要があります。
 ※PythonTidyとPython、IPython	
  Integrationあたりがオススメ	
  by	
  @kenchan0312_aki





                                                                3
統計的なアプローチ
 個⼈人的な経験に基づくデータのことを事例証拠(anecdotal	
  
 evidence)といい、往々にして、少なすぎる標本数(small	
  
 number	
  of	
  observations)、選択バイアス(selection	
  bias)、
 確証バイアス(confirmation	
  bias)、不正確さ(inaccuracy)と
 いった問題を持っている。

 事例証拠の問題を解消するために「統計」という道具を使いこな
 し、より正当でより正確な結論を出すことができる。統計には以
 下のようなものが含まれる。
 データ収集(data	
  collection)、記述統計学(descriptive	
  
 statistics)、探索的データ解析(exploratory	
  data	
  analysis)、
 仮説検定(hypothesis	
  testing)、推定(estimation)





                                                     4
調査データ
 調査には2種類あり、ある時点における集団のスナップショットを
 観察する横断的調査(cross-sectional	
  study)と、⻑⾧長期的に集団
 を繰り返し観察する縦断的調査(longitudinal	
  study)がある。

 調査したい対象の全体のことを⺟母集団(population)という。

 調査対象の⼈人たちは回答者(respondents)、回答者の集団はコ
 ホート(cohort)と呼ぶ。

 横断的調査は代表的(representative)である必要がある。⺟母集団
 のどの要素も調査となる機会が均等であることを意味する。

 意図的にオーバーサンプリング(oversampling)して統計上有効
 な推計を導き出すこともあるが、⽋欠点もあるので注意が必要。





                                                                                        5
pythonを書いてみる
 サイコロを振って数字を出⼒力力するクラス(データ型)を作る
 [import	
  モジュール名]機能のかたまりをモジュールといい、シェルをたちあげたときはモジュールはほとんどないので、importを
 使って必要なモジュールを読み込む。ここではrandomという乱数を発⽣生させるモジュールを読み込んでいる。
 [class	
  新しいデータ型の名前:]classはデータ型を設計(定義)するときに使う。データ型というのはデータ属性(アトリビュート)
 と関数(メソッド)の集まりである。何か⼀一つのプログラムをまとめて作りたい時にclassでまとめておくと便利である。最後に「:」
 を必ずつける
 [def	
  関数名(引数):]defは⾃自分で関数を定義したいときに使う。既存の関数としては例えばデータを出⼒力力するprintや⻑⾧長さを測るlen
 などがある。(引数)は必ず何か⼊入⼒力力しないとエラーになるので、引数がない場合は、⾃自分⾃自⾝身を参照する意味の self を書く。	
  最後
 に「:」を必ずつける
 [データ属性]データ属性とはあるデータ型(class)に属している専⽤用の変数のこと。あるデータ型(class)の中で、2つのdefで定義
 した関数間で変数の値をやりとりしたい場合、先頭にself.データ属性と定義しておかないと、データの引渡しに失敗するので注意が
 必要。
 [関数.メソッド()]関数にはデータを処理するための様々な道具が⽤用意されており、それらをメソッドと呼ぶ。randomという関数に
 は指定された範囲内の数値を発⾏行行するrandint(開始の数字,終了の数字)があり、random.randint(1,	
  6)とすれば、1~6の間でランダ
 ムに値を発⾏行行するという指定をすることができる。
 [__init__]初期値を設定を⾏行行う。


 コードは「dice.py」で保存する





                                                               6
書いたコードを実⾏行行する
 前⾴頁で保存したdice.pyのディレクトリーを指定して実⾏行行処理を⾏行行
 う
             前⾴頁で保存したdice.pyを読み込む

              dice.pyのDiceクラスに5という引数を渡す

              shootメソッドを実⾏行行すると、1~5の間でランダムに値を発⾏行行する

              shootメソッドを実⾏行行すると、1~5の間でランダムに値を発⾏行行する


              初期(__init__)では引数5が読み込まれ、変数face_numに値が設定された





                                                     7
サンプルデータをダウンロード
 サイトにアクセス。 I	
  accept	
  these	
  terms をクリック
 http://greenteapress.com/thinkstats/nsfg.html

 以下のファイルをダウンロード
 2002FemPreg.dat.gz
 →回答者ファイル(⼥女女性回答者7643⼈人分。1⾏行行1⼈人のデータ)
 2002FemResp.dat.gz
 →回答者から報告のあった妊娠のデータが1⾏行行ごとに記録

 ダウンロードしたファイルはローカルの任意のフォルダーにおい
 てください。





                                                     8
サンプルコードの実⾏行行
 サンプルコードをダウンロード
 http://greenteapress.com/thinkstats/survey.py

 サンプルコードを前⾴頁のサンプルデータと同じディレクトリに保存

 シェルで実⾏行行、もしくはSublime	
  Text	
  2でbuildすると
 Number	
  of	
  respondents	
  7643
 Number	
  of	
  pregnancies	
  13593
 と出⼒力力される。





                                        9
あとは各⾃自で
 あとはテキストみながらやってみて、サンプルコード眺めて、
 Pythonを習得してみてください。

 第2章では、pythonで算術平均、分散、標準偏差、ヒストグラム
 などの記述統計学をやっていきます。





                                                                10
初⼼心者に嬉しい本とかサイト
 『Python	
  スタートブック』辻慎吾著、技術評論社

 『初めてのPython』Mark	
  Lutz著、オライリー・ジャパン

 『⼊入⾨門  ⾃自然⾔言語処理』Steven	
  Bird	
  et.al著、オライリー・
 ジャパン

 PEP8の⽇日本語訳サイト
 http://oldriver.org/python/pep-0008j.html

 集合知プログラミング解体新書
 https://sites.google.com/site/prgclctintelligence/errata

More Related Content

Viewers also liked

Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析Hiroko Onari
 
Data scientist casual talk in 白金台
Data scientist casual talk in 白金台Data scientist casual talk in 白金台
Data scientist casual talk in 白金台Hiroko Onari
 
Uplift Modelling 入門(1)
Uplift Modelling 入門(1)Uplift Modelling 入門(1)
Uplift Modelling 入門(1)Yohei Sato
 
Suicide ideation of individuals in online social networks tokyo webmining
Suicide ideation of individuals in online social networks tokyo webminingSuicide ideation of individuals in online social networks tokyo webmining
Suicide ideation of individuals in online social networks tokyo webminingHiroko Onari
 
20161122_How to start Recruiting Engineers_mercari_ishiguro
20161122_How to start Recruiting Engineers_mercari_ishiguro20161122_How to start Recruiting Engineers_mercari_ishiguro
20161122_How to start Recruiting Engineers_mercari_ishiguroTakaya Ishiguro
 
04 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r00104 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r001cyberblack28 Ichikawa
 
傾向スコアの概念とその実践
傾向スコアの概念とその実践傾向スコアの概念とその実践
傾向スコアの概念とその実践Yasuyuki Okumura
 
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話Kazuto Kusama
 
省エネルギーのための自動制御と人工知能
省エネルギーのための自動制御と人工知能省エネルギーのための自動制御と人工知能
省エネルギーのための自動制御と人工知能Masaaki Nagahara
 
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -Yohei Sato
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装takehikoihayashi
 
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business Tokoroten Nakayama
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumiTokoroten Nakayama
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016Tokoroten Nakayama
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
64ヶ月オンプレ運用したシステムを aws移行した話
64ヶ月オンプレ運用したシステムを aws移行した話64ヶ月オンプレ運用したシステムを aws移行した話
64ヶ月オンプレ運用したシステムを aws移行した話Ryota Kuroki
 
フォントの選び方・使い方
フォントの選び方・使い方フォントの選び方・使い方
フォントの選び方・使い方k maztani
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返りSotaro Kimura
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことTerui Masashi
 

Viewers also liked (20)

Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析Rでソーシャルネットワーク分析
Rでソーシャルネットワーク分析
 
Data scientist casual talk in 白金台
Data scientist casual talk in 白金台Data scientist casual talk in 白金台
Data scientist casual talk in 白金台
 
Uplift Modelling 入門(1)
Uplift Modelling 入門(1)Uplift Modelling 入門(1)
Uplift Modelling 入門(1)
 
Suicide ideation of individuals in online social networks tokyo webmining
Suicide ideation of individuals in online social networks tokyo webminingSuicide ideation of individuals in online social networks tokyo webmining
Suicide ideation of individuals in online social networks tokyo webmining
 
20161122_How to start Recruiting Engineers_mercari_ishiguro
20161122_How to start Recruiting Engineers_mercari_ishiguro20161122_How to start Recruiting Engineers_mercari_ishiguro
20161122_How to start Recruiting Engineers_mercari_ishiguro
 
04 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r00104 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r001
 
傾向スコアの概念とその実践
傾向スコアの概念とその実践傾向スコアの概念とその実践
傾向スコアの概念とその実践
 
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
 
省エネルギーのための自動制御と人工知能
省エネルギーのための自動制御と人工知能省エネルギーのための自動制御と人工知能
省エネルギーのための自動制御と人工知能
 
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
Rで学ぶ 傾向スコア解析入門 - 無作為割り当てが出来ない時の因果効果推定 -
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
 
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
ヒューレットパッカード社の 社員の離職リスク予測 第一回機械学習ビジネス研究会 #ml_business
 
What is Serverless?
What is Serverless?What is Serverless?
What is Serverless?
 
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi失敗から学ぶデータ分析グループのチームマネジメント変遷 (デブサミ2016) #devsumi
失敗から学ぶ データ分析グループの チームマネジメント変遷 (デブサミ2016) #devsumi
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
64ヶ月オンプレ運用したシステムを aws移行した話
64ヶ月オンプレ運用したシステムを aws移行した話64ヶ月オンプレ運用したシステムを aws移行した話
64ヶ月オンプレ運用したシステムを aws移行した話
 
フォントの選び方・使い方
フォントの選び方・使い方フォントの選び方・使い方
フォントの選び方・使い方
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
 

Recently uploaded

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 

Recently uploaded (7)

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 

Think stats 1章プログラマのための統計的な考え方 20121004

  • 1. Think  Stats -Probability  and  Statistics  for  Programmers- プログラマのための統計⼊入⾨門 第1章  プログラマのための統計的な考え⽅方 Be  a  pythonista!!! @millionsmile 4th  of  Oct,  2012,  集合知プログラミング勉強会LT
  • 2. 2 Pythonの実⾏行行環境を準備する Pythonのインストール(まだ2.x系をインストールがよさげ) http://www.python.org/download/ 環境設定いろいろ http://www.pythonweb.jp/install/ シェルの⽤用意。IPythonオススメ http://ipython.org/download.html テキストエディタの⽤用意。Sublime  Text  2がちょーオススメ http://www.sublimetext.com/2 ※テキストエディタ戦争には巻き込まれたくはないので基本的にはお好みのエディタをご利⽤用ください。 ※PEP8とか適宜プラグインやパッケージを設定する必要があります。 ※PythonTidyとPython、IPython  Integrationあたりがオススメ  by  @kenchan0312_aki
  • 3. 3 統計的なアプローチ 個⼈人的な経験に基づくデータのことを事例証拠(anecdotal   evidence)といい、往々にして、少なすぎる標本数(small   number  of  observations)、選択バイアス(selection  bias)、 確証バイアス(confirmation  bias)、不正確さ(inaccuracy)と いった問題を持っている。 事例証拠の問題を解消するために「統計」という道具を使いこな し、より正当でより正確な結論を出すことができる。統計には以 下のようなものが含まれる。 データ収集(data  collection)、記述統計学(descriptive   statistics)、探索的データ解析(exploratory  data  analysis)、 仮説検定(hypothesis  testing)、推定(estimation)
  • 4. 4 調査データ 調査には2種類あり、ある時点における集団のスナップショットを 観察する横断的調査(cross-sectional  study)と、⻑⾧長期的に集団 を繰り返し観察する縦断的調査(longitudinal  study)がある。 調査したい対象の全体のことを⺟母集団(population)という。 調査対象の⼈人たちは回答者(respondents)、回答者の集団はコ ホート(cohort)と呼ぶ。 横断的調査は代表的(representative)である必要がある。⺟母集団 のどの要素も調査となる機会が均等であることを意味する。 意図的にオーバーサンプリング(oversampling)して統計上有効 な推計を導き出すこともあるが、⽋欠点もあるので注意が必要。
  • 5. 5 pythonを書いてみる サイコロを振って数字を出⼒力力するクラス(データ型)を作る [import  モジュール名]機能のかたまりをモジュールといい、シェルをたちあげたときはモジュールはほとんどないので、importを 使って必要なモジュールを読み込む。ここではrandomという乱数を発⽣生させるモジュールを読み込んでいる。 [class  新しいデータ型の名前:]classはデータ型を設計(定義)するときに使う。データ型というのはデータ属性(アトリビュート) と関数(メソッド)の集まりである。何か⼀一つのプログラムをまとめて作りたい時にclassでまとめておくと便利である。最後に「:」 を必ずつける [def  関数名(引数):]defは⾃自分で関数を定義したいときに使う。既存の関数としては例えばデータを出⼒力力するprintや⻑⾧長さを測るlen などがある。(引数)は必ず何か⼊入⼒力力しないとエラーになるので、引数がない場合は、⾃自分⾃自⾝身を参照する意味の self を書く。  最後 に「:」を必ずつける [データ属性]データ属性とはあるデータ型(class)に属している専⽤用の変数のこと。あるデータ型(class)の中で、2つのdefで定義 した関数間で変数の値をやりとりしたい場合、先頭にself.データ属性と定義しておかないと、データの引渡しに失敗するので注意が 必要。 [関数.メソッド()]関数にはデータを処理するための様々な道具が⽤用意されており、それらをメソッドと呼ぶ。randomという関数に は指定された範囲内の数値を発⾏行行するrandint(開始の数字,終了の数字)があり、random.randint(1,  6)とすれば、1~6の間でランダ ムに値を発⾏行行するという指定をすることができる。 [__init__]初期値を設定を⾏行行う。 コードは「dice.py」で保存する
  • 6. 6 書いたコードを実⾏行行する 前⾴頁で保存したdice.pyのディレクトリーを指定して実⾏行行処理を⾏行行 う 前⾴頁で保存したdice.pyを読み込む dice.pyのDiceクラスに5という引数を渡す shootメソッドを実⾏行行すると、1~5の間でランダムに値を発⾏行行する shootメソッドを実⾏行行すると、1~5の間でランダムに値を発⾏行行する 初期(__init__)では引数5が読み込まれ、変数face_numに値が設定された
  • 7. 7 サンプルデータをダウンロード サイトにアクセス。 I  accept  these  terms をクリック http://greenteapress.com/thinkstats/nsfg.html 以下のファイルをダウンロード 2002FemPreg.dat.gz →回答者ファイル(⼥女女性回答者7643⼈人分。1⾏行行1⼈人のデータ) 2002FemResp.dat.gz →回答者から報告のあった妊娠のデータが1⾏行行ごとに記録 ダウンロードしたファイルはローカルの任意のフォルダーにおい てください。
  • 8. 8 サンプルコードの実⾏行行 サンプルコードをダウンロード http://greenteapress.com/thinkstats/survey.py サンプルコードを前⾴頁のサンプルデータと同じディレクトリに保存 シェルで実⾏行行、もしくはSublime  Text  2でbuildすると Number  of  respondents  7643 Number  of  pregnancies  13593 と出⼒力力される。
  • 9. 9 あとは各⾃自で あとはテキストみながらやってみて、サンプルコード眺めて、 Pythonを習得してみてください。 第2章では、pythonで算術平均、分散、標準偏差、ヒストグラム などの記述統計学をやっていきます。
  • 10. 10 初⼼心者に嬉しい本とかサイト 『Python  スタートブック』辻慎吾著、技術評論社 『初めてのPython』Mark  Lutz著、オライリー・ジャパン 『⼊入⾨門  ⾃自然⾔言語処理』Steven  Bird  et.al著、オライリー・ ジャパン PEP8の⽇日本語訳サイト http://oldriver.org/python/pep-0008j.html 集合知プログラミング解体新書 https://sites.google.com/site/prgclctintelligence/errata