Slide 1

Slide 1 text

2017.9.9 Python入門勉強会 AI Business Challenge Day: 第3回 機械学習実践勉強会 データ分析・機械学習のための

Slide 2

Slide 2 text

自己紹介 日本総合ビジネス専門学校 NIHON-CHUO Institution 2017.4- 合同会社4D Pocket 4D Pocket LLC. 2017.4- 石郷 祐介 ISHIGO Yusuke Programmer

Slide 3

Slide 3 text

ࣾ ձ ʹ ؾ ͮ ͖ Λ ༩ ͑ Δ ಓ ۩ Λ ։ ൃ ͠ · ͢

Slide 4

Slide 4 text

本日の流れ 1. Pythonについて 2. 開発環境の構築  ・pyenv、anacondaのインストール 3. ライブラリを使ってみる  ① 標準ライブラリでWebサイトからスクレイピング  ② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる  ① エクセルのデータを読み込んでグラフ表示する  ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる

Slide 5

Slide 5 text

Pythonの特徴 サーバサイド言語として登場(P言語のひとつ) ・AI(機械学習) ・データ分析 ・IoT(Raspberry Pi) ・ロボット(ROS) 等 計算用ライブラリが豊富なため、高度な計算が必要なプログラム に多く使われている

Slide 6

Slide 6 text

Pythonの特徴 Perlとの思想的な違い Perl There’s More Than One Way To Do It. やり方はひとつじゃない Python There should be one-and preferably only one- obvious way to do it 誰もが良いと考えるたったひとつの方法があるはずだ

Slide 7

Slide 7 text

本日の流れ 1. Pythonについて 2. 開発環境の構築  ・pyenv、anacondaのインストール 3. ライブラリを使ってみる  ① 標準ライブラリでWebサイトからスクレイピング  ② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる  ① エクセルのデータを読み込んでグラフ表示する  ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる

Slide 8

Slide 8 text

開発環境のインストール pyenv PythonやAnacondaをダウンロードしたり、バージョンを切り替える ためのツール Anaconda condaを含んだPythonとパッケージ(プラグイン)をまとめたもの (NumPy、scipy、Pandas、Jupyer、Scikit-learn等のパッケージ) Web系の言語には、バージョンを管理するツールが存在する conda Pythonパッケージをインストールできるツール Pythonには、標準で同機能のpipがインストールされているが、 Anacondaを使う場合は、condaを使う(condaにないパッケージはpip)

Slide 9

Slide 9 text

開発環境のインストール ①(pyenv) ・Homebrewを使っている場合 brew install pyenv exec $SHELL -l ・Homebrewを使っていないもしくはMacportsを使っている git clone https://github.com/yyuu/pyenv.git ~/.pyenv sudo vim ~/.bash_profile export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then export PATH=${PYENV_ROOT}/bin:${PYENV_ROOT}/shims:${PATH} eval "$(pyenv init -)" fi exec $SHELL -l 以下のコードを追加する

Slide 10

Slide 10 text

開発環境のインストール ①(anaconda) pyenv install anaconda3-4.0.0 anacondaがインストールされているか確認する pyenv versions anacondaを有効にする pyenv global anaconda3-4.0.0 condaでよく使うコマンド http://geisterhacker.com/index.php/2017/04/26/conda-command/ pipがcommand not foundになる場合の解決策: http://kurogomapurin.hatenablog.com/entry/2015/10/06/154259

Slide 11

Slide 11 text

言語の特徴 ① 1.文末のセミコロンは不要 print(“Hello, world!”) 2.変数に型は必要ない(動的型付け=ダックタイピング) hoge = “Hello, world!” hoge = 123 print(“Hello, world!”); ◯ × String hoge = “Hello, world!” int hoge = 123 × ◯ If it walks like a duck and quacks like a duck, it must be a duck. もしそれがアヒルのように鳴き、アヒルのように歩いたら、それはアヒルである

Slide 12

Slide 12 text

言語の特徴 ② 3.カッコでなくインデントでまとまりを示す if hoge == ‘aaa’: print(‘Hello,’) print(‘world!’) if hoge == ‘aaa’ { print(‘Hello,’) print(‘world!’) } ◯ × オフサイドルール

Slide 13

Slide 13 text

配列 ① fruits = [‘りんご’, ‘ぶどう’, ‘ばなな’] 変数に番号を付けてまとめたもの fruits 0 1 2 りんご ぶどう ばなな print(fruits[1]) print(len(fruits)) 配列の番号を指定して要素を取り出す 配列の要素の数を取得する

Slide 14

Slide 14 text

配列 ② 変数に番号を付けてまとめたもの fruits 0 1 2 りんご ぶどう ばなな fruits.pop(0) fruits.append(‘れもん’) 配列の0番目の要素を削除する 配列の最後に要素を追加する

Slide 15

Slide 15 text

配列とfor文の連携 fruits = [‘りんご’, ‘ぶどう’, ‘ばなな’] for i in range(len(fruits)): print(fruits[i]) 配列の要素数分繰り返して、要素を取得する for i, e in enumerate(fruits): print(e)

Slide 16

Slide 16 text

本日の流れ 1. Pythonについて 2. 開発環境の構築  ・pyenv、anacondaのインストール 3. ライブラリを使ってみる  ① 標準ライブラリでWebサイトからスクレイピング  ② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる  ① エクセルのデータを読み込んでグラフ表示する  ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる

Slide 17

Slide 17 text

ライブラリを使ってみる ① Webスクレイピング Webサイトから情報を取得して利用すること 日付 最高気温 気象庁のWebサイトから、「日付」と岐阜県の「最高気温」を取得してくる

Slide 18

Slide 18 text

ライブラリを使ってみる ① from urllib import request import bs4 url = ‘http://www.jma.go.jp/jp/week/328.html’ html = request.urlopen(url).read() soup = bs4.BeautifulSoup(html, ‘html.parser’) res = soup.find_all(attrs={‘class’: ‘maxtemp’}) for i, e in enumerate(res): print(e.text[0:2]) BeautifulSoup4 HTMLを操作するためのPythonパッケージ conda install beautifulsoup4

Slide 19

Slide 19 text

ライブラリを使ってみる ② import numpy as np from matplotlib import pyplot pyplot.hist(np.random.randn(1000)) pyplot.show() MatPlotLib グラフを表示するパッケージ

Slide 20

Slide 20 text

ライブラリを使ってみる ② スクレイピングした値をグラフ表示してみる matplotlib入門 棒グラフ編 http://www.python.ambitious-engineer.com/archives/888

Slide 21

Slide 21 text

本日の流れ 1. Pythonについて 2. 開発環境の構築  ・pyenv、anacondaのインストール 3. ライブラリを使ってみる  ① 標準ライブラリでWebサイトからスクレイピング  ② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる  ① エクセルのデータを読み込んでグラフ表示する  ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる

Slide 22

Slide 22 text

協調フィルタリング ① モノに対して、人の行動や評価を数値化した表を用意する ・5段階評価(1〜5) ・買った(0)、買わなかった(1) ・買った(2)、閲覧した(1)、買わなかった(0) ・好き(1)、投票せず(0)、嫌い(-1)

Slide 23

Slide 23 text

協調フィルタリング グリーンカレー 杏仁豆腐 柏木さん 田中さん 鈴木さん、川村さん 山田さん 佐藤さん ② モノの評価を軸にして、各人をプロットする

Slide 24

Slide 24 text

協調フィルタリング グリーンカレー 杏仁豆腐 柏木さん 田中さん 鈴木さん、川村さん 山田さん 佐藤さん ③ 距離が近い人が類似している、遠い人は類似していない

Slide 25

Slide 25 text

CSVデータを読み込んでグラフ表示 グリーンカレー 杏仁豆腐 柏木さん 田中さん 鈴木さん、川村さん 山田さん 佐藤さん

Slide 26

Slide 26 text

CSVデータを読み込んでグラフ表示 グリーンカレー 杏仁豆腐 柏木さん 田中さん 鈴木さん、川村さん 山田さん 佐藤さん

Slide 27

Slide 27 text

本日の流れ 1. Pythonについて 2. 開発環境の構築  ・pyenv、anacondaのインストール 3. ライブラリを使ってみる  ① 標準ライブラリでWebサイトからスクレイピング  ② 「matplotlib」で取得したデータのグラフ表示する 4. 基本的な機械学習アルゴリズムを自作してみる  ① エクセルのデータを読み込んでグラフ表示する  ② 「協調フィルタリング」の実装 5. 「scikit-learn」で簡単に機械学習を実践してみる

Slide 28

Slide 28 text

scikit-learnでSVMしてみる scikit-learn 機械学習のアルゴリズムをまとめたパッケージ (SVM、ランダムフォレスト、k近傍法、ロジスティクス回帰等) サポートベクターマシン(SVM) 2つの郡に分けられるデータを入力することで、判別するための 境界を学習し、新規データを分類することができる。 深層学習が主流になるまえは、教師あり機械学習の主流だった。

Slide 29

Slide 29 text

教師ありと教師なし 教師あり データと正解ラベル(正解 or 不正解)を読み込ませて、予測を行う 教師なし 正解ラベルのないデータの規則性を学習し、予測を行う 正解ラベル データ

Slide 30

Slide 30 text

No content