Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Python 機械学習プログラミング データ分析演習編

19 115 vues

Publié le

この資料では、Pythonのデータ分析ライブラリーである「pandas」を使う練習を目的として、データ分析の初歩的な内容を解説しています。

2015/11/25 ver1.0 公開
2015/12/11 ver1.1 仮説検定の説明を分かりやすく修正
2016/11/15 ver2.0 改訂版公開、scikit-learnの利用例を追加
2017/06/11 ver2.1 仮説検定パートを削除、sklearnの利用例をアップデート

Publié dans : Sciences
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THAT BOOKS/FILE INTO AVAILABLE FORMAT - (Unlimited) ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes Christian, Classics, Comics, Contemporary, Cookbooks, Art, Biography, Business, Chick Lit, Children's, Manga, Memoir, Music, Science, Science Fiction, Self Help, History, Horror, Humor And Comedy, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Python 機械学習プログラミング データ分析演習編

  1. 1. Machine Learning for Everyone Else Python 機械学習プログラミング データ分析演習編 Ver2.1 2017/06/11 中井悦司 (Twitter @enakai00)
  2. 2. 2 Python 機械学習プログラミング 目次 ■ ハンズオン環境の利用方法 ■ 分析データの取り込みと確認 ■ 分析データの可視化 ■ scikit-learnによる機械学習処理
  3. 3. 3 Python 機械学習プログラミング ハンズオン環境の利用方法
  4. 4. 4 Python 機械学習プログラミング ハンズオン環境の利用方法 ■ 本講義のハンズオン環境は、クラウド上の仮想マシンで用意してあります。下 記のBlog記事の手順にしたがって、同じ環境を自分で用意することもできま す。 - Jupyter演習環境の準備手順 - http://enakai00.hatenablog.com/entry/2016/11/18/134724
  5. 5. 5 Python 機械学習プログラミング ハンズオン環境の利用方法 ■ 指定のURLにアクセスするとパスワード入力画面が表示されるので、指定のロ グインパスワードを入力します。 ■ ログインすると「ノートブックファイル」の一覧画面が表示されますが、今は まだノートブックファイルはありません。
  6. 6. 6 Python 機械学習プログラミング ハンズオン環境の利用方法 ■ 右上のプルダウンメニューから「New」→「Python 2」を選択すると新しい ノートブックが開きます。 ■ タイトル部分をクリックすると、新しいタイトルが設定できます。「<タイト ル>.ipynb」が対応するファイル名になります。(タイトルには日本語は使え ません。)
  7. 7. 7 Python 機械学習プログラミング ハンズオン環境の利用方法 ■ ノートブック上では、セルにプログラムコードを入力して、「▶」ボタン、も しくは [Ctrl] + [Enter] で実行すると結果が表示されます。 ■ マークダウン形式のセルには説明文を記載することができます。 セルの形式を選択 マークダウン形式のセル コード形式のセル 変数に値を設定 変数の値を表示
  8. 8. 8 Python 機械学習プログラミング ハンズオン環境の利用方法 ■ ノートブック全体を最初から実行し直す場合は、メニューから「Kernel」→ 「Restart & Clear Output」を選択して、これまでの実行内容をクリアしま す。
  9. 9. 9 Python 機械学習プログラミング ハンズオン環境の利用方法 ■ 空のセルで次のコマンドを実行すると、演習用のノートブックがダウンロード できます。 - ノートブックファイル一覧画面で下記のノートブックを開きます。 「jupyter_ml4se_commentary」⇒「Solutions」⇒「Titanic Example.ipynb」 !git clone https://github.com/enakai00/jupyter_ml4se_commentary
  10. 10. 10 Python 機械学習プログラミング 分析データの取り込みと確認
  11. 11. 11 Python 機械学習プログラミング データの取り込み ■ Webで公開されているcsvデータをpandasのデータフレームに取り込みます。 - 取り込んだデータの説明は下記に記載されています。 ● http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3info.txt - 数値自体に意味のないデータが数値で表現されている場合、誤った(意味のない)統計量を計算 しないように、データ型を文字列型に変換しておきます。いまの場合、「pclass(社会的地 位)」は数値で表現されていますが、この値の「平均値」を取っても特に意味はありません。 In [1]: import numpy as np import matplotlib.pyplot as plt import pandas as pd from pandas import Series, DataFrame In [2]: data = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.csv') data['pclass'] = data['pclass'].map(str) # pclassの型を文字列型に変換 VARIABLE DESCRIPTIONS: pclass Passenger Class (1 = 1st; 2 = 2nd; 3 = 3rd) survived Survival (0 = No; 1 = Yes) name Name sex Sex age Age sibsp Number of Siblings/Spouses Aboard parch Number of Parents/Children Aboard ticket Ticket Number fare Passenger Fare cabin Cabin embarked Port of Embarkation (C = Cherbourg; Q = Queenstown; S = Southampton) boat Lifeboat body Body Identification Number home.dest Home/Destination タイタニック号の乗船名簿の情報に、 沈没による死亡情報を加えたものです。
  12. 12. 12 Python 機械学習プログラミング データの全体感の把握 ■ 取り込んだデータの全体像を眺めて特徴を把握します。 - 今回使用するデータはそれほど大きくない(全部で1309件)ので、まずはスプレッドシートで 開いて、どのようなデータか眺めておきます。 - 項目によっては欠損値(データが埋まっていないセル)が多いなどのデータセットとしての特 徴、あるいは、「1歳未満の乳児が乗船している」などの社会的観点での特徴が見えてきます。
  13. 13. 13 Python 機械学習プログラミング データのサマリー情報の確認 ■ 項目ごとのデータ数や平均値など、標準的な統計量を確認しておきます。 - 項目によってデータ数(count)が異なるのは、欠損値が存在するためです。 - 欠損値の影響で、パーセンタイルがうまく計算できていない部分があります。これらの項目は、 次ページのように、欠損値を削除して計算します。 In [3]: data.columns Out[3]: Index([u'pclass', u'survived', u'name', u'sex', u'age', u'sibsp', u'parch', u'ticket', u'fare', u'cabin', u'embarked', u'boat', u'body', u'home.dest'], dtype='object') In [4]: data.describe() Out[4]:
  14. 14. 14 Python 機械学習プログラミング データのサマリー情報の確認 ■ dropna()メソッドで欠損値を含む行を削除した上で、統計情報を確認します。 - 平均値(mean)と中央値(50%)が乖離している場合、値の分布に歪み(skew)があると考え られます。 In [5]: data[['age']].dropna().describe() In [6]: data[['fare']].dropna().describe() In [7]: data[['body']].dropna().describe() 平均値と中央値が 乖離した例
  15. 15. 15 Python 機械学習プログラミング 分析データの可視化
  16. 16. 16 Python 機械学習プログラミング ■ 数値データはヒストグラムによって可視化します。 - 例として、年齢(age)と料金(fare)の分布をヒストグラムで確認します。 ● binsオプションには、区間の個数、もしくは、区間の区切りを並べたリストを与えます。 - 5歳未満の子供の分布、もしくは、200ポンド以上の高額料金の乗客などに分布の特徴が見られ ます。 数値データの可視化 In [8]: data[['age']].dropna().plot(kind='hist', bins=np.linspace(0,100,20+1)) In [9]: data[['fare']].dropna().plot(kind='hist', bins=20) グラフ化する際は、dropna()で 欠損値を削除しておきます。
  17. 17. 17 Python 機械学習プログラミング 数値データの相関の可視化 ■ 2つの数値データの関係性を見るときは、散布図で可視化します。 - 例として、年齢(age)と料金(fare)の関係を散布図で表示します。 In [10]: df = data[['age','fare']].dropna() df.plot(kind='scatter', x='age', y='fare') - 特に目立った関係はありませんが、200 ポンド以上の料金で乗船しているのは15 歳以上に限られるなどが確認できます。
  18. 18. 18 Python 機械学習プログラミング カテゴリーデータと数値データの相関の可視化 ■ カテゴリーデータと数値データの関係性を見るときは、箱ひげ図で可視化します。 - 例として、社会的地位(pclass)と料金(fare)の関係を箱ひげ図で表示します。 In [11]: df = data[['fare','pclass']].dropna() df.boxplot(column='fare', by='pclass') - 社会的地位が高い人(pclass:1)は 高額料金で乗船していることがわか ります。 外れ値 75パーセンタイル 50パーセンタイル (中央値) 25パーセンタイル
  19. 19. 19 Python 機械学習プログラミング 3つ以上のデータの相関の可視化 ■ 3つ以上のデータの関係を表示する場合は、データの種類に応じて適切な可視化方法を 選択する必要があります。 - たとえば、年齢(age)と料金(fare)の散布図を社会的地位(pclass)で色分けしてみます。 In [12]: df1 = data[data.pclass=='1'][['age','fare']].dropna() df2 = data[data.pclass=='2'][['age','fare']].dropna() df3 = data[data.pclass=='3'][['age','fare']].dropna() plt.scatter(df1.age, df1.fare, facecolor='blue') plt.scatter(df2.age, df2.fare, facecolor='green') plt.scatter(df3.age, df3.fare, facecolor='red')
  20. 20. 20 Python 機械学習プログラミング カテゴリーデータの相関 ■ カテゴリーデータの例として、性別(sex)と生存(survival)の相関を確認します。 - 2種類のカテゴリーデータの相関は、クロス集計表で確認します。 - この結果を見ると、性別によって生存率が大きく変わることが分かります。 - 同様の分析を社会的地位(pclass)と生存(survival)について行ってみてください。 - また、その他のデータについても自分なりの可視化を行って、特徴を発見してみてください。 In [13]: df = data[['sex','survived']].dropna() pd.crosstab(df.sex, df.survived) Out[13]: In [14]: pd.crosstab(data.sex ,data.survived).plot(kind='bar') In [15]: df.mean() Out[15]: Survived 0.381971 # 平均生存率 dtype: float64 In [16]: 339.0/(127+339) Out[16]: 0.7274678111587983 # 女性の生存率
  21. 21. 21 Python 機械学習プログラミング scikit-learnによる機械学習処理
  22. 22. 22 Python 機械学習プログラミング ロジスティック回帰 ■ 「性別」「年齢」の2つの特徴を用いたロジスティック回帰で、生存確率を予測するモ デルを構築します。 - この後の分析で使用するモジュールをインポートします。 - 欠損値を含む行を削除して、分析に使用する列のみを含むDataFrameを用意します。ここでは、 特徴変数 X_ とラベル y を個別にDataFrameとして作成しています。 - 性別はカテゴリーデータなので、One Hot Encodingに変換します。 In [20]: from PIL import Image from sklearn.model_selection import train_test_split, cross_val_score from sklearn.metrics import accuracy_score from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier, export_graphviz In [22]: X = pd.get_dummies(X_) X.head() In [21]: tmp = data[['age', 'sex', 'survived']].dropna() X_ = tmp[['age', 'sex']] y = tmp['survived'] X_.head()
  23. 23. 23 Python 機械学習プログラミング ロジスティック回帰 - データセットをトレーニングセットとテストセットに分割した後、トレーニングセットを用いて 学習処理を実行します。さらに、トレーニングセットとテストセットに対する正解率を計算しま す。 - クロスバリデーションを実施して、結果を表示します。 In [23]: X_train, X_val, y_train, y_val = train_test_split(X, y, train_size=0.8, random_state=1) clf = LogisticRegression() clf.fit(X_train, y_train) y_train_pred = clf.predict(X_train) y_val_pred = clf.predict(X_val) print 'Accuracy on Training Set: {:.3f}'.format(accuracy_score(y_train, y_train_pred)) print 'Accuracy on Validation Set: {:.3f}'.format(accuracy_score(y_val, y_val_pred)) Out[23]: Accuracy on Training Set: 0.775 Accuracy on Validation Set: 0.795 In [24]: clf = LogisticRegression() scores = cross_val_score(clf, X, y, cv=5) print 'Scores:', scores print 'Mean Score: {:f} ± {:.3}'.format(scores.mean(), scores.std()) Out[24]: Scores: [ 0.84761905 0.83333333 0.78947368 0.74641148 0.67788462] Mean Score: 0.778944 ± 0.0617
  24. 24. 24 Python 機械学習プログラミング 決定木(Decision Tree) ■ 決定木を用いて、先ほどと同じ分析を実施します。 - クロスバリデーションを実施して、結果を表示します。 - 決定木を画像化して表示します。 In [26]: clf = DecisionTreeClassifier(criterion='entropy', max_depth=2, min_samples_leaf=2) scores = cross_val_score(clf, X, y, cv=5) print 'Scores:', scores print 'Mean Score: {:f} ± {:.3}'.format(scores.mean(), scores.std()) Out [26]: Scores: [ 0.85714286 0.83809524 0.79425837 0.74641148 0.64423077] Mean Score: 0.776028 ± 0.0762 In [27]: clf.fit(X, y) export_graphviz(clf, out_file='tree.dot', feature_names=X.columns, class_names=['not survived', 'survived'], impurity=False, filled=True) !dot -Tpng tree.dot -o tree.png Image.open("tree.png") - 性別・年齢・社会的地位(pclass)を特徴量 として、同様の分析を行ってみてください ※ 特徴量を増やした場合は、決定木の階層をより深  くするとよい場合があります。
  25. 25. 25 Python 機械学習プログラミング メモとしてお使いください
  26. 26. Machine Learning for Everyone Else Thank You!

×