読者です 読者をやめる 読者になる 読者になる

csvファイルの読み込み

python

読み込み(入力)

  • csvモジュール
import csv

f = open('data.csv', 'rb')

dataReader = csv.reader(f)

for row in dataReader:
    print(row)
  • pandasモジュール
import pandas as pd

data = pd.read_csv('data.csv')

書き出し(出力)

import csv
 f = open('output.csv', 'w')
writer = csv.writer(f, lineterminator='\n')

csvlist = []
csvlist.append("data1")
csvlist.append("data2")

writer.writerow(csvlist)

f.close()

自己組織化マップ(SOM: Self-organization maps)

自己組織かマップは、多次元データの順序付けられた代表(=秩序だった表現)を作成するもので、複雑さを単純化し、有意義な関係性を明らかにするために使用されている。
教師なし学習を行うニューラルネットの一種である。
SOMはn次元ベクトルを平面に写像する方法。

MPEG-7

そもそもMPEGって何?
MPEGとはISO(国際標準化機構)の「Moving Picture Expert Group(動画の専門団体)」による規格のこと。

MPEG-7はMPEG-1,2,3などとは異なり、動画データのエンコードが目的ではなく、XMLをベースとしたメタデータ記述によるマルチメディアデータの高速な内容検索を目的としている。 MPEG-7は、IOSで策定された、マルチメディアコンテンツを有効に検索するための記述方法に関する国際標準規格である。

ちなみに正式名は「multimedia content description interface」とのこと。

MPEG-7のアプローチ
MPEG-7は大きく二つの方法からアプローチしている。

一つは、コンピュータで処理が可能な信号レベルの特徴を記述しておき、自動的に抽出した特徴と照合する方法である(記述子)。
ex) 色ヒストグラム、輪郭線分布、色分布、オブジェクト形状など

もう一つは、人間が判断した特徴をメタデータとして映像に埋め込んでおくといった方法である(記述スキーマ)。
ex)野球の映像でそれぞれのシーンごとに、試合日、イニング、球場名、球種、バッティング結果など

OpenCVの動画のプロパティを取得する

// 動画読み込み
cv::VideoCapture video("filename");
// 画像の幅
int width = video.get(CV_CAP_PROP_FRAME_WIDTH);
// 画像の高さ
int height = video.get(CV_CAP_PROP_FRAME_HEIGHT);
// 総フレーム数
int count = video.get(CV_CAP_PROP_FRAME_COUNT);
// fps(frame per sec)
double fps = video.get(CV_CAP_PROP_FPS);

std::stringをconst char*に変換

#include<iostream>

int main(int argc, char* argv[])
{
    std::string str("string");
    const char* cstr = str.c_str();
    return 0;
}

ファイルの存在を確認する

C/C++
#include<Windows.h>
#include<iostream>
#include<Shlwapi.h>

#pragma comment(lib, "Shlwapi.lib")

int main(int argc, char* argv[])
{
    char path[] = "";
    if (PathFileExists(path))
    {
        std::cout << "file exists." << std::endl;
    }
    else
    {
        std::cout << "file doesn't exist." << std::endl;
    }
    return 0;
}

回帰分析

Statistics

回帰分析とは?
変数間の因果関係の方向性を仮定し、1つまたは複数の独立変数による従属変数の予測の大きさ(説明率)を検討する分析のこと。 - 単回帰分析:独立変数が1つの場合 - 重回帰分析:予測変数が2つ以上の場合

単回帰分析
単回帰分析では、独立変数 xと従属変数 yの間に、以下のような線的の関係があることを仮定する
単回帰モデル
 y=\alpha + \beta x+\epsilon
単回帰式
 \hat{y}=\alpha+\beta x

  •  y:実測値
  •  \hat{y}:予測値
  •  \alpha:切片
  •  \beta:傾き(回帰係数)
  •  \epsilon:残差

残差の最も小さい回帰式を求めたい ⇒ 最小二乗法
正規化方程式
 \sum \hat{\alpha} + \hat{\beta} \sum x_i = \sum y_i
 \hat{\alpha} \sum x_{i} + \hat{\beta} \sum {x_i}^{2} = \sum x_i y_i

これより最小二乗推定量は
 \hat{\alpha}=\bar{y}-\hat{\beta}\bar{x}
 \hat{\beta} = \frac{S_{xy}}{{S_x}^{2}} = \frac{cov(x_i, y_i)}{var(x_i)}

決定係数
単回帰式によって得られた予測値が、どれくらい実測値を予測できているかを評価したい。

実測値 yと平均値 \bar{y}の差は、予測値(回帰)による部分と、残りの部分(残差)に分けられる。
 (y-m)=(y-\hat{y}) + (\hat{y}-m)
ここで最小二乗法の代数的性質を求めて置く。

  1. 回帰直線は、標本平均点を通る
     \bar{y}=\hat{\alpha}+\hat{\beta}\bar{x}
  2. 残差の平均はゼロ
     \Sigma \hat{\epsilon}=0
  3. 残差は説明変数と無相関
     cov(x_i, \hat{\epsilon})=0 \sum (x_i - \bar{x})\hat{\epsilon_i}=0
  4. 残差は推定値と無相関
     cov(\hat{y_i}, \hat{\epsilon_i})=0 \sum (\hat{y_i}-\bar{y})\hat{\epsilon_i}=0

ここで回帰による偏差は、残差と無相関なので
 \sum (y_i - \bar{y})^{2} = \sum (y_i - \hat{y_i})^{2} + \sum (\hat{y_i} - \bar{y})^{2}
が成り立つ。 第一項を総平方和(Total Sum of Square)、第二項を説明された平方和(Explained Sum of Square)、第三項を残差平方和(Residual Sum of Square)と呼ぶことにする。

決定係数( R^{2})は回帰式の精度を表す指標である。
 R^{2}=\frac{ESS}{TSS}=1-\frac{RSS}{TSS}

重回帰分析
重回帰分析では、複数個の独立変数 x_1, \cdots, x_nと従属変数 yの間に、以下のような線形の関係があることを仮定する
重回帰モデル
 y=\alpha + \beta_1 x_1 + \cdots + \beta_n x_n + \epsilon
重回帰式
 \hat{y} = \alpha + \beta_1 x_1 + \cdots + \beta_n x_n

  •  \hat{y}:予測値
  •  \alpha:切片
  •  \beta:重回帰係数
  •  \epsilon:残差

偏回帰係数は他の独立変数の影響を除いた上で、ある独立変数の値が1変わった時に従属変数の値が平均的にどれだけ変化するかを示す。

偏回帰係数は、独立変数・従属変数の単位に依存するため標準化する