More Related Content Similar to PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 (20) More from Katsuhiro Morishita (20) PythonとRによるデータ分析環境の構築と機械学習によるデータ認識2. 本スライドの目的・背景
目的
• PythonとRの全学的普及
対象
• 熊本高専の教員・学生
• Pythonに触れたことがない方
• Python or R or データ分析に興味がある方
2
5. 役割分担(森下の場合)
可視化
散布図行列
etc.
分析
数値的要約
主成分・因子分析
相関行列
数量化x類
n群の比較
etc.
テキスト処理
データベース操作
機械学習
ニューラルネットワーク
サポートベクタマシン
ランダムフォレスト
Deep Learning
*データが数GByteまでならこれで十分5
10. 演算子
• 代入:=
• 加算:+
• 減算:-
• 乗算:*
• 除算:/
• 累乗:**, 例a = 20 ** 2 # 400
• 剰余(割り算の余り):%
10
34. Pythonにできることの一例
• グラフ作成
• PyCUDAでGPUプログラミング
o 大規模グラフィック演算
o 電磁気・流体シミュレーション
o ディープ・ラーニング(機械学習の一種)
• 各種サーバ構築
• 数値計算全般+数式の理論微分・積分
• 画像・GISツールのプラグイン
34
37. Pythonの情報源
• Python公式サイト
o http://www.python.jp/
• 公式パッケージ配布元
o https://pypi.python.org/pypi
• Windows用非公式パッケージ配布元
o http://www.lfd.uci.edu/~gohlke/pythonlibs/
• Windows用統合開発環境Pyscripter
o https://code.google.com/p/pyscripter/
• その他、ネット上の有志の方々
*2014-08-28時点で、pyscripterはPython 3.3.xまでしか対応していない37
40. ☆インタプリタの
インストール
• https://www.python.org/downloads/release
/python-341/
• ↑最新版@2014-08-28
40
OS等の都合に併せて
どれか1つを
ダウンロード&インストール
41. ☆pipのインストール
• パッケージの管理
• ビルド済みの配布パッケージがない場合にソースからイ
ンストールするときに必要
• http://www.lfd.uci.edu/~gohlke/pythonl
ibs/#pip
41
for 64 bit
for 32 bit
“pyX.Y”はPythonの
バージョンに合わせる
45. scikit-learn
• 各種機械学習を支援
45
*http://scikit-learn.org/stable/auto_examples/plot_classifier_comparison.html
**解説:http://www.slideshare.net/moa108/20130715-lt-scikitlearn
47. ☆Cを含むライブラリの
インストール
• ビルド済みがネットに落ちてなければビルド
o Pythonインタプリタのbit幅に合わせる
o コンパイラ等のツール
• ライブラリによってツールが異なる
• MinGW + msys
• Visual Studio 2010/2012/2013 Express/pro
• CMake
• python install setup.py
o 先にビルドだけ実施することもある
o その場合は、ビルドツールを選択することもある
• pip install lib_name 47
48. ☆環境変数の設定
• PYTHONPATH
o 個人的なライブラリがあれば設定
• PATH
o C:python34
o C:python34Scripts
o C:python34Libsite-packages
*”pythonXY”の”XY”はインストールしたPythonのバージョンに依存48
63. R 公式版
• for Windows
o http://cran.md.tsukuba.ac.jp/bin/windows/base
/
• for Mac OS X
o http://cran.md.tsukuba.ac.jp/bin/macosx/
• Linuxに関してはこちら
o http://www.okada.jp.org/RWiki/?R%20%A4%CE
%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC
%A5%EB#if8c08b4
63
66. サンプルデータ
• フィッシャーのアヤメ
oデータ入手:
http://home.a00.itscom.net/hatada/
ml/data/iris01.html
oデータの解説:
http://d.hatena.ne.jp/tsutatsutatsuta/
20121206/1354737461
66
73. コピペ用スライド
73
#!usr/bin/python3
import pandas
from sklearn.ensemble import RandomForestClassifier
data = pandas.read_csv("iris2.csv")
#print(data)
trainFeature = (data.iloc[:, 0:4]).values # transform to ndarray
trainLabel = (data.iloc[:, 4:5]).values
trainLabel = [flatten for inner in trainLabel for flatten in inner] # transform 2次元to 1次元ぽいこと
clf = RandomForestClassifier()
clf.fit(trainFeature, trainLabel)
result = clf.score(trainFeature, trainLabel) # 学習データに対する、適合率
print(result)
print(clf.feature_importances_) # 各特徴量に対する寄与度を求める
76. まとめ
• Pythonの紹介
• Pythonの準備
• Rの準備
• データ分析例
o 可視化
o ランダムフォレスト
• 参考サイト:
http://www.slideshare.net/hamadakoichi/ran
domforest-web?related=1
76
79. ツール類
• バグ追跡
• 工程管理
• バージョン管理
79
開発スタイル
(ウォーターフォール・
アジャイル)によって異
なるツールが利用される
試行錯誤
83. バージョン管理ツール
の利点
• 複数人で共同開発
• 過去の状態に戻せる
• 思考パターンを追うことができるので、
紋切り型なコピペの防止
• 卒研のソースコード管理
83
85. GitHubにおける
オープンソース開発例
• RTKLIB
ohttps://github.com/tomojitakasu/RTKLIB
oGNSS相対測位計算ツール
• オープン開発の理由
o1人で行う開発の限界
o開発の継続(継承)
85
91. 複数のPythonバージョン
を並行して使う
• 普段利用するPython環境を仮想環境とする
• 環境が壊れても安心
• コマンドでインタプリタを切り替え
• ツール
oMacならpyenvなど
oWindowsならvirtualenv
oコアとなるPythonをインストール後に、
上記のツールをインストールして利用
91
92. Pythonのライブラリをコ
ンパイルする上でのメモ
(Windowsでの話)
• 原則的には、Pythonインタプリタをビルドしたものと同
じツールを使う必要があります。
• ただし、Python 3.3.5はVisual Studio 2010でビルドされ
ていますがVisual Studio 2012でビルドしたツールもイ
ンストール出来ました。
• 場合によってはPython本体がmsysでビルドされていた
としても、Visual Studioでビルドしたツールもインス
トール出来ます。
92
96. Q&A
• Q:C#とPythonでコーディングスタイル(プログラミングへ
の取り組み方)は異なりますか?
• A:全く異なります。Pythonではインターフェイスクラスや
データ構造よりも、処理アルゴリズムから考えます。
• Q:他言語は知っています。Pythonの習得にはどの程度時間
がかかりますか?
• A:Lightweight Language(LL)の経験がなければ、3ヶ月程だ
と思います。LL経験者なら、2週間程だと思います。
• Q:オブジェクト指向を最短で身に付けたいのですが。。
• A:C#で実用的なプログラムを設計からリリースまで一貫し
て取り組み、10万行くらい書くのが早いと思います。
96
97. ビッグデータを対象とした
分析環境づくり
• 分析したいデータと目的によるが・・・
• おすすめは、Amazon Web Service(AWS)でHadoopを利
用できるAmazon Elastic MapReduce(Amazon EMR)
o もっと良いサービスがあるかも
• ロードバランサーにより自動的にインスタンスを起動
• 機械学習・財務分析・科学シミュレーションにどうぞ
• 月々、1万円程度?
o 通信量に依存
• クレジットカードとAWSアカウントさえあれば、環境を30
分で立ち上げることができます
• クラウドに関する知識が必要
97
100. プログラミング言語の進化
• やや実験的な言語
oScala, go, swift
• それぞれ、新しい概念を導入
• 全ての言語が影響を与え合っている
• C/C++すら数年に1度の改定で近代化
• 「ああ、これって要するにあれだよね」
では収まらない
100