Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

東大生向けデータ解析講座 第3回 2018/01/04

135 views

Published on

解析初心者の東大生向けの講座の第三回。sklearnを用いてregression, clustering, classificationを実装。

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

東大生向けデータ解析講座 第3回 2018/01/04

  1. 1. 東大生向けデータ解析講座 第3回 2018/01/03 3idea CEO 西岡 賢一郎
  2. 2. スケジュール ● 12/27(水):データ解析のための環境構築(Python3, jupyter notebook等) ● 12/29(金):numpy, pandasの操作 ● 1/4(木):sklearnを使った機械学習による予測 ○ 機械学習 ■ Regression ■ Clustering ■ Classification ○ CrossValidation ○ Preprocessing ● 1/5(金):応用(選択テーマ、若しく持ち込みテーマ)
  3. 3. 前回アンケートの質問への解答 ● ソフトが違うと一部出してくる数値が異なる、という問題が偶にあります が、(Rとかもある)そういう特性で知られているもの・注意した方がい いものがあれば教えてください。 ○ 同じ名前でも定義が複数あるものがあり、それによって結果が異なってくることはよくあ ります(例: 回帰分析の決定係数など)。また同じプログラムでも機械学習ではアルゴリズ ムの途中で乱数を用いることがあり、それによって毎回結果が異なることもあります (乱 数の生成を制御することは可能) ● 授業の後にトライディアのほうでインターン等は可能ですか? ○ 公募はしていないですが、やる気ある人は随時募集中です。解析者だけでなく、Ruby on Railsを用いたWebプログラマーも募集中です。Pyenv, Git, Shell, Emacsなど使ってくる ソフトウェアが本格的になってくるので、より実践的な内容を学ぶことが可能です。今ま でで計30人ほどの東大インターン生がいましたが、リモートワークがメインで自己管理能 力が求められるため、現在は社会人メインになっており、学生インターンは3人(東大2人) に縮小しています。
  4. 4. Pandasの公式ドキュメントの見方 Pandas, DataFrame, Seriesのどれに紐付いているかを気をつけないと引数が異なったりしていてはまることがある。 引数に何が必須で何が必須でないかは説明をきちんと読む。デフォルト値の設定に関しても書いてある。 Pandasに紐付いている DataFrameに紐付いている 引数が異なる 引数の説明、デフォルト値など
  5. 5. 機械学習 大まかに分けて抑えておくべきは3つ ● Regression (回帰): Y = f(x) として当てはまりが良いものをさがす。誤差を 最小化 ● Clustering: 教師なし学習。特定の基準に基づきデータを複数の群に分割す る ● Classification (分類): 教師あり学習。学習データからモデルを生成し、新 しいデータがあったときがどのラベルに属するかを分類する。予測精度の 最大化
  6. 6. 機械学習の流れ sklearnを今後使う上でよく出る関数の流れ model.fit model.predict model.transform データの標準化 → 変換 PCA, KMeans, MinMaxScaler,... データの学習 → 予測
  7. 7. Regression データに当てはまりの良い関数を探す ● Linear Regression ● Logistic Regression
  8. 8. 線形回帰 今回は深入りはできないが、誤差の小さいa1, a2, a3を探す
  9. 9. オーバーフィッティング (過学習) パラメータを増やすと予測精度が異様に高くなる。このときオーバーフィッテ ィングになっていないかどうか気をつける。Regressionではオーバーフィッテ ィングを防ぐためのモデルがある (例: L1正則, L2正則)
  10. 10. Clustering Clusteringでよく使われる手法 ● 階層的Clustering: デンドログラムによって表示 可能 ○ 最短(最長)距離法 ○ Ward法 ● 非階層的Clustering ○ K-means
  11. 11. ClusteringのInput 説明変数を行列として与える 説明変数 X n m model.fit(X)
  12. 12. Classification 元データがどのラベルに属するかがついており、新しくデータが入ったときにどこのラベルに属するかを予測 よく使われる手法 ● Logistic Regression ● Support Vector Machine ● Random Forest 元の実データの分類 点の色で分類を表示 学習結果による分類 背景色で分類を表示 新しいデータがどの分類に属するかを予測
  13. 13. ClassificationのInput 説明変数と目的変数を行列として与える 説明変数 X 目的 変数 Y n m n l model.fit(X, Y)
  14. 14. トレーニングデータとテストデータ オーバーフィッティングによる誤認識を防ぐためにもトレーニングデータとテ ストデータは基本的に分ける columns index トレーニングデータ テストデータ
  15. 15. 説明変数、目的変数とトレーニングデータとテストデータ トレーニングデータ、テストデータの中にさらに説明変数、目的変数がはいっ ているので、合計4つの行列ができる columns index train X train Y test X test Y
  16. 16. クロスバリデーション (交差検定) データをK個に分割し (k-fold cross-validation)、そのうち1つをテストデータ、 残りをトレーニングデータとして扱い学習を行う。 トレーニングデータ ((K-1)/K) ここからモデルの学習を行う テストデータ (1/K) これを使って評価をする K分割し、1つをテストデータに使用 分割するときにデータの性質を反映してしまうような分割となっていないか注意 columns index
  17. 17. Accuracy どのくらい正解しているかの率。正解不正解が偏っている場合は、精度が高く なり使えない。 正解で正 正解で負 予測で正 真陽性 True Positive 偽陽性 False Positive 予測で負 偽陰性 False Positive 真陰性 True Negative
  18. 18. 質的データの扱い 質的データはそのままでは扱えないのでダミー変数に変換 (one-hot表現) a, b, cがそれぞれ[1, 0, 0], [0, 1, 0], [0, 0, 1]として表されている 見た目は数値でも比較できないデータなどに注意しておく (idなど) col 0 a 1 a 2 b 3 b 4 c 5 b 6 a a b c 0 1 0 0 1 1 0 0 2 0 1 0 3 0 1 0 4 0 0 1 5 0 1 0 6 1 0 0 dummy変数に変換 get_dummies()

×