
講座を始めるにあたり、位置づけと学習方法について軽く説明します。
最初に機械学習とは何かについて説明します。
機械学習の種類とその性質について簡単に学習します。
この講座全体の学習の進め方について説明します。
JupyterNotebookを含むPythonのディストリビューションの一つであるAnacondaの取得とインストールについて説明します。
JupyterNotebookの起動から基本的な操作の仕方まで説明します。
実際にAnacondaNavigatorからJupyterNotebookを起動する方法を実践します。
JupyterNotebookのノートを編集する方法について説明します。
実際にノートブックを編集してみます
セーブポイントの設定、ノートブックの閉じ方、あらかじめ作られたノートブックの開き方などの操作について説明します。
実際にノートのファイル操作などをしてみます。
JupyterNotebookでMarkdownの使い方について説明します。
MarkdownはJupyterNotebookにドキュメントを追加する際に重要です。
実際にMarkdownの簡単な編集を行ってみます。
学習環境の構築方法について説明します。
機械学習の学習専用の仮想環境を作り、そこでJupyterNotebookを利用できるようにします。
学習用のデータのダウンロードと内容の説明です。
data.zipをダウンロードして適切な場所にファイルを配置してください。
scikit-learnで機械学習を学ぶにあたり必要なライブラリであるnumpyの使い方についての学習の第一弾です。
最初に配列の扱い方の基本を学びます。
1-1_numpy.ipynbを開いて学習を開始してください。
numpyを利用して1次元から2次元、2次元から1次元の配列の変換をする方法について紹介します。
numpyの配列の成分のデータ型の取得と、データ型の変換を行う方法について説明します。
numpyでのインデックスとスライスについて説明します。
numpyはPythonのリストやタプルなどと同様にインデックス・スライスを使うことが出来ます。
numpyの配列にデータを設定する様々な方法について学習します。
numpyには乱数を発生させるための関数がいくつか存在します。
その中の代表的なものの使い方について学習します。
全ての値が0、などといった特定のルールを持つ配列を生成する方法について説明します。
1次元及び2次元の配列を結合し、新しい配列を得る方法について説明します。
2次元配列を分割する方法と、配列の転置を得る方法について説明します。
numpyの演算のうちユニバーサルファンクション・ブロードキャストについて説明します。
numpyの配列に関する演算のうち論理演算に関連するものを説明します。
numpyの内容を復習するための問題を解いてみましょう。
問題の解答と解説を行います。
matplotlibの概要について説明します。
1-2_matplotlib.ipynbを開いて学習を開始してください。
matplotlibを用いて折れ線グラフを描画する方法の基本について説明します。
matplotlibを用いて棒グラフとヒストグラムを描画する方法を説明します。
matplotlibを用いて散布図を描画する方法を説明します。
機械学習では最もよく使う図です。
matplotlibで等高線を描画する方法を説明します。
描画オブジェクトを利用して複数のグラフを描画する方法について説明します。
描画オブジェクトの概念と使い方について説明します。
複数のグラフの描画の第2弾です。
描画オブジェクトを用いて3次元のグラフを描画する方法を説明します。
その他の内容についての解説です。
matplotlibの内容を復習するための問題を解いてみましょう。
問題の解答と解説を行います。
pandasの基本とデータの生成法について説明します。
1-3_pandas.ipynbを開いて学習を開始してください。
DataFrameの一部をhead()やtail()などで取得する方法について説明します。
DataFrameのデータを行単位・列単位で取得する方法について説明します。
DataFrameの特定の行・列の範囲を切り取る方法について説明します。
また、列・行の追加方法についても説明します。
DataFrameに行や列を新たに追加する方法や、既存の行や列を削除する方法について説明します。
pandasでCSVデータを読み取ってデータ分析を行う方法を説明します。
読み出したCSVデータをもとに、実際に簡単なデータ分析を行ってみます。
pandasの復習問題を解いてみます。
復習問題の解答です。
基本統計量の概念について説明します。
1-4_statics_basic.ipynbを開いて学習を開始してください。
numpyを用いて様々な基本統計量を求める方法について説明します。
pandasのdescribeメソッドを用いて基本統計量を計算する方法を説明します。
pandasを用いて個別の基本統計量を求める方法と、pandsのデータをヒストグラムとして表示する方法を説明します。
基本統計量の概念と、それをnumpy、pandasで実装する方法について学習します。
基本統計量に関する練習問題の説明です。
基本統計量に関する問題の解答です。
回帰分析の概要について説明します。
機械学習の最初のアルゴリズムとして単回帰分析による回帰分析を行ってみます。
手始めに、scikit-learnのモジュールを利用して米国ボストン市郊外における地域別の住宅価格のデータセットを読み出します。
さらにボストンデータの概要について説明します。
目的変数と各説明変数の内容について詳しく説明します。
2-1_linear_regression1.ipynbを開いて学習を開始してください。
各パラメータ間の相関関係を表す共分散と相関係数について説明します。
pandasの機能を用いて実際にパラメータの相関係数を計算すると共に、目的変数との相関関係が深い説明変数を、実際に目的変数と共に散布図で描画し、視覚的に相関関係を確認します。
回帰分析を実行します。
実行して得られたグラフを散布図と重ねてみて視覚的に確認してみます。
得られた予測結果を視覚的に評価する方法として残差プロットを消化しいます。
MSE(平均二乗誤差)を用いて線形回帰を評価する方法を紹介します。
決定係数(R2スコア)を用いて線形回帰を評価する方法を紹介します。
線形回帰(単回帰)に関する問題です。
単回帰分析の問題の解答です。
回帰分析に関する補足事項を説明します。
重回帰分析とは何かについて説明し、ボストンのデータで重回帰分析を行う準備を行います。
手始めに、scikit-learnのモジュールを利用して米国ボストン市郊外における地域別の住宅価格のデータセットを読み出します。
2-2_linear_regression2.ipynbを開いて学習を開始してください。
重回帰分析を行う前にデータの標準化を行います。これにより計算誤差を最小化し、より正確な予測を行います。
実際に回帰分析を行ってみます。
単回帰分析の場合と同様に、残差プロット、MSE、R2スコアの計算を行います。
汎化性能と過学習の概念について説明します。
重回帰分析の問題を解いてみます。
重回帰分析の問題の解答と解説です。
分類問題を解くもっとく簡単なモデルであるロジスティック回帰の方程式について説明します。
2-3_logistic_regression.ipynbを開いて学習を開始してください。
分類問題の学習をするためにダミーデータを生成する方法について説明します。
ロジスティック回帰による学習と評価を視覚的に行います。
分類問題を評価するための指標である混同行列(こんどうぎょうれつ)とscikit-learnでそれを求める方法について説明します。
分類結果を評価するための指標である正解率(accuracy)、適合率(precision)、再現率(recall)、F1スコア(F1-score)とそれを求める関数について説明します。
続いて実際のデータを用いてロジスティック回帰を用いた分類を行ってみます。
手始めに使用する乳癌のデータを読み出します。
読み込んだ乳癌のデータを実際に分類し評価してみます。
説明変数を標準化し、さらに精度の高い分類を行います。
最後に交差検証法(こうさけんしょうほう)を紹介します。
少ないデータで汎化性能の高い分類を行います。
ロジスティック回帰の問題にチャレンジしましょう。
ロジスティック回帰の問題の解答と解説です。
SVMについて説明します。
SVMは回帰・分類両方に使用できますが、ここでは分類で用いる場合について説明します。
ここでは分類のケースについて学習します。
2-4_SVM.ipynbを開いて学習を開始してください。
ライブラリを読み込みダミーデータを用意します。
SVMを使ってダミーデータでの学習と評価を行います。
RBFカーネルを用いたSVCによる予測について学習します。
実際のデータを用いた実例(乳癌のデータ)について解説します。
説明変数の標準化をしてみます。
グリッドサーチを用いて予測精度を上げてみます。
SVMに関する問題です。
問題の解答です。
近頃話題の人工知能(じんこうちのう)や機械学習(きかいがくしゅう)、データサイエンスといった内容について興味があり、
仕事や学習に活かしたい、そう考えている学生や社会人のためのやさしい入門講座です。
機械学習の専門書を開いてみると難しい専門用語や数式が羅列されて、
難しくて挫折した経験をお持ちの方も少なくないのではないでしょうか。
この講座では、パソコンを操作できる知識をお持ちであり、かつPythonの基本的な知識をお持ちの方を対象とし、
人工知能や深層学習のプログラミングは、高校1〜2年生程度のレベルの数学知識があれば十分です。
また、扱う数学のトピックもなるべく最小限にし、図やグラフなど、機械学習のアルゴリズムを直感的に理解しやすいように噛み砕いて説明しています。
学習終了後には、機械学習およびscikit-learnについての知識が身についています。
扱う内容は、プログラミングに関しては以下の通りです。
・Jupyter Notebookの使い方
・数学用ライブラリnumpyの基本
・基本統計量のプログラミング
・matplotlibによるデータの可視化
・pandasによるデータの前処理
・scikit-learnによる機械学習ライブラリの利用
なお、扱う機械学習のトピックは以下の通りです。
・k-means法
・PCAによる時限削減
・線形回帰(単回帰分析・重回帰分析)
・SVM(サポート・ベクトル・マシン)
・ランダムフォレストによる分類
といった内容です。
さらには、多くの演習問題を用意し、理解をより深くすることが可能です!
です。これらについて学習したいかた、もしくは一度学習しようとして挫折してしまった方はぜひこの講座でトライしてください!