2014-01-01から1年間の記事一覧

CourseraのData Analysis and Statistical Inference 最終週

Data Analysis and Statistical Inference | Coursera 最終週の受講メモ。最終週は、おまけとしてベイジアンの話題を扱う。そして最終試験を受けた後、成績が返ってきた。 Video Review - Frequentist vs. Bayesian Inference 例題 M&Mの、黄色の割合を推論…

CourseraのData Analysis and Statistical Inference Week 8

Data Analysis and Statistical Inference | Coursera Week 8の受講メモ。今週はmultiple linear regression(重回帰分析)を扱う。検定以降の節はほとんど理解できていない。 Video Unit 7 Part 1(1) Multiple Predictors 例: 本の重さを、ページ数と、カバ…

OpenCV 2.xで1次元のヒストグラム画像を生成する

OpenCV 2.xでヒストグラム画像を生成する方法を調べました。結論から言うと、ヒストグラムを生成する関数はあるんですが、それを画像として表示する簡便な方法はないようです。いくつかのサイトを参考にして、自分でもヒストグラム画像を作成してみました。W…

CourseraのData Analysis and Statistical Inference Week 7

Data Analysis and Statistical Inference | Coursera Week 7の受講メモ。今週は数値データと数値データとの関連性を扱う。具体的には線形回帰。 Video correlation correlation coefficient 2つのnumerical variableの結合の強さを表す 絶対値が大きいほど…

Linuxのターミナルにて、アニメーションを表示する

C++

昨日の記事と似たような感じで、エスケープシーケンスを使ってアニメーションを表示することもできる。今回もLinux系のターミナルでないとうまくいかないはず。 アニメーションには、printf("\033%dA", 10)とするとカーソルが10行分上に上がることを利用する…

Linuxのターミナルにて、C言語の出力に色を付ける

Linuxのターミナルにて、C言語の出力に色を付ける方法。c - Making some text in printf appear in green and red - Stack Overflowより。Windowsだとうまくいかないはず。 #define RESET "\033[0m" #define BLACK "\033[30m" /* Black */ #define RED "\033…

CourseraのData Analysis and Statistical Inference Week 6

Data Analysis and Statistical Inference | CourseraのWeek 6の受講メモ。今週はカテゴリカルデータに関する検定などもろもろ。目的と、そのための手法がいくつも紹介されて、正直消化不良気味。 今週からMathJaxを使って数式を表示してみた。綺麗に数式が…

hatenablogでMathJaxを使って数式を挿入

2014/7/27追記:はてなブログがデフォルトでMathJaxに対応したので以下の処理は不要になりました。参考:はてなブログの LaTeX 数式表示がデフォルトで MathJax 化された - 余白の書きなぐり MathJaxを使う準備 ダッシュボード→デザイン→カスタマイズ→サイド…

CourseraのData Analysis and Statistical Inference Week 5

Data Analysis and Statistical Inference | CourseraのWeek 5の自分用受講メモ。Week 4は中間試験のためなし。 Video paired dataの検定 paired dataの例: 各学生のreadの成績データとwriteの成績データ これらの平均値に差があるかどうか検定するには、各…

Googleで2進数、10進数、16進数の変換を簡単に行う

ちょっとしたテクニック。 2進数に変換 数字の後ろに"in binary"とつける。 16進数に変換 数字の後ろに"in hex"とつける。 10進数に変換 数字の後ろに"in decimal"とつける。

OpenCVのビルド情報を表示する

Qt版で追加された関数 — opencv 2.2 (r4295) documentation に載っている新しいUI cvCreateButton() を試そうとしたところ、以下のリンクエラーが出てビルドできなかった。 エラー 2 error LNK2019: 未解決の外部シンボル _cvCreateButton が関数 "int __cde…

OpenCV 2.xでトラックバーを使ってみる

またOpenCVの記事。この間作ったSURFの特徴点を表示するプログラムを改造して、あるスコア以上の特徴点のみを表示するようにしました。下図がその例です。response値が2397以上の特徴点のみを表示しています。 トラックバーはcv::createTrackbar()により実現…

OpenCVのcv::Matで部分行列を作成する方法

OpenCVのcv::Matにて部分行列をスライスして作るよい方法があったのでご紹介します。 例えば 1 2 3 4 5 6 7 8 9 という行列の、左上の2x2の部分からなる部分行列 1 2 4 5 を作るサンプルは以下の通り。 cv::Mat m1 = (cv::Mat_<double>(3, 3) << 1, 2, 3, 4, 5, 6, 7</double>…

OpenCV 2.xでマウスコールバックなGUI

OpenCV 2.x系で、ウィンドウを表示してその上でマウスのクリックイベントを取得するGUIのサンプルです。OpenCV Tutorial 3のコードを大いに参考にしています。ただしC++系の関数に書き換えています。 基本的な流れは以下のようになります。 namedWindow()で…

CourseraのData Analysis and Statistical Inference Week 3

Data Analysis and Statistical Inference | CourseraのWeek 3の受講メモ。今週は、母分散が既知の場合の平均値の検定がテーマ。大学の教養で習っているはずの話だが理解が怪しい。講義を受けた後でもやっぱり怪しい。理解不十分なメモをWebにUPするのは害悪…

Google計算機で転送速度に関する計算を一瞬で

Google検索がもつ計算機機能を使うと、面倒な転送速度にまつわる計算が一瞬でできます。 例題1: 700MBのイメージファイルを30Mbpsの回線でダウンロードするのにかかる時間は? 小学校で習う(距離)=(速度)×(時間)と同様、 (データ量)=(転送速度)×…

OpenCV 2.xでSURFを用いて特徴点を抽出、描画

表題のことを単にやってみました。環境はWindows 7 + Visual Studio Express 2013 + Opencv2.4.8です。 ヘッダのインクルード 必要なファイルを以下のようにインクルード。SURFはSIFTと同じく特許が取られていて商用利用できなかったはずなので要注意。イン…

ReadyNAS 102をPCと直接接続する

先日NETGEAR社のReadyNAS 102を購入(Amazon.co.jpアソシエイト: NETGEAR Inc. ReadyNAS 102 【3年保証】 2ベイ Diskless RN10200-100AJS)。お手軽にNASを構築できるので気に入っている。 ReadyNASはハブや無線LANルータなどに繋いで使うのが普通だと思う…

CourseraのData Analysis and Statistical Inference Week 2

Data Analysis and Statistical Inference | CourseraのWeek 2を引き続き受講。今週は高校でも習うような確率の基本的な話の復習から始まり、正規分布と二項分布を扱った。 Video 確率のイントロ gambler's fallacy disjoint events(背反事象) mutually excl…

CourseraのData Analysis and Statistical Inferenceを受講開始

こないだ受講終了したMachine Learning | Coursera(Gradingは99.9%。もう少しクイズを頑張っていれば満点だったが…)に引き続き、Data Analysis and Statistical Inference | Courseraを受講開始。 Week 1では、Videoによる学習と、Rの練習を行った。 Video…

Python 3でm x nの2次元配列を定義する

たとえば3x5の2次元配列(要素はすべて0)を定義するには以下のように書く。 >>> matrix = [[0 for i in range(5)] for j in range(3)] printすると以下のようになる。 >>> print(matrix) [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

正規表現の分類

正規表現には多くのバリエーションがあり、かなりややこしい。おおまかに分類すると以下のようになる。 Basic Regular Expression(BRE) もっともしょぼい正規表現。 例: grepやsedのデフォルト Extended Regular Expression(ERE) BREを少し拡張したもの。 …

Visual Studioのマクロ($(SolutionDir)とか$(Configuration)とか)に関するメモ

例えば、C:\somewhere\your_appliフォルダがVisual Studio C++のソリューションフォルダだとする。この下に、some_projectプロジェクトとother_projectプロジェクトがあるとする。普通以下のような構成になる。 C:\somewhere\your_appli\ your_appli.sln Deb…

Python 3に再入門中 - Dive Into Python 3 と Check iO

Pythonを本格的に習得しようと勉強を始めた。まずはPython 3のチュートリアルである 目次 - Dive Into Python 3 日本語版 を12章まで読み終わった。このチュートリアルは明快で面白く読み進められるのでかなり良かった。練習したことを忘れにくくするためにm…

LAN, USB, HDD 転送速度の比較

ネットワークのボトルネックが知りたくなって、転送速度を調べてみた。 無線LAN 802.11b 11Mbps 802.11g 54Mbps 混雑した周波数帯なので遅くなりやすい 802.11a 36~54Mbps 802.11n 600Mbps 実効速度は100~200Mbps 製品の最高速度は150Mbpsや300Mbps 802.11…

bash/zshで連番を生成

bashまたはzshで $ echo {1..10}.jpg とすると、 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg 10.jpg と連番ファイルが生成できる。0埋めしたい場合は $ echo {001..10}.jpg とすると、 001.jpg 002.jpg 003.jpg 004.jpg 005.jpg 006.jpg 007.jp…

現在のディレクトリ以下のファイルすべてに対してテキスト置換

zshの**を使った再帰検索と、sedを組み合わせると一行で書ける。 以下は、現ディレクトリ、またはその下にあるすべてのサブディレクトリに存在する、すべてのPythonファイルに対して、文字列beforeを文字列afterに書き換える例。 sed -i 's/before/after/g' …

#!/usr/bin/env と #!/bin/env のどちらを使うべきか

Linux系のスクリプトの一行目に書くシェバン (shebang)で、envを使うテクニックがある。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- a = [1,2,3] … 自分の手元の環境(Cygwin)にてwhere envとすると、以下の2つが見つかる。 /bin/env /usr/bin/env sheb…

Gitのコミットログは過去形ではなく現在形(=命令形)で

git

Gitのコミットログには、現在形で書く流派と過去形で書く流派がある。 どちらにすべきか決めかねていたが、Should I use past or present tense in git commit messages? - Stack Overflowを見て現在形、より正確には命令形を使うことに決めた。その理由は G…

Unicode/UTF-8/UTF-16/UTF-32の違い

Python3を勉強している間に読んだ記事 文字列 - Dive Into Python 3 日本語版 中のUnicode/UTF-*の説明がとてもわかりやすかった。以下はそれを自分用に乱暴にまとめたもの。 Unicode すべての言語のすべての文字を表現するために設計されたシステム すべて…