テック

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…

書籍: Go言語によるWebアプリケーション開発

2020年1月に購入し、途中ずっと積んでたんだけど、半年後ようやく再開し完走しました(^_^;) 以下のような"動く"アプリケーションをハンズオンで作成していきます。Webアプリケーション開発と名うってますが、CUIの作成もあります。 WebSocketを使用した双方…

線形回帰ウエイトの求め方メモ

メモ。 線形回帰のウエイトの求め方。 xは説明変数、yが実測値。Lは評価関数sum( (y[i]-(w * x[i])) ^2 ) 評価関数の式をウエイトWで微分した時に0となるウエイトWを求める。 これを式変形していくと最終的に以下の計算式になる。 c1 = 0; c2 = 0; for (i = …

リッジ回帰について

線形回帰では、実際の分布より学習した傾きが大きくなりオーバーフィッティング(過学習)で精度が出ない場合がある。 精度を出す場合、正則化(リッジ回帰、ロッソ回帰)を用いて精度の調整を行う。 計算方法 線形回帰のオーバーフィッティングは傾きが大きくな…

主成分分析と因子分析

メモ。 主成分分析 多次元からなる説明変数行列の次元の圧縮。 主成分に対しての説明変数のウエイトなんかもわかる。 主成分は総合的な評価。第2成分は主成分と直交する線。第2成分のあたりまで求めるのが一般的らしい。 重回帰分析に近いのかな。と思ったけ…

行列計算の復習

行列の足し算 行列の掛け算 行列どうしのかけ算は、「左の列数」と「右の行数」が等しくないとかけ算できない 計算結果の行列は左側の行数と右側の列数の行列となる 単位行列 単位行列はその対角成分に1が並び、他は全て0となる行列。 逆行列 ある行列と掛け…

統計データ 2変数の関連指標

2変数の相関は2つのデータの性質によって扱う指標を定める。 単相関係数 数量データと数量データの関連度合い。 偏差平方和 = sum( (x[i] - xの平均)^2 ) 単相関係数 = (x[i] - xの平均)(y[i] - yの平均)の積和 / srqt( xの偏差平方和 * yの偏差平方和 ) 相…

Docker NSQのConsumerへローカルGoプロセスから接続する

通常のNSQ、Consumerへの接続は、lookupdを通して、 q, err := nsq.NewConsumer("topic", "key", nsq.NewConfig()) ... if err := q.ConnectToNSQLookupd("localhost:4161"); err != nil { ... } のようにlookupdでConsumerを抽象化して接続するんだけど、do…

GoからDocker NSQへ接続する

現在、"Go言語によるWebアプリケーション開発"を手を動かしながら読んでいます。 chapter5.3まで完了したんだけど、書籍と違ってて少しハマったところをメモしておきます。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arg…

統計データ 標準偏差の求め方

カテゴリデータと数量データ 等間隔数値データ、つまり測れるデータを数量データ、測れないデータをカテゴリデータと呼ぶ。 数量データ 身長 体重 人口 金額 カテゴリデータ 感想や評価 級位、段位 出身地 級位、段位は等間隔の数値データのように見えるが、…

Go $GOPATH外でのプロジェクト時の独自パッケージインポート

$GOPATH外でGOプロジェクト作成時にプロジェクト内で作成したパッケージをimportする方法。 プロジェクトツリーは、 /project/ app/ main.go mylib/ mylib.go のような構成で、main.goから import "mylib" のように利用したい場合。 go modulesを利用するこ…

書籍: Elasticsearch実践ガイド

こちらの本もKindle unlimitedで読み放題で読めます。 日本語での書籍は比較的新しい表題の「Elasticsearch実践ガイド」とASCIIから出版されている「高速スケーラブル検索エンジン ElasticSearch Server」の2冊が有名。 但し、「高速スケーラブル検索エンジ…

Elasticsearch Analyzerで解析した文を検索する

Analyzer Analyzerは以下の処理を行うことを目的とした機能。 全文検索で利用する為にインデックス、クエリ文字列を単語分割する処理。 言語固有の表記揺れの吸収 表記揺れとは? ステミング 語形の変化 making -> make, dogs -> dog, 食べる|食べた -> 食べ…

Elasticsearch 基本的な検索クエリ操作

クエリ操作 基本型 $ curl -XGET 'http://localhost:9200/<インデックス名>/_search' パラメータ指定 (Query String) $ curl -XGET 'http://localhost:9200/<インデックス名>/_search?q=<フィールド名>:<検索ワード>' クエリDSL $ curl -XGET 'http://localh…

Elasticsearch7 構成概念とインデックスの基本操作

Elasticsearchを構成する概念 ドキュメント Elasticsearchに格納するデータの単位。RDBでいうところのレコードの概念。 primary keyとなるIDで管理され、ドキュメント作成時に指定可能。指定しなければ自動で採番される。 フィールド text型 格納する際、単…

Vue TypeScript Dataプロパティの型指定

よく忘れるのでメモしておきます。 以下の例ではObject型と定義したPosition型を持つdataプロパティの型定義の例。 export type Position = { lat: number, lng: number } export default Vue.extend({ data () { return { myProperty: {} as Object, balloo…

Vue TypeScriptでthisの型が推論できない件

TypeScriptでVueを記述していた時、this.propertyの参照が Property 'property' does not exist on type のようなエラーが出て、buildに失敗するような挙動になりました。 Vueインスタンスとしてコンポーネントを定義する export default { name: 'myPage', …