紙媒体で管理するとなくなりがちなのでブログで進捗などを管理することにしました
※殆どの記事は自分自身のためだけにかいています.他人に見せられるレベルには至っていません...

機械学習

確率分布書き方

ポアソン分布の作り方 import scipy.stats import numpy as np import matplotlib.pyplot as plt #figsize(12.5,4) lambda_ = [1.5, 4.25] colors = ["#348ABD","#A60628"] a = np.arange(16) plt.bar(a,scipy.stats.poisson.pmf(a,lambda_[0]),color=colors…

ベイズ推論イントロ

Pythonで体験するベイズ推論Pythonで体験するベイズ推論 PyMCによるMCMC入門作者: キャメロンデビッドソン=ピロン,玉木徹出版社/メーカー: 森北出版発売日: 2017/04/06メディア: 単行本(ソフトカバー)この商品を含むブログを見るから, ベイズ推論について…

【scikit-learn】Ridge回帰【その2】

RidgeCVというモデルがあるらしい. CVとはCrossVaridationのことで,正則化パラメータαに交差検証を用いる方法である. これによって最適なαを自動で求めてくれるそう. reg = linear_model.RidgeCV(alpha= [0.1, 1.0, 10.0]) reg.fit(X_train, y_train) reg.al…

【scikit-learn】Ridge回帰

Ridge回帰は係数に対してを満たすを見つけるというもの. Ridge回帰による正則化係数と係数の関係を見てみる import numpy as np import matplotlib.pyplot as plt import sklearn.linear_model # 10*10の行列を作る X = 1. / (np.arange(1, 11) + np.arange(…

【numpy】行列操作【その1】

numpyの行列操作で面白い行列の作り方を知ったので書く. a = np.arange(1,11) b = np.arange(0,10) #b: [0,1,2,3,4,5,6,7,8,9] c = b[:,np.newaxis] #c: #[[0] # [1] # [2] # [3] # [4] # [5] # [6] # [7] # [8] # [9]] d = a + c #[[ 1 2 3 4 5 6 7 8 9 10]…

matplotlib.pyplotで一枚の枠に図を複数埋め込む方法

下のように宣言すればよい plt.figure() plt.subplot(y,x,i) これは文字列でもできるらしく,scikit-learnの公式documentではこちらの方が使用されていたため,文字列のほうが主流なのか? plt.subplot(211) plt.subplot(212) 正規分布を作る numpy.random.ran…

【scikit-learn】線形回帰

研究で識別/分類問題について実装することになるだろうので,scikit-learnの公式ドキュメント(http://scikit-learn.org/stable/index.html)のうち classificationを勉強していこうと思う. 今回は線形回帰について(なぜ回帰?)scikit-learnは #modelの定義 reg…

識別器に意図的に誤分類させる研究

識別器に意図的に誤分類を誘発させる研究の記事を読んだ. 今のプロジェクトが終わったらやってみたいのでメモ. https://www.mbsd.jp/blog/20170516.html https://www.mbsd.jp/blog/20170117.html

不均衡データへの対応

正例と負例の数が極端に偏っているデータのことを不均衡データという. 今回はBoW(Bag of Words)でスパムメールの判定をロジスティック回帰で行った. BoWでは大量の単語の集合のうち, 出現頻度の高い単語のみを残すためサンプル数の多いクラスに影響されてし…

教師あり学習分類問題の決定境界の可視化

パーセプトロン,SVM,ロジスティック回帰,ランダムフォレストなど「決定境界を求める」という分類問題を解く際に下のような2次元グラフで決定境界を可視化できると嬉しい. 今回は決定境界を引くアルゴリズムをまとめた. 手順は以下の通りである. 学習モデルで…

ベイズの定理

条件付き確率 事前確率P(A)についてBという事象が起こるという情報が与えられたときにAという事象が起こる確率を求めたい. AとBの同時確率を事前確率で割る. イメージとしてはこんな感じ. オレンジの確率を赤の確率で割る. ベイズの定理 結果がわかっている…

分類問題の手法

ロジスティック回帰 決定木 ランダムフォレスト ニューラルネットワーク SVM ロジスティック回帰の考え方・使い方 - TokyoR #33 from horihorio www.slideshare.net

【画像処理】画像機械学習の前処理

前処理フィルタについて | 画像処理.com | キーエンス 元の画像 グレイスケール 膨張フィルタ 収縮フィルタ 平均化フィルタ メディアンフィルタ 平均化フィルタ #coding:utf-8 """ $jupyter notebook $for python3.x """ from mpl_toolkits.mplot3d import A…

【Python】【画像処理】k-means法で画像を減色

上の画像を7色に減色した. ソースコードは適宜変数を付け足していったので自分でもわからなくなったので注意. #coding:utf-8 """ $jupyter notebook $for python3.x """ from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import nu…

【Python】【機械学習】3次元モデルのk-means

#for python3.6 from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np from sklearn.cluster import KMeans #サンプルを定義 a = [0.0,0.0,0.0] b = [0.1,0.1,0.1] c = [1.0,1.0,1.0] d = [0.9,0.8,0.7] e = [1.0,0…

【Python】3次元モデルのプロット

from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np x = np.arange(-3,3,0.25) y = np.arange(-3,3,0.25) X,Y = np.meshgrid(x,y) Z = np.sin(X) + np.cos(Y) fig = plt.figure() ax = Axes3D(fig) ax.plot_wiref…

k-means++法

k-means法ではセントロイドの初期値が不適切である場合, クラスタリングが上手く行かなかったり収束に時間がかかる場合がある. この問題の対策としては k-meansアルゴリズムを一つのデータセットで複数回実行し,誤差平方和から最も性能が良いモデルを選択す…

k-means法 準備

k-means法で理想的な結果が出せるようにデータを予めプロットしておく方法 # -*- coding: utf-8 -*- impo from sklearn.datasets import make_blobs import matplotlib.pyplot as plt X,y = make_blobs(n_samples=150, #サンプル点の総数 n_features=2, #特…

Irisのデータプロット

# -*- coding: utf-8 -*- impo import pandas as pd import matplotlib.pyplot as plt import numpy as np #データの取得 df = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data",header=None) df.tail() #1-100行目…

k-means法問題点

【k-means法の問題点】 空になるクラスタが存在する可能性があること.(Fuzzy C-means法(k-medoids)ではこの問題は生じない.) scikit-learnのk-means実装ではこの問題には対処できている. クラスタが空の場合,空のクラスタのセントロイドから最も離れているサ…

k-means法

k-means法はプロトタイプベース(prototype-based)クラスタリングというカテゴリに属している. アルゴリズムは以下の通りである.1.クラスタの中心の初期値として,サンプル点からk個のセントロイドをランダムに選びだす. 2.各サンプルを最も近いセントロイドに…

パターン識別

LBG+splitting εはセントロイドから最も遠い特徴ベクトルの1/100倍したベクトルの場合

アニメop顔検出器+分類器

うまく分類できないなもっと精度あげたい pic.twitter.com/nEsDQc7Vio— 雨宿まち (@vocky_Zn) 2017年3月31日今後すること トレーニング画像の種類を増やす. 出力層の出力を増やして分類の数を増やす.

【Python】namedtupple

>>>from collections import * >>> # Basic example >>> Point = namedtuple('Point', ['x', 'y']) >>> p = Point(11, y=22) # instantiate with positional or keyword arguments >>> p[0] + p[1] # indexable like the plain tuple (11, 22) 33 >>> x, y =…

CNNで画像の前処理

判定処理を行う入力画像の前処理 1.画像の周囲を切り落とす(Cropping) 2.画像のダイナミックレンジを平準化する(Whitening)トレーニングデータとして入力する画像にする前処理 1.画像の周囲をランダムに切り落とす(Random Cropping) 2.画像をランダムに左右…

【python】【機械学習】Jupyterの起動方法

jupyterはanacondaに入っている. $jupyter notebook $ipython notebook右上の選択画面からpython2を選んでコードを書く.

【TensorFlow】tf.Variableのトレーニング

sess = tf.Session() sess.run(tf.initialize_all_variable()) これを実行した時点でそのセッションにおけるtf.Variableの値が初期化される. 複数のセッションを宣言し個別に計算させることも可能.

機械学習とTensorFlow

機械学習の大まかな手順 1.教師データから未知のデータを予測する式を立てる. 2.数式に含まれるパラメータを評価する損失関数を用意する. 3.損失関数を最小にするパラメータを用意する.(勾配ベクトルが小さくなるように移動)で表され Xはトレーニングセット…

【DL】sigmoid関数, ReLU関数

sigmoid関数 import numpy as np def sigmoid(x): return 1/(1+np.exp(-x)) def main(): x = np.array([-2.0 ,1.0, 2.0]) y = sigmoid(x) print(x) print(y) if __name__=='__main__': main() 結果は下記 入力が小さいほど出力も小さい. 入力が大きいほど出…

クラスタリング

k-means法を用いてクラスタリングを行った. 元画像 2色 4色 8色 16色 32色 64色 128色 256色 1024色 1024色までいくとかなり立体感のあるものとなった. 1ピクセルあたり3バイト = (2^8)^3色を表現できるから1024色だからといって元画像に近くは難しい.