Process of Learning Data Science データサイエンスの学びについて

はじめて、データサイエンスを学ぶかたへのお勧め

予備的メモ

  1. グラフを考察し、メモを作成。(グラフに慣れる。良いグラフ、問題のあるグラフをたくさん見、自分でもグラフを作りたいと思えるようになることが必須。)
    • グラフが示すもの、グラフから読み取れることは何か。
    • グラフを構成するデータはどのようなものか。構造は。元のデータはどのように取得したものか。それぞれの項目の定義は。
    • 他にどのようなことをデータから読み取ることができるか。そのためには、どのようなグラフが適切か。
    • 関連して、どのようなことを知りたいか。そのためには、他にどのような関連する情報(データ)を取得し、どのようなグラフを作成するとよいか。
  2. データを取得し、形式を整える。記録を残す。
    • サイト、形式、取得方法。
    • 必要項目の洗い出し。
    • 変数(variables)を列に、値(observation)を決め、その型、欠損値などの処理
  3. グラフ作成。統計量を考察。再現性を確保し記録。
    • いくつかのグラフを作成し、データの特徴を考察する。
    • コミュニケーションすることを絞り、そのためのグラフを作成。
  4. 全体のプロセスのまとめ。
    • Reproducibility and Literate Programming としての記録を確認。
    • 全体を公開

[2020/3/28]

Data Science with Tidyverse - Tidyverse によるデータサイエンス

tidyverse Package を活用した、データサイエンスの流れ。R の Base でも、殆どすべての事は可能だが、論理的かつ高速に作業を進めるために、広く使われている、tidyverse Package による作業の流れを示す。

予備的メモ 

Tidyverse 参照。特に、Online で読むことができる、r4ds参照)、R Studio サイトにある、Cheatsheet は基本。

  1. Graphics(グラフィック)ggplot2: The Grammar of Graphics(グラフィックの文法)と呼ばれ、論理的にグラフを作成する。tidyverse Package を読み込むと同時に読み込まれ、全体の 核となる。
  2. Data Import(取得)readr: tidyverse Package を読み込むときに、同時に読み込まれる。他に、Excel シート読み込みの、readxl, SPSS, Stata, SAS 読み込みの、haven、Google Drive からの読み込みには、googledrive, JSON タイプのファイルのための jsonlite, XML のための xml2, web API のための httr, web scraping(web ページからの読み込み)の rvest、データベース連携のため DBI がある。データベースについて詳細は R Studio のページ 参照.
  3. Wrangle(整理)tidyr, dplyr: tidyverse Package を読み込むときに、同時に読み込まれる。他に、文字列処理の stringr, Factor を扱う forcats, 日付と時間を扱う lubridate, 日時の計算のための hms, blob (binary) データを扱う、blob がある。
  4. Program(プログラム)purr: tidyverse Package を読み込むときに、同時に読み込まれる。他に、pipe (%>%) を使えるようにする magrittr, Base の paste の代替・拡張となる glue によって、文字列やデータの結合を行う。
  5. Model(数理モデル): 現時点では、modelr Package が r4ds では使われているが、現在開発中。broom Package 参照。

以上は、Tidyverse からの引用。

[2020/3/28]

Interactive Documents - 対話型文書

Constructing Interactive Learning Tools - 対話型学習ツールの開発

  • Quality of Learning(学びの質)は、Exercise(練習問題)で決まると言っても、過言ではない。R などの学びには、Interactive Learning Tools は有効だが、ネット上のものは、無料で公開されているものは、ほんの少しで、十分な学びができるのは、殆どが有償。無償でかつ、特に、すぐれているものは紹介していくが、いずれは、自分で作りたい。Server が必要となることが多い。しかし、それでは、だれでも、作成するというわけにはいかないので、Server なしで Ineractive に、Exercise を解きながら学ぶツールを活用していきたい。
  • 2020 年 3 月時点で有望なのは、swirl を作成する、swirlify、R Markdown の Shiny を利用する、learnrDataCamp が提供するものである。

Reading Files - ファイルの読み込み

Reading html and Web Scraping - Web Site の読み込み

  • [2020/03/05] html file を xml2::read_html で読み込み、rvest::html_nodes で node を指定し、rvest::html_table で、html の table を data frame に変換。rvest package を読み込むと、xml2 も読み込む。
library(rvest)
url <- "https://www.mhlw.go.jp/stf/newpage_09964.html"
h <- read_html(url)
tab <- h %>% html_nodes("table")
tab_0 <- tab[[3]] %>% html_table
str(tab_0)
## 'data.frame':    247 obs. of  8 variables:
##  $ X1: chr  "新No." "1" "2" "3" ...
##  $ X2: chr  "旧No." "1" "2" "3" ...
##  $ X3: chr  "確定日" "1/15" "1/24" "1/25" ...
##  $ X4: chr  "年代" "30代" "40代" "30代" ...
##  $ X5: chr  "性別" "男" "男" "女" ...
##  $ X6: chr  "居住地" "神奈川県" "中国\r\n\t\t\t\t(武漢市)" "中国\r\n\t\t\t\t(武漢市)" ...
##  $ X7: chr  "周囲の患者の発生※" "なし" "なし" "なし" ...
##  $ X8: chr  "濃厚接触者の状況" "38名特定\r\n\t\t\t\t健康観察終了" "32名特定\r\n\t\t\t\t健康観察終了" "7名特定\r\n\t\t\t\t健康観察終了" ...

Manupulating Strings - 文字列の取り扱い

Replacement 置き換え

  • [2020/03/05] 文字列の置き換え stringr::str_replace("中国\r\n\t\t\t\t(武漢市)", pattern = "\r\n\t\t\t\t", replacement = "")

  • [2020/03/05] 文字を特定のものに置き換え sprintf("男女別発症者数 (%s 件の「調査中」「確認中」のデータを除く)", 5)

Graphics with ggplot2

Labels - ラベル

  • [2020/03/05] ggplot2 において、x-軸ラベルの形式 theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

  • [2020/03/05] ggplot2 において、time series の x-軸ラベルの形式 scale_x_date(breaks = "2 days", labels = date_format("%m/%d"))

  • [2020/03/05] ggplot2 設定例 ggplot(aes(x = reorder(居住地, 計), y = 計)) + geom_col() + coord_flip() + theme_gray(base_family = "HiraKakuPro-W3") + xlab("居住地")


For comments, please send us an email to: freeopenonlinedatascience4all[at]gmail.com