Spark graphxで空港路線情報を解析する

データのダウンロード 書籍通り、米国運輸省のサイトからダウンロードします。 https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=On-Time On-Time : Reporting Carrier On-Time Performance (1987-present)は Filter Geograph…

PythonでSpark Streamingの動作を試す

書籍で紹介があったSpark Streamingの動作を試してみます。 HDFSは構築するのが億劫なので、masterノード上にある/tmp/dir01をウォッチします。ファイルの作成を検知した時、" "で区切られた単語を集計する簡単なプログラム。 streaming.py # -*- coding:utf…

Dockerでapache Sparkのローカル学習環境を用意する

最近、Hadoop周りの学習を始めて、Sparkをもと思いこちらの書籍を購入。学習環境を構築しました。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];…

RailsからS3オブジェクトをアップロードする

RailsアプリケーションからS3オブジェクトを作成します。 gem aws-adkが必要となるので、Gemfileに記述し、記述後bundle installを行います。 gem 'aws-sdk' AWSクレデンシャルの設定 S3にアクセスロールがあるIAMユーザのクレデンシャルをAWSクライアントに…

Heroku PostgreSQLのデータをpg_dumpする

ローカルでpg_dumpが実行できる(PostgreSQLがインストール済など)の前提で。 Heroku DBのクレデンシャルを確認 $ heroku pg:credentials:url --app YOUR_APP_NAME で、クレデンシャルが確認できる。 Connection information for default credential. Connect…

OSアップデートしたMacにRailsを再構築したら結構大変だった話し

opensslの章 しばらくメンテしていないRailsアプリを久しぶりに起動しようとすると以下のようなエラーが。 Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError) 多分、rubyが指すopensslのバージョンとアップデートされたopenss…

グーグルマップ ストリートビューで日本の原風景を味わう 国道197号+320号編(4)

ラスト。宇和島まで向います。 広がる田園風景がとても素敵です。 美しい田園風景 広がる田園風景。抜けてて綺麗(^_^) 360度大パノラマ。最高だね(^_^) 何度でも見返す為の記録用。映画とかアニメで出てきそうな風景。 381号(江川崎方面)との合流地点。381号…

グーグルマップ ストリートビューで日本の原風景を味わう 国道197号+320号編(3)

今回は愛媛県から。車窓からの風景に癒されます。 愛媛県をドライブ 青空と山の緑のコントラストが綺麗。歩くと大変なんだろうなあ... 木漏れ日が綺麗すぎる一枚。 赤い鉄橋が綺麗。197号から離れて320号に入る。宇和島からの帰り道、ここでよく道に迷ってた…

グーグルマップ ストリートビューで日本の原風景を味わう 国道197号+320号編(2)

今回は檮原から。 檮原を出発 檮原の街並み。山間部をドライブしているとこういう街並みにたどり着くとホッとするよね(^_^) 営業してる。よね...?(^_^;) 交通安全用のカカシ。これ夜に運転してるとギョっとするよね(^^;)。鬼北のほうにもう一体見つけたんだ…

グーグルマップ ストリートビューで日本の原風景を味わう 国道197号+320号編(1)

今年の夏はどこへも行けそうにないので、気分だけでもと、Google ストリートビューで綺麗な風景を味わってきました。 山での涼と綺麗な田園風景を目の保養にと選んだのは国道197号 + 320号。 この道は交通量も少なく道も綺麗で、免許取り立ての頃、よく友人…

Python scikit-learn DBSCANでクラスタリングする

DBSCANとは DBSCANはクラスタに属さないデータポイントも判別できるアルゴリズム。 各データポイントは距離esp内にmin_samplesの他データポイントがあるか確認し、存在する場合は範囲内のデータポイントをクラスタ化する。 距離esp内のデータポイントがmin_s…

Python scikit-learn 凝集型クラスタリングを使用する

凝集型クラスタリングとは データポイントを単クラスタと仮設定し、最も似たクラスタ同士を指定の数のクラスタ数になるまで集めていく。 また、クラスタの結合は少ない数のクラスタ同士で結合していこうとする。 "最も似た"のアルゴリズムは以下の3種類があ…

Python scikit-learn k-meansでクラスタリングする

k-means クラスタリングとは 指定したクラスタの数の重心点を配置し、最も近いデータポイントに対して1次クラスタ分けを行う(Assign Point(1)) 各クラスタごとの重心点をクラスタの重心に合うよう移動させていく(Recompute center(1)) 重心点を移動させたこ…

Python scikit-learnでt-SNE 多様体学習を可視化する

t-SNE 多様体学習 高次元データの各データポイントの類似度を距離として計算し、2次元(または3次元)空間に配置したランダムな点に距離を元にして配置していく。 2次元または多くても3次元に圧縮するのが一般的らしい。また、学習モデルを別の行列に対してtra…

Python scikit-learnでNMF分解を行う

非負値行列因子分解(NMF)とは、PCAと違って、第2成分以降が直交するベクトルではなく、すべてのベクトルが正の方向指す分析ベクトルとなる。 特徴量ごとにまとまりのあるデータに対しての特徴が掴みやすくなる。らしい。 元となる行列に近似する行列Yとなる…

Python scikit-learnで主成分分析を行う

主成分分析とは、多次元の特徴量(説明変数)を統合して、次元削減を行う手法。総合的な特徴量を表す第一成分とそれに直交する第二成分以降からなる。統合する特徴量は元となる特徴量の相関行列から計算する。 左上の散布図に対して、主成分分析を行った時、右…

Python scikit-learn preprocessingでデータセットのスケール処理を行う

sklearn.preprocessingの各メソッドを利用してデータセットのスケール処理を行えます。 スケール処理とは、標準化のようにデータ分布の性質を変えずにデータの値の増減を行うこと。 各メソッドは以下の通り。 StandardScaler 標準化、平均値を0、分散を1にす…

書籍:Pythonで実装、はじめての機械学習: 単純パーセプトロン、ニューラルネットワーク、ディープラーニング

ニューラルネットワークの逆伝播について勉強したかったので、購入しました。 購入といっても、Kindle unlimitedで読み放題で読める電子書籍となります。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScr…

Python scikit-learnでクラス分類推定度を確認する

scikit-learnの各分類モデルにはdecision_function、predict_probaといった分類確信度のスコアを取得できるメソッドがあります。 各分類モデルで学習データをfit後、各メソッドに予測を行うデータセットを与えることで確信度を確認することができます。 2ク…

Python サポートベクタマシンで非線形データを分類する

以下のコードでは「Pythonではじめる機械学習」の著者が公開しているmglearnを使用します。 $ pip install mglearn (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.sc…

書籍:Python実践データ分析100本ノック

scikit-learnを触ってて、もうちょっとpandasでの前処理やmatplotlibを勉強したいなと思って購入。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2]…

Python Docker Anaconda環境でMeCabを利用する

MeCabのインストール ! apt-get install -y mecab libmecab-dev mecab-ipadic mecab-ipadic-utf8 file ! pip3 install mecab-python3 これだけでは、以下のようにmecabrcがないと怒られるので、 # no such file or directory: /usr/local/etc/mecabrc mecabr…

Python OoenCVでavi形式の動画を画像として分割保存する

VideoCaptureとimwriteすることで、avi形式のフレームごとに画像として書き出すことが可能です。 import cv2 cap = cv2.VideoCapture("moviefile.avi") num = 0 # 出力 while(cap.isOpened()): ret, frame = cap.read() if ret: filepath = "split_"+str(num…

Python Dlibで人物正面の顔パーツを検出する

Dlibのインストール Docker Anaconda環境にDlibをインストールする - 追憶行 僕の環境ではインストールに30分程の時間を要しました。 検出モデルの設定 顔のパーツの検出モデルはDlibのページからDLできます。 http://dlib.net/files/shape_predictor_68_fac…

Python OpenCVで画像内の正面を向いた顔の検出を行う

検出モデルの設定 人物正面のフェイスを検出するモデルは以下のGitHubから取得できる。 opencv/haarcascade_frontalface_alt.xml at master · opencv/opencv · GitHub import cv2 cascade_file = "haarcascade_frontalface_alt.xml" cascade = cv2.CascadeCl…

Python OpenCVでHOG人型特徴量の検出 

OpenCVは学習済みHOG人型特徴量を持っているので簡易的に画像内の人型物体を検出できます。精度はお察し(^_^;) OpenCVのインストール $ pip install opencv-python 人型検出を行う HOGの設定 "ヒト"のHOG特徴量を設定 import cv2 from matplotlib import pyp…

Docker Anaconda環境にDlibをインストールする

Dlibは人間の表情の特徴を捉えることができるPython用ライブラリ。 Docker anaconda環境でインストールするのに結構ハマってしまったので、記録しておきます。 インストールを行うにはcmakeが必要になるので、notebook上では以下のように記述してインストー…

Python networkxで情報伝播グラフを可視化する

グラフデータに対して情報伝播を可視化していく実装を記録しておきます。 基底グラフ 予めnetworkxで以下のグラフを作成しているものとします。 import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() # ノードとエッジの作成処理 # ...略 …

Python networkxでネットワークグラフを描画する

networkxを利用するとPyhotnで簡単にネットワークグラフを描画することが可能です。 例えば以下のようなグラフは このようなコードで描画することができる。 import matplotlib.pyplot as plt import networkx as nx #グラフオブジェクトの初期化 G=nx.Graph…

Python ortoolpyで最適化問題を解く

"Python実践データ分析100本ノック"、この本を進めていて少し理解に時間がかかったところをメモしておきます。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.script…