サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
中東情勢
qiita.com/yshi12
何をするか? こういうのやりたい。 すなわち、写真の中に検出したいものが写っていたら、その座標を特定する。 どうやってやるか? openCVで、HOG特徴量(輝度の勾配で作る特徴量)やHaar-Like特徴量(画像の明度で作る特徴量)と正解ラベルを用いて、複数の弱学習器を作って、boostingして判別。 openCVは、pyenvでanacondaインストールからのconda install -c https://conda.binstar.org/jjhelmus opencvでサクッと入る。 pyenvとかanacondaはググれば沢山方法が出てきます。 レッツトライ 0 ディレクトリ構成 1 学習用の正解データ情報を作成 2 学習用の不正解データ情報を作成 3 positiveのベクトル作成 4 学習器作成 0 ディレクトリ構成 任意のディレクトリ/ ├data/ │ ├pos/
from flask import Flask app = Flask(__name__) # http://127.0.0.1:5000をルートとして、("")の中でアクセスポイント指定 # @app.route("hoge")などで指定すると、http://127.0.0.1:5000/hogeでの動作を記述できる。 @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": # webサーバー立ち上げ app.run()
ロジスティック回帰とは 線形回帰と似ているが、目的変数が2値のときに利用する。 例えば、この人は商品を購入するか否か、棒に当たるか否か、引っ越すか否か、転職するか否かなどなど。 予測モデルを、以下のロジスティック関数(シグモイド関数)を使って作成。 ロジスティック関数の形は以下となる。0〜1の値を取り、単調増加。 目的変数の行列xと説明変数yの関係は以下。(y=ax+bの右辺をexpの-1乗する形。) 利用データ用意 sklearnで不倫用のデータを使う。 from sklearn.linear_model import LogisticRegression # ロジスティック回帰用 from sklearn.cross_validation import train_test_split # クロスバリデーションのsplit用 import statsmodels.api as sm d
決定木とは 目的変数に属する確率を複数の説明変数の組み合わせで算出する方法。 イメージは以下で、Yes/Noなどの条件に属するかどうかで確率を算出する。 ランダムフォレストとは ランダムフォレストは、アンサンブル学習法(複数の分類器を集めて構成される分類器)の一つ。 決定木を複数集めて使うので、木が集まってフォレスト(森)として使う。 やってみる(sklearnでの決定木) データ用意 ランダムに作ったデータを用意する。 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn %matplotlib inline from sklearn.datasets import make_blobs # ダミーデータの生成用 X, y = make_blobs(n_samples=5
K近傍法とは KNN(K Nearest Neighbor)。クラス判別用の手法。 学習データをベクトル空間上にプロットしておき、未知のデータが得られたら、そこから距離が近い順に任意のK個を取得し、多数決でデータが属するクラスを推定する。 例えば下図の場合、クラス判別の流れは以下となる。 1 既知のデータ(学習データ)を黄色と紫の丸としてプロットしておく。 2 Kの数を決めておく。K=3とか。 3 未知のデータとして赤い星が得られたら、近い点から3つ取得する。 4 その3つのクラスの多数決で、属するクラスを推定。 今回は、未知の赤い星はClass Bに属すると推定する。 ※Kの数次第で結果が変わるので注意。K=6にすると、赤い星はClass Aと判定される。 利用データ用意 sklearnでirisのデータセットを用意。 from sklearn.datasets import load_
SVMとは Support Vector Machineの略。 学習データを用いて複数のクラスを分類する線を得て(学習モデル作成)、未知のデータ属する分類を推定する方法。 SVMでの分類の概要 元の次元から1つ低い平面を超平面と呼び、最適な超平面(分離面)を探す。 例えば下図だと、黒丸と白丸を分離する線(H1やH2)を引くことを実施する。 (この図は、X1とX2の二次元のデータを表しているが、H1やH2は直線で1次元。 もし三次元のデータがインプットなら、2次元で分類できる平面を探すことになる。) 最適な分離面の探し方は、マージンが最大になる分離面を探索する。 マージンとは、図でいう灰色の線で、各クラスの点から分離面への垂線の距離。 例えば、H1もH2も黒丸と白丸を分類する分離面と言えるが、マージンが大きいH2の方が分類力が高い。(H3は分類すらできてないので全然ダメ。) カーネルトリック
このページを最初にブックマークしてみませんか?
『@yshi12のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く