stMind

about Tech, Computer vision and Machine learning

機械学習

libsvmでSVM

mlpyのlibsvmでSVMを体験。kernel_typeを色々変えことで識別が出来る/出来ないを視覚的に理解できる。 import numpy as np import matplotlib.pyplot as plt import mlpy f = np.loadtxt("spiral.data") x, y = f[:,:2], f[:,2] svm = mlpy.LibSvm(svm_type…

Numpyのlinalg.lstsqの覚書

ヘルプはnumpy.linalg.lstsq ― NumPy v1.7.dev-3cb783e Manual (DRAFT)か、ipythonでhelp(linalg.lstsq)として確認できる。 lstsq(a, b, rcond=-1) 最小二乗解を計算する ax=bを||b-ax||^2を最小にするベクトルxを求める事により解く パラメータ 係数行列a(…

OSXにApache Mahoutをいれる

すべては機械学習/MacでMahoutを使う - とうごろうぃきを参考に。mlpyもそうだけど、機械学習アルゴリズムをちょっと試したいと思った時に、そもそもライブラリのインストールのハードルが高いなぁと感じた。使うまでに挫けてしまいそう…インストールしたバ…

mlpyのBasic Perceptron

今日もmlpyを試す。 perceptron.py 単純パーセプトロンのクラス。learnメソッドの中で学習を行なっている。アルゴリズムとコードの対応を見ていくと、入力ベクトルxarrと重みにバイアスノードを加えて、0より大きい場合は1を、0以下の場合は0を出力し、誤差…

OSX Lionにmlpyをインストール

以前としてunit testには失敗するけど、ipythonからmlpyをインポートして使うことが出来るようになったのでそこまでをまとめておく。 必要なもの mlpyのインストール説明によると、以下のものが必要。 GCC Python >= 2.6 or 3.X NumPy >= 1.3.0 (with header…

MLPのサンプルコードをRegression Problemで動かしてみる

ここで公開されてる3章のMulti Layer Perceptronを使う。実行はipythonで。 A Regression Problem シンプルな関数を使ってサンプル集合を生成し、そのサンプル集合が生成された関数を学習により得る 例ではsin関数 Step by Step 1. データセットを作る x = o…

Multi Layer Perceptronについて 概略編

Multi Layer Perceptron(MLP) 多層パーセプトロン 入力層(Input Layer)と出力層(Output Layer)の間に1以上の隠れ層(Hidden Layer)を持つ 線形分離不可能な場合に対応可 Regression, Classification, Time-series Prediction, Data Compression等に使…

mlpy (Machine Learning Python)

mlpy - Machine Learning Pythonpythonの機械学習ライブラリでmlpyというのがあるみたいだ。Featuresを見ると、 Regression: Least Squares, Ridge Regression, Last Angle Regression, Elastic Net, Kernel Ridge Regression, Support Vector Machines (SVR…

機械学習ライブラリollを試す

Machine Learningの本だけを読んでいてもわからないので、色々な機械学習ライブラリを実際に動かしてみよう!ということで今回は、パーセプトロンを最近学習したので、パーセプトロンが使えるollを試してみます。 oll-0.3.tar.gzをダウンロードして、configu…

単純パーセプトロンのアルゴリズム

Machine Learning: An Algorithmic Perspective (Chapman & Hall/Crc Machine Learning & Patrtern Recognition)作者: Stephen Marsland出版社/メーカー: Chapman and Hall/CRC発売日: 2009/04/08メディア: ハードカバー クリック: 25回この商品を含むブログ…

Machine Learning ラーニングのためのPythonライブラリをインストール(最低限)

最低限、この3つがあればMachine Learning本のプログラムは手元で試すことが出来そう。 numpy matplotlib scipy ということで、自分の環境 Python2.7.1 MacOSX Lion 10.7.3 でのインストール方法の記録。unit testを通すのは時間がかかりそうだったので、こ…

perl de 集合知プログラミング(7) 2章完

2章の残り 今回は、2.7「アイテムベースのフィルタリング」で推薦を行うところと、2.8の「MovieLensのデータセットを使う」ところを実装しました。これで、エクササイズが残っていますが、2章「推薦を行う」が完了しました!2.8は単にデータファイルを取り込…

perl de 集合知プログラミング(6.5)

2.7 アイテムベースのフィルタリング ここではアイテムベースのフィルタリングを実装してみます。アイテムベースの協調フィルタリングでは、あるユーザへ推薦を行う際に、アイテム間の類似度を基に、そのユーザが高く評価しているアイテムと似たアイテムを提…

perl de 集合知プログラミング(5.5)

今までソースコードの中にデータセットを直接書いていましたが、データセットのファイルを別に用意して読み込むように変更しました。 データセット 用意したのは、以下のようなJSONフォーマットのファイルです。 ciritics.json { "Lisa Rose" : { "Lady in t…

perl de 集合知プログラミング(5)

2.5 似ている製品 2章も半分まで来ました。今回は、ユーザではなくアイテムを軸にして、あるアイテムと類似しているアイテムを推薦するサンプルです。類似性スコアを算出するサブルーチンはそのまま使えて、入力として与えるハッシュのキーであるユーザとア…

perl de 集合知プログラミング(4)

2.4 アイテムを推薦する 今回は、ユーザ間の類似性スコアとアイテム(作品)の評価点を用いて作品をランキング化して提示するサンプルを実装しました。getRecommendationsサブルーチンを追加しました。これまでとほとんど同じで、新たに使ったのはexists関数…

perl de 集合知プログラミング(3)

2.3.4 評者をランキングする 今日は2.3.4節を実装してみました。指定したユーザに最もマッチするユーザを求めるtopMathcesサブルーチンを作りました。topMatchesは、データセットとユーザ名に加えて、結果の数と類似性スコアを求める関数(のリファレンス)…

perl de 集合知プログラミング(2)

ピアソン相関係数による類似性判定 2.3.2節のピアソン相関によるスコアを実装してみました。相関係数の計算は、集合知プログラミングの付録にある数式ではなく、Wikipediaにある以下の数式を使って求めました。 相関係数 出来たもの ユークリッド距離の時と…

perl de 集合知プログラミング(1)

集合知プログラミングを題材に、機械学習とperlを学んでいこうと思っています。 ユークリッド距離を基にした類似性判定 今回は、2章の協調フィルタリングの中の2.3.1節をperlで実装してみました。pythonのサンプルコードをそのままperlにしただけです。 #! /…