このページについて
データ分析試験を受験するにあたって、自分が見直ししやすいように要点をまとめたシートを作成した。
記載内容は翔泳社「Pythonによるあたらしいデータ分析の教科書」から章ごとにまとめていくことにする。
データ分析エンジニアの役割
データ分析の世界
Pythonの特徴
- 言語仕様としてわかりやすい
- コンパイル不要、動的スクリプト言語
- 標準ライブラリと外部パッケージの豊富さ
- データ分析以外も応用可能
- オープンソース
Pythonの得意分野
- サーバ系ツール
- Webシステムの構築
- IoTデバイスの操作
- 3Dグラフィックス
Pythonの苦手分野
- Webアプリなどのフロントエンド
- デスクトップGUI
- 速度向上などの低レイヤー処理(得意:C++,Rust)
- 超大規模かつミッションクリティカルな処理(得意:C#,Java)
Pythonでデータ分析に使用されるツール
- Jupyter Notebook
- Numpy
- pandas
- Matplotlib
- SciPy
- scikit-learn
Python以外の選択肢
- R言語
- Excel
- VBA
データサイエンティストとデータ分析エンジニア
データサイエンティスト 予測洞察系
- モデル、アルゴリズムの構築
- 新たな解法、新技術への取り組み
- 解決したい課題に向き合う実務
- データとの向き合い方の提示
- 分析結果の評価
データ分析エンジニア 実データ管理、分析系、データ工学実践系
- データの加工、ハンドリング、データの可視化
- プログラミング
- インフラ
※付加価値的に必要 - 機械学習
- 数学
- 対象分野の専門知識
機械学習の位置づけと流れ
データ分析の手法
大量のデータからカテゴライズや数値予測を行う方法として以下の3つ
- ルールベース
If分のアプローチで分類、パラメータが増えると難易度が上がる - 統計的な手法
データから統計的な数値を求めそれをもとに予測
機械学習で利用する統計はその拡張 - 機械学習
大量のデータから特性を見つけ、予測を行う計算式の塊(モデル)を作成する
機械学習のタスク
以下3つ
-
教師あり学習
正解ラベルがある。 正解ラベルは目的変数と呼ぶ。
目的変数を決定するためのデータは説明変数という。
さらに以下2つに分類- 教師あり回帰 ・・・目的変数が連続値である
- 教師あり分類・・・目的変数がカテゴライズできる
-
教師なし学習
正解ラベルなし。主にデータの特徴から予測する。
クラスタリング、次元削減のタスクがある。 -
強化学習
ブラックボックス的な環境で実行する際に、
報酬を最大化するような状態に応じた行動を学習していく手法
囲碁や将棋等ルール上で勝ちにつながる行動をとった際に最大報酬を与え学習させる。
機械学習の処理の手順
↓手順の流れと使用ライブラリ
- データ入手 Numpy,pandas
- データ加工 Numpy,pandas
- データ可視化 Matplotlib,pandas
- アルゴリズム選択 scikit-learn
- 学習プロセス scikit-learn
- 精度評価 scikit-learn
- 試験運用
- 結果利用
データ分析に使う主なパッケージ
パッケージとはPythonに機能を追加するもの
用途に応じてパッケージを使用する
パッケージ紹介
- Jupyter notebook
- Json形式
- 拡張子は.ipynb
- ブラウザで実行
- Numpy
- 配列行列得意
- 中身はC言語
- pandas
- Numpy基盤
- DataFrame構造
- Matplotlib
- データの可視化に特化
- MATLABに影響を受けている
*折れ線ヒストグラム等が描画できる。
- scikit-learn
- 機械学習のアルゴリズム等
- SciPy
- 科学計算をサポート