MENU

なかぴょん

元WEBディレクターがPythonエンジニアになるために勉強中です。プログラミング記事多めに更新していきます。ブログ関連記事も少々。

【Udemy感想】Pythonで機械学習:scikit-learnで学ぶ識別入門

【Udemy感想】Pythonで機械学習:scikit-learnで学ぶ識別入門

なかぴょん

Udemyにある「Pythonで機械学習:scikit-learnで学ぶ識別入門」を受けてきたよ。
機械学習ライブラリscikit-learnを使ってデータの識別をやってみたい方におすすめの講座だよ。

へびにょん

なかぴょんです。
今回はUdemyの講座の1つである、Pythonで機械学習:scikit-learnで学ぶ識別入門を受けてきました。

Pythonの機械学習ライブラリscikit-learnを使ったデータの識別を学びたいという方におすすめの講座です。

講義内ではコードを書いていくことに重点をおいて講座が進んでいくので、機械学習に使用する数学の知識などの解説は少なめです。

それでは、詳しく解説していきます。

誰向きなのか

【Udemy感想】Pythonで機械学習:scikit-learnで学ぶ識別入門のおすすめポイント

こんな人におすすめ
・機械学習という言葉は知っているが,中身を知らない人
・プログラミングが嫌いではない人(Pythonプログラミングをします)
・Pythonプログラミング環境を用意できる人
・具体的に機械学習を適用したいデータがある人

何が学べるのか

  • 機械学習の識別(分類・パターン認識)が何かがわかります
  • Pythonとjupyter notebookが使えるようになります
  • Pythonの機械学習ライブラリscikit-learnを使えるようになります
  • 2クラス分類と多クラス分類の違いがわかります
  • 交差確認(cross validation)やleave-one-outなどを学べます

学ぶ際の事前準備

【Udemy感想】Pythonで機械学習:scikit-learnで学ぶ識別入門で学習するプログラミング言語

pythonプログラミングの初歩的な知識が必要となります。

Udemyの他の講義でPythonに関する入門講座などを受けてから受講するのをおすすめします。

Pythonに関して一通り学んでいる方なら問題なく講義の内容を理解できます。

jupyter notebookのプログラミング環境が構築できるもしくは、もう構築できている状態がベストです。

講座詳細

セクション1 機械学習とは

最初に機械学習に関する大まかな説明があります。

この講義では、識別(分類・認識)に特化した講義内容となっております。

  • 1. はじめに
  • 2. 識別とは
  • 3. 識別の流れ
  • 4. ラベルについて
  • 5. 回帰とは(ここでは扱わない)
  • 6. 教師あり,教師なし,半教師あり
  • 7. ディープラーニング(深層学習)とは

セクション2 Jupyter notebookの設定(Pythonプログラミングの環境設定)

始めにPythonのプログラミング環境「jupyter notebook」をインストールする手順の説明があります。

そのため、Pythonのプログラミング環境をまだ構築していない方でも問題なく講義を受けることができます。

mac,windows,linuxそれぞれに対してのインストールの説明がありますが、お持ちのOSの部分のみの閲覧で問題ございません。

もし、dockerを使いたいという方は,最後の動画で簡単に説明があります。

すでにPythonの開発環境を構築できている方は、インストールの講義内容を飛ばしていただいても問題ございません。

  • 8. 環境設定について
  • 9. anacondaの紹介
  • 10. macOS:ダウンロードとインストール
  • 11. macOS:起動と終了
  • 12. macOS:アップデート
  • 13. macOS:ターミナルでの操作
  • 14. windows:ダウンロードとインストール
  • 15. windows:起動と終了
  • 16. windows:アップデート
  • 17. windows:コマンドプロンプトでの操作
  • 18. linux:ダウンロードとインストール
  • 19. linux:起動と終了
  • 20. linux:アップデート
  • 21. linux:ダウングレード
  • 22. linux:GUIのAnaconda navigator
  • 23. linux:anacondaを使わずaptとpipでインストールするなら
  • 24. オプション:dockerを使うなら
  • 25. オプション:どうしてもクラウドというならSageMathCloud

セクション3 最初の例題:学習から識別まで

Jupyter notebookの簡単な使い方を説明してくれます。

また、scikit-learnやnumpyについて学習する際に参考となるWebサイトの説明があります。

そのため、scikit-learnやnumpyについての理解を深めることに役に立ちます。

  • 26. Jupyter notebookの簡単な使い方
  • 27. レクチャー用のnotebookのダウンロードはこちら(ソースコードはここにあります)
  • 28. 参考ウェブサイト
  • 29. 2次元のデータで識別の例 03_01
  • 30. 癌のデータを識別:学習とテストを半々に 03_02
  • 31. アヤメのデータを識別:学習とテストを半々に,したらダメ 03_03
  • 32. アヤメのデータを識別2:学習とテストをランダムに半分に 03_03
  • 33. アヤメのデータを識別3:ランダムに分けて何度も 03_04

セクション4 学習データとテストデータの準備

実際にある学習データを使ってデータを取得する手順を学びます。

コードを見ながら、どのような処理が行われているのかを解説してくれます。

  • 34. 学習データとテストデータの分け方概論
  • 35. 学習データとテストデータが同じ場合 04_01
  • 36. Hold-out 04_02
  • 37. Hold-out 2: stratified 04_03
  • 38. cross validation, stratified 10-fold CV 04_04
  • 39. Leave One Out, Leave-p-out, Leave-one-gruop-out 04_05
  • 40. 学習データ・検証データとテストデータ 04_06

セクション5 データから特徴量へ

セッション4で取得したデータを実際に識別していく手順を解説してくれます。

  • 41. データから特徴量へ
  • 42. 欠損値の扱い・データクリーニング 05_01
  • 43. 特徴抽出:テキストデータと特徴量 05_02
  • 44. 特徴抽出:画像データと特徴量 05_02
  • 45. 特徴選択 05_03
  • 46. 特徴変換:PCA 05_04
  • 47. 特徴変換:PCAと次元削減 05_04
  • 48. 特徴変換:非線形(多項式)変換 05_04
  • 49. 標準化 05_05
  • 50. スケーリング 05_05
  • 51. 正規化 05_05
  • 52. PCA白色化 05_05
  • 53. ZCA白色化 05_05

セクション6 テストデータの評価方法

  • 54. 2クラス問題のconfusion matrix 06_01
  • 55. 2クラス問題で重要なTP, TN, FP, FN 06_01
  • 56. 多クラス問題のconfusion matrix 06_01
  • 57. PCAで文字認識 06_01
  • 58. precisionとrecall 06_02
  • 59. f-measure,f値 06_02
  • 60. precision, recall, f-measureをいっぺんに 06_02
  • 61. 多クラス分類のprecisionとrecall 06_02
  • 62. ROC AUC 06_03
  • 63. ランダムならどうなるROC 06_03
  • 64. average precision, AP 06_03
  • 65. 多クラス問題のmAP 06_03

セクション7 いろいろな識別器

  • 66. 2クラス識別と多クラス識別 07_01
  • 67. 多クラス識別:One-vs-Rest (ロジスティック回帰) 07_01
  • 68. 多クラス識別:One-vs-Rest (SVM) 07_01
  • 69. 多クラス識別:One-vs-One (SVM) 07_01
  • 70. 多クラス識別:ovrとovoの補足 07_01
  • 71. kNN:最近傍識別器 (NN),k近傍識別器 (kNN) 07_02
  • 72. kNN:KNNの亜種:radius NN 07_02
  • 73. kNN:スケーリングしてKNN 07_02
  • 74. パーセプトロン 07_03
  • 75. パーセプトロン:平面・直線の数式
  • 76. パーセプトロン:学習則
  • 77. パーセプトロン:損失関数
  • 78. パーセプトロン:損失関数をインタラクティブに 07_03
  • 79. パーセプトロン:ランダムな動作 07_03
  • 80. パーセプトロン:癌データの認識 07_03
  • 81. パーセプトロン:まとめ 07_03
  • 82. ロジスティック回帰 07_04
  • 83. ロジスティック回帰:癌データの認識 07_04
  • 84. ロジスティック回帰:2次元データで確率の予測 07_04
  • 85. ロジスティック回帰:別の2次元データでも確率を 07_04
  • 86. SVM:サポートベクターマシン,SVC 07_05
  • 87. SVM:マージン,サポートベクトル,確率 07_05
  • 88. SVM:非線形カーネル(rbf, poly) 07_05
  • 89. SVM:癌データの認識 07_05
  • 90. MLP:多層パーセプトロン 07_06
  • 91. MLP:層を変えてみる 07_06
  • 88. SVM:非線形カーネル(rbf, poly) 07_05
  • 89. SVM:癌データの認識 07_05
  • 90. MLP:多層パーセプトロン 07_06
  • 91. MLP:層を変えてみる 07_06
  • 92. MLP:癌データの認識 07_06
  • 93. ランダムフォレスト:2次元データの認識 07_07
  • 94. ランダムフォレスト:別の2次元データの認識と過学習 07_07
  • 95. ランダムフォレスト:癌データの認識 07_07

セクション8 パラメータ調整

  • 96. 注意:並列計算のn_jobsの指定
  • 97. 注意:windowsでのグリッドサーチの表示
  • 98. グリッドサーチ:1パラメータのロジスティック回帰 08_01
  • 99. グリッドサーチ:2パラメータのSVM 08_01
  • 100. グリッドサーチ:3パラメータのSVM(linear, rbf) 08_01
  • 101. グリッドサーチ:kNN 08_01
  • 102. ランダムサーチ:多層パーセプトロン 08_01
  • 103. パイプライン:PCAとロジスティック回帰を一緒に 08_02
  • 104. パイプライン:スケーリングとSVMを一緒に 08_02
  • 105. パイプライン:前処理もグリッドサーチで 08_02
  • 106. 正則化パラメータC 08_03
  • 107. 正則化パラメータと過学習 08_03

セクション9 学習サンプル数が多いとき

  • 108. linear SVM(lib linear) 09-01
  • 109. inear SVM(liblinear):primalソルバ 09-01
  • 110. linear SVM(liblinear):グリッドサーチ 09-01
  • 111. 確率勾配法 (SGD) 09-02
  • 112. 確率勾配法 (SGD):数式の説明 09-02
  • 113. 確率勾配法 (SGD):グリッドサーチ 09-02

セクション10 例題

  • 115. 20カテゴリのテキスト分類:1 10_01
  • 116. 20カテゴリのテキスト分類:2 10_01
  • 117. 20カテゴリのテキスト分類:3 10_01
  • 118. 20カテゴリのテキスト分類:4 10_01

セクション11おわりに

  • 119. まとめ

まとめ

今回はUdemyの講座の1つである、Pythonで機械学習:scikit-learnで学ぶ識別入門についてご紹介しました。

Pythonの機械学習ライブラリscikit-learnを使ったデータの識別を学ぶことができて良かったです。

分析したいデータを持っている方は、今回の講義で学んだ機械学習ライブラリscikit-learnを使ってデータの識別を実際に行ってみると良いかと思います。

今回紹介した講座以外にも僕が受けた講座はいくつかあるので、興味がある方はこちらの記事をご覧ください。

※ただいま作成中途中のため、一部デザインが崩れて見ずらくなっております。完成まで少々おまちください。

なかぴょんに受けてほしい学習サービスのリクエスト等ございましたら、
お問い合わせにてお伝えください。

受講のリクエストをいただいた講座は受け終わった後で記事にいたします。

※費用が高い講座は、リクエストをいただいてすぐには受けられないかもしれません。
壊滅的な軍資金不足・・・ご容赦ください。

なかぴょん

リクエストお待ちしております(^^)

明日もぴょんぴょん!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Twitter
SHARE