SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Pythonで機械学習を
行ってみる
2022/1/19開催
@HW_a_pythonista
目次
• 自己紹介
• 機械学習とは何か?
• 理論編
• ビジネスユーザーの役割
• ライブラリの紹介
• チュートリアル
自己紹介
名前: 渡邉博文@HW_a_Pythonista
本業は、創薬シミュレーションの研究者で、現在は、会社経営
機械学習の査読付き論文もあり(2020, 2021に一報ずつ+α)
はんなりPython運営
「ビジネスデータサイエンスの教科書」読書会
Pycon mini Hiroshima2020登壇者「Pythonとベイズ統計」
機械学習とは何か?
• 人工知能(AI)を支える技術の一つ。
• 入力信号に対して、ある仮定のもとに学習器を用意し、学習器
の中の多くの内部パラメータを調整してパターンを分類したり、
入力した信号を再現すること。
• 実は、統計学と地続きでつながっている
機械学習の種類
5
教師付き学習
ある入力に対応した
正解となる答え(教
師信号)を出力が再
現するように学習器
を訓練させる方法
(例:画像のラベル
付け、物体検出、音
声認識)
教師なし学習
教師信号なしで、
あるルールに基づ
いて、データを分
類したり、特徴づ
けたりする方法
(例:クラスタリ
ング)
強化学習
行動を行った後の
観測結果からの報
酬をもとづいて学
習し、最終的なタ
スクの実現を目指
す方法。正解とな
る信号が直接の行
動の結果に対して
は与えられない場
合に使われる。
(例:Alpha Go)
機械学習の種類
6
教師付き学習
ある入力に対応した
正解となる答え(教
師信号)を出力が再
現するように学習器
を訓練させる方法
(例:画像のラベル
付け、物体検出、音
声認識)
教師なし学習
教師信号なしで、
あるルールに基づ
いて、データを分
類したり、特徴づ
けたりする方法
(例:クラスタリ
ング)
強化学習
行動を行った後の
観測結果からの報
酬をもとづいて学
習し、最終的なタ
スクの実現を目指
す方法。正解とな
る信号が直接の行
動の結果に対して
は与えられない場
合に使われる。
(例:Alpha Go)
教師付き機械学習の流れ
データの取得 前処理
データの分割
(モデル選択に
必要)
学習モデルの
作成
モデルの評価
選択
予測
(必要であれば)
特徴量の選択
注意すべきこと
• 不適切な前処理
• データの偏り
• 過学習・過剰適合
• 過小学習
• 学習時間
前処理
• 変数スケーリング (多くの場合(9割がた)、必須)
• StandardScaler 平均がゼロ、標準偏差が1になるようにスケーリング
する
• 欠損値の処理
• 符号化
• 連続量を0, 1などで表す。
• 非数値データを0, 1のダミー変数で表す。
過学習とは何か?←最初は、まず、ここが大事
● 過学習とは?
○ 学習データを過度に再現すること
○ データには、ノイズが含まれるがノイズまで学習してしまうことにより、
学習データでは精度が高いが、予測したいデータでは、精度が落ちるこ
と
● 汎化性能とは?
○ 学習中に使用したデータに対する性能ではなく、実際の使用される場面
での性能のこと。
特徴量とは?
● 機械学習で扱おうとするシステム
● 系を記述する特徴量を探すことが機械学習の取って本質的
⇒ 特徴量エンジニアリング
● ディープラーニングなどでは、特徴量が多ければモデルの精度が
改善しやすい。
● 特徴量が多いことのデメリット
○ 学習に時間がかかる
○ 過学習がおこりやすい
○ 解釈がにしくい
● 目的変数と関係のない項目があっても学習は改善しない
教師付き機械学習の方法(その1)
● 線形モデル(linear model)
○ 学習パラメータに対して線形の関数(1次式)で教師信号を近似する。
例:線形単回帰、線形重回帰、リッジ回帰、ラッソ回帰、ロジスティック回帰
特徴 計算時間が、かからない。ノイズに強い。
データが大きく増えても性能は、頭打ちになる。
機械学習では何が行われているか?
● 損失関数 = 誤差から生じる損失(マイナス(対数)尤度)
+正則化項 (過学習を抑えるための項)
● 例:y = ax+bに対して、誤差からの(2乗損失)+L2正則化
⇒ リッジ回帰
損失関数 = ෍
𝑖
𝑦𝑖 − 𝑎𝑥𝑖 + 𝑏 2 + λ 𝑎2 + 𝑏2
● 損失関数が小さくなるように、最適化する(パラメーターを決め
る。
学習モデルのパラメータと
ハイパーパラメータ
● (学習)パラメータ―
○ 学習により調整される
○ 線形回帰 y = ax+b であれば、aやbが学習パラメーターにあたる
● ハイパーパラメーター
○ 人があらかじめ与える
○ モデルの複雑さや柔軟性の度合いを表す。
○ オートチューナーは、これを自動的にかえて、最適なハイパーパラメー
タを探す。
例:リッジ回帰の場合は、 λがハイパーパラメータ
損失関数 = ෍
𝑖
𝑦𝑖 − 𝑎𝑥𝑖 + 𝑏 2 + λ 𝑎2 + 𝑏2
教師付き学習(その2)
Y-SA 4.0)
● サポートベクターマシーン(SVM)
https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%9D%E3%83%BC%E3
%83%88%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%9E
%E3%82%B7%E3%83%B3#/media/%E3%83%95%E3%82%A1%E3%82%A4
%E3%83%AB:Kernel_Machine.svg
マージンを最大化するように
境界線を引く。
外れ値に強い。(線形カーネル
の場合)
ディープラーニングが流行る前
は、性能が良く、解が一意に決
まるので、こちらが主流だった。
RBFカーネルなどを使うと曲
がった境界で境界線を引くこと
ができる。
CC by SA4.0
教師付き学習の方法(その3)
● ニューラルネット(ディープラーニ
ング)
○ 多数のニューロンの層を複数、重ねて
学習を行う。
例:画像分類のモデル(VGG16, CIFAR-
10)
● 特徴:計算に時間がかかる。多層
のモデルを使えば精度はあがるが、
学習に多くのデータと計算時間が
必要。
● 結果の解釈がしにくい(最近は、
ある程度可能になっている)
教師付き学習の方法(その4)
● 集団学習法(アンサンブル学習法)
○ 多くの(単純な)学習モデルを組み合
わせて、性能のよい学習モデルを作成
する方法
○ 例:Random Forest, Light GBM,
XGBoost
○ ディープラーニングに比べると学習が
速い。
○ 構造データに強い。
○ Kaggleでよく使われている。
複数の決定木で多数決
決定木1 決定木2 決定木n
Random Forestのイメージ
機械学習における注意
● 自由度が大きく、柔軟なモデルは、十分なデータ量がないと過学
習を起こしやすい。
● 自由度の小さなモデルは、過学習を起こしにくいが、データが増
えても性能が上がりにくい。
● 良い特徴量を選ぶことの方が重要な場合も多い
● 正則化を行えばノイズからの攪乱には強くなる、しかし、正則化
が強すぎれば、データへの当てはまりは、悪くなる。
機械学習モデル選択の方法
● 学習用データ、テストデータの分割
● クロスバリデーション
○ N個にデータを分割してその内の一つをテスト用とし、残りを学習用とし
にする。テスト用のデータを順繰りに変えて、その平均で評価する。
○ 問題に応じて、その変法もある。(層化抽出など)
● 情報量基準
○ 例:AIC(赤池情報量基準)など
○ パラメータの数に依存した量を正則化項のような罰則として、導入する
モデル選択
● 機械学習を行う際に設定するハイパーパラメータの妥当な値は、
データに依存するので、実際に学習を行ってみて、評価をする必要
がある
● 機械学習を使う状況にあわせた指標でモデルを選択する必要がある。
● 選択の指標
○ 最も単純には、accuracyだが、状況に合わせて指標を考える必要
○ 混同行列(confusion matrix)を利用する
目標設定の重要性
● 例:
○ ドーピング検査
○ 本試験の前の簡易検査
● 何が重要?
○ 問題により異なる。
○ ドーピング検査の場合 False positiveをむやみに出してはいけない。
○ 簡易検査であれば、False positiveは許容できる
AIに関わる各職種の役割
• データサイエンティスト
• (試行的な)学習データおよびテストデータの用意
• (試行的な)前処理
• 特徴量の設計
• 使用する学習アルゴリズムの決定
• モデルバリデーションの基準の決定
• (試行的な)可視化
• データエンジニア
• 前処理やデータ取得パイプラインの整備
• モデルのアップデートおよびその自動化
• ユーザーへの可視化手段の提供
• クラウドなどへのデプロイ
ビジネスユーザーの役割
• データサイエンティストやデータエンジニアにお願いする。
• ビジネス上の課題を機械学習などの問題に落とし込む(または、
そのサポート)
• 上司に説明する。
• 特徴量や評価指標を作る。
• モックアップを作る?
• 社内のユーザーに説明して使ってもらう。
チュートリアル
Google colab上にアップロード
https://colab.research.google.com/drive/1HCKFOE5iYaE7FFF
mUwK6dIeOdM4865k6?usp=sharing
Irisデータセット
● 統計学の巨人Fisherの1936年の論文に登場
Iris virginica
Iris versicolor
Iris setosa
CC BY-SA 3.0
特徴量:
sepal-length がく片の長さ
sepal-width がく片の幅
petal-length 花弁の長さ
petal-width 花弁の幅
https://en.wikipedia.org/wiki/Iris_flower_data_set
今回使用するライブラリ
● Scikit-learn
○ 多くの機械学習手法を手軽に統一的なインターフェースで、扱うことが
できる。
○ ただし、ディープラーニングに関するものは含まれない
● Pandas
○ データフレーム(2次元の表形式のデータの取り扱うオブジェクト)を提
供する。
● Numpy
○ 数値計算のためのライブラリ
○ Scikit-learnの基盤にもなっている。
○ C言語やFortranなどでの配列にあたるndarrayを提供
ndarray (固定長 、速い) ⇔ リスト(可変長、遅い)
● Matplotlib
○ 可視化(グラフ描画)ライブラリ

Mais conteúdo relacionado

Semelhante a Pythonで機械学習をやってみる(bizpy 1/19 2022)

20230216_Python機械学習プログラミング.pdf
20230216_Python機械学習プログラミング.pdf20230216_Python機械学習プログラミング.pdf
20230216_Python機械学習プログラミング.pdfShintaro Fukushima
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画Shinsuke Sugaya
 
エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習Preferred Networks
 
鳥取python勉強会 第1回
鳥取python勉強会 第1回鳥取python勉強会 第1回
鳥取python勉強会 第1回Yuji Oyamada
 
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェアIo t,ai時代のソフトウェア
Io t,ai時代のソフトウェアToshiaki Kurokawa
 
なぜデータをインタラクティブに可視化したいのか?
なぜデータをインタラクティブに可視化したいのか?なぜデータをインタラクティブに可視化したいのか?
なぜデータをインタラクティブに可視化したいのか?hide ogawa
 
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをなPower BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをなYugo Shimizu
 
弁理士が知っておきたいPython①
弁理士が知っておきたいPython①弁理士が知っておきたいPython①
弁理士が知っておきたいPython①Tajima Ryosuke
 
20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pubYoichi Tokita
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル敦志 金谷
 
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介IoTビジネス共創ラボ
 
Power biで気づく!現場機器の異常監視システム on azure
Power biで気づく!現場機器の異常監視システム on azurePower biで気づく!現場機器の異常監視システム on azure
Power biで気づく!現場機器の異常監視システム on azureIoTビジネス共創ラボ
 
S02 t3 python_study_web
S02 t3 python_study_webS02 t3 python_study_web
S02 t3 python_study_webTakeshi Akutsu
 
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティスMasato Fujitake
 

Semelhante a Pythonで機械学習をやってみる(bizpy 1/19 2022) (20)

20230216_Python機械学習プログラミング.pdf
20230216_Python機械学習プログラミング.pdf20230216_Python機械学習プログラミング.pdf
20230216_Python機械学習プログラミング.pdf
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画
 
[基調講演] Deep Learning: IoT's Driving Engine
[基調講演] Deep Learning: IoT's Driving Engine [基調講演] Deep Learning: IoT's Driving Engine
[基調講演] Deep Learning: IoT's Driving Engine
 
エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習エッジヘビーコンピューティングと機械学習
エッジヘビーコンピューティングと機械学習
 
S08 t0 orientation
S08 t0 orientationS08 t0 orientation
S08 t0 orientation
 
鳥取python勉強会 第1回
鳥取python勉強会 第1回鳥取python勉強会 第1回
鳥取python勉強会 第1回
 
Why python
Why pythonWhy python
Why python
 
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェアIo t,ai時代のソフトウェア
Io t,ai時代のソフトウェア
 
なぜデータをインタラクティブに可視化したいのか?
なぜデータをインタラクティブに可視化したいのか?なぜデータをインタラクティブに可視化したいのか?
なぜデータをインタラクティブに可視化したいのか?
 
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをなPower BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
Power BI の可能性?見(魅)せてやるよ!!!その本気ってやつをな
 
弁理士が知っておきたいPython①
弁理士が知っておきたいPython①弁理士が知っておきたいPython①
弁理士が知っておきたいPython①
 
20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub
 
Why python
Why pythonWhy python
Why python
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
Data × AI でどんな業務が改善できる? ​製造業様向け Data × AI 活用ユースケース & 製造MVPソリューションのご紹介
 
Power biで気づく!現場機器の異常監視システム on azure
Power biで気づく!現場機器の異常監視システム on azurePower biで気づく!現場機器の異常監視システム on azure
Power biで気づく!現場機器の異常監視システム on azure
 
ロボットアームをPythonで動かす
ロボットアームをPythonで動かすロボットアームをPythonで動かす
ロボットアームをPythonで動かす
 
S02 t3 python_study_web
S02 t3 python_study_webS02 t3 python_study_web
S02 t3 python_study_web
 
最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス最近思った機械学習(PyTorch)のベストプラクティス
最近思った機械学習(PyTorch)のベストプラクティス
 
Tfug kansai vol1
Tfug kansai vol1Tfug kansai vol1
Tfug kansai vol1
 

Pythonで機械学習をやってみる(bizpy 1/19 2022)