sonoshouのまじめなブログ

情報系大学生からのウェブ見習い人生の記録

プログラミング

サポートベクターマシンを勾配法で解く。

最も代表的な教師あり分類手法の一つであるサポートベクターマシン。 訓練サンプルから、各データ点との距離が最大となるマージン最大化超平面を求めるという明確な分類基準がある、かつ、一見求めづらそうなこの超平面を一意に求められるということから 数…

自己組織化写像をprocessingで実装する。 part.3

さて、前回のエントリーで自己組織化写像のアルゴリズムを紹介しました。 復習の意味も込めて、再掲致します。 1.全重みベクトルをランダマイズする 2.入力ベクトルを一つ用意する 3.各ノードを検査して、最も一致値が小さいノードを見つける。(BMU) 4.BMUの…

自己組織化写像をprocessingで実装する。 part.2

3次元の色データを2次元にマッピングする自己組織化写像 さて、前回のエントリーでハニカム構造を作りました。 この後はどのようなデータを扱っていくかによって実装が変わってくるのですが、 今回は3次元の色データを2次元にマッピングする自己組織化写像の…

自己組織化写像をprocessingで実装する。 part.1

はじめに 研究室の勉強会でこのたび自己組織化写像を実装することになった。 というわけで、自己組織化写像の実装過程をブログに書こうかなーっと。 久しぶりの更新で気合が入りますね! 自己組織化写像とprocessing 今回は実装にprocessingを選ぶことにしま…

python復習まとめ6

関数の引数をリストで渡す関数の引数をリストで渡すことができます。便利! def func(a, b, c): print a, b, c if __name__ == '__main__': f = func arglist = [1,2,3] f(*arglist) 関数のネストpythonは関数のネストに対応している。 すなわち、関数の中に…

非負値行列因子分解

このエントリーは、集合知プログラミング第8章を参照にしています。非負値行列因子分解は、データマイニングの手法の一つである。 データの重要な特徴を抽出するために用いられる。 非負値行列因子分解は、non-negative matrix factorizationの日本語訳であ…

減衰関数

機会学習(データマイニング)をしていると、 各要素の距離に応じた重み付けを行うことがある。 今回は、この時に使われる減衰関数に焦点当てる。このエントリーは、集合知プログラミング第8章を参照しています。 反比例関数 減法(引算)関数 ガウス関数 …

文章のカテゴリ分け

集合知プログラミング第6章を参考にしています。 集合知プログラミングのソースコードはこちらで公開されています。 http://examples.oreilly.com/9780596529321/本エントリーでは、文章の内容に応じて文章をカテゴライズ(分類する)方法についてです。 自…

最適化アルゴリズム

集合知プログラミングの第5章最適化の一部を自分なりにまとめます。ヒルクライム法(傾斜上り法) ヒルクライム法は、ある地点から少し値を変更し、 変更後の値が変更前の値より低ければ採用する。 これを繰り返して行けば、最小値へ近づくことが出来る。ヒ…

python復習まとめ5

リスト内包リスト内包は、シーケンス型(リスト、ディクショナリ、タプル)から リストを生成する簡単な表記です。 よくある使い方としては、あるシーケンスの要素それぞれに何らかの処理を加えて 新しいシーケンスを生成したり、 ある条件にかなう要素のみ…

python復習まとめ4

モジュールの例フィボナッチ数列の文字列から、モジュールについて学ぶ。 #fibo.pyの中身 def fib(n): a ,b = 0, 1 while b < n: print b, a, b = b, a+b print if __name__ == "__main__": import sys fib(int(sys.argv[1])) モジュールとして使う。 モジュ…

python復習まとめ3

リストについてリストオブジェクトのメソッドを以下に示す。 append(x)リストの末尾にアイテムを1つ追加する。 a[len(a):] = [x]と等価。 extend(L)リストの末尾に、与えられたリストLの全アイテムを追加することで、リストを延長する。 a[len(a):] = Lと等…

python復習まとめ1

pythonについて忘れてきたので復習。 やらなくなるとすぐ忘れてしまう……。四則演算+α >>> a = b = 2 #同時に代入可能。 >>> x , y = 2 , 3 #別の値も同時に代入可能。 >>> a+b 4 >>> 8/5 #切り捨てない。 1.6 >>> 7//3 #切り捨てるには//を使う。 2 >>> a=1…

python 機械学習 環境構築まとめ

pythonを使った機械学習の環境構築まとめです。 python (プログラミング言語) pydev (eclipseのpython環境構築プラグイン) numpy (数学関数ライブラリ) scipy (数値解析ライブラリ) matplotlib (グラフ描画ライブラリ) cvxopt (最適化計算ライブ…

Byte Order Mark

Byte Order Mark(BOM)についての知識がなかったために、 プログラミング中悩んでしまったのでメモ。 BOMとは UnicodeのUTF-16など16ビット幅のエンコーディング方式において、 エンディアンを指定するためにファイルの先頭に記入される16ビットの値。 http:/…

matplotlib を使ってグラフを簡単表示

機械学習の勉強をしていく中でグラフを描画して、 機械学習の過程と結果を見たいことが増えてきました。というわけで、 Pythonを使って簡単にグラフ描画できるライブラリと高水準の数学関数ライブラリを導入してみたいと思います。Matplotlib (簡単にグラフ…

ゲームについて

ゲームについて学ぶ機会があったので、メモしておこうかと。 プログラミングでゲームをつくるときのチップスですね。 ゲームとは、ルールとそれを守らせる力である。ゲームの面白さ圧力と解放 偶発性 見立て 推理と嘘 創造性ゲームの心理学モンタージュ理論 …

Scala 関数型 の勉強をしてみた。

Scala言語と関数型の考え方の勉強をしてみた。卒業論文・・・・・・。一通り本で学んだのだが、まだ身についていない感じ。 やはりコードを書かないと。 複数の言語で関数型言語風の関数(メソッド)を書いてみた。2つの引数の間の数を足し合わせる関数(メソッド…

iOSメモ6 〜Objective-C〜

学習の記録を自分用にメモしようかと。 従って、この記事だけを読んでも何もわかりません……。C言語と異なり混乱しそうなところをピックアップ。 変数や制御分、コメントの使い方はC言語とほぼ変わりません。文字データ文字データを扱うときは、「NSString」…

formからjavascriptへ値を渡してhtmlで表示する

主にjQuery Mobileなどのちょっとしたウェブアプリでまた使いそうなのでメモ。formのtype=textで値を入力できるようにし、送信ボタンでfunc()を呼び出す。 その後、func()内で入力した値を受け取り、再度値をセットする。そんな、サンプルコード。index.html <script type="text/javascript" src="func.js"></script>…

jQuery Mobileの導入

jQuery Mobileを導入備忘録を。 jqueryとjquerymobile本体を読み込ませる方が簡単なのですが、 個人的にあまり好まないので、元ファイルをダウンロードして参照する方法を紹介します。 1.jquerymobile.comからZip Fileをダウンロード。 2.Zipファイルを解凍…

Scala IDE for Eclipse インストール

インストール ScalaをEclipseで走らせるためのplugin Scala IDE for Eclipse のインストール方法です。 Eclipse日本語版とJDKがインストール済みの場合の説明になります。 1.ヘルプ → 新規ソフトウェアのインストール 2.Scala IDE for Eclipse - DOWNLOADSに…

PyDev インストール

Pythonをeclipseで走らせるためのPyDevのインストール方法です。PyDevを使うためにはPythonの実行環境が必須です。 Pythonをインストールしていない人は、まずPythonをインストールしましょう。Python インストール 私は日本語化を行ったeclipseを使ってみま…

Python インストール

Python インストールPython Japan User's Group http://www.python.jp/Zope/download/pythoncore ここからPythonをダウンロードしてインストールすれば完了です。 以下私の環境でのインストール方法になります。環境: Windows 7 64bit versionインストール…

幅優先探索 迷路を解く

迷路を解くときに使うアルゴリズムは複数ありますが、 今回は幅優先探索を用いて、迷路を解く学習をしました。 (主に友達から聞いて。)大きく分けて、深さ優先探索と幅優先探索がありますが、 幅優先探索の場合は迷路を解くのと同時に、最短経路のステップを…