以前に MATLAB で書いた教師無しクラスタリング法 k-means のコードを、Python で書き直してみました。ほぼ初の Python コードなので、怪しいかもしれませんが、ひとまず動きました。↓ 初期状態 ↓ 1サイクル目 ↓ 2サイクル目 (収束) import numpy as np impo…
Python の最強 IDE ともいわれる PyCharm をインストールしてみました。まだぜんぜん使いこなせていませんが、ぐいぐいコード補完してくれて使いやすそうです。www.jetbrains.com
t-SNE を使って、手書き文字データ MNIST を分類してみました。MNIST データセットはここから拝借しました。 github.comMNIST の解説はこれが分かりやすいですね ↓www.atmarkit.co.jpMNIST データを読みこんで、 % MNIST data load('mnist.mat') % data to b…
3 次元のスイスロールを、t-SNE を使って開いて (?) みました。MATLAB で書いています。スイスロールデータを用意し、 % swiss roll data npt= 1000; t = linspace(0,2*pi*1.5,npt); r = linspace(1,10,npt); x = r .* cos(t); y = r .* sin(t); z = rand(1,…
多様体学習 (manifold learning) による非線形次元削減法 Isomap を使って、スイスロール風の 3 次元データを開いて 2 次元にしてみました。MATLB で書いています。自分で適当にスイスロールを作り、 % swiss roll data npt= 1000; t = linspace(0,2*pi*1.5,…
機械学習で良く使われる手書き数字のデータセット MNIST を使って、k-means 法でどれぐらい教師無しのクラスタリングできるか試してみました (Matlab)。結論から言うと、精度はぜんぜん高くないのですが (正答率 6 割ぐらい)、メモとして残しておきます (構…
「脳の情報表現」という本にある「相互情報量 (mutual information)」を計算してみました。脳の情報表現―ニューロン・ネットワーク・数理モデル作者:出版社/メーカー: 朝倉書店発売日: 2002/03メディア: 単行本エントロピーは、ある確率変数 X のもつ不確か…
Matlabでツイッターから情報を集めるには、twittyがとても便利です。ただ、つぶやきを投稿するのには、自分の環境ではエラーが出てうまく使えませんでした。さがしてみると、Update twitter statusというそのものズバリなコードがあり、これで上手くツイート…
データをいくつかのグループにクラスタリングする手法としてk-means法があります。MatlabのStatistics and Machine Learning Toolboxには、kmeansというそのものズバリの関数があるのですが、アルゴリズムを体感するために自分で書いてみました。Wikipediaに…
情報を自動で分類するアルゴリズムとして、自己組織化マップ (self-organizing map) というものが知られています。自己組織化マップは教師無し学習の一種で、おおざっぱな学習則はつぎの通りです。1. ランダムな重みベクトルからなるマップを用意する。 2. …
前回の記事のままでは、(英語のツイートは良いのですが) 日本語のツイートはちゃんと表示されません。たとえば下のように@MATLAB_jpのツイートを取得すると、\u(4ケタの16進数)の羅列からなるユニコードが得られます。 tw = twitty(); S = tw.userTimeline('…
MatlabでTwitter APIを使ってデータを取得する方法をまとめました。Twitterのアカウントを持っていない場合は、まずアカウントを作ります。それから、Twitter Platformにアクセスして、APIを使うために必要なキー4種類を取得します。このサイトのお世話にな…
Pythonの勉強のために、前回にMatlabで書いたロジスティック写像のスクリプトを、Python 3.5で書き直してみます。Matlabの1から始まるインデックスに慣れているので、Pythonの0から始まるインデックスは混乱します・・・。 import matplotlib.pyplot as plt …
「部屋がカオス」といえば部屋が乱雑に散らかっていることを指すと思いますが、「カオス理論」というときのカオスは単に乱雑ということとはもちろん違います。有名なロジスティック写像を例にしてカオスの様子を覗いてみましょう。ロジスティック写像は、で…
「吾輩は猫である」のテキストを分析してみる (1) 「吾輩は猫である」のテキストを分析してみる (2) 「吾輩は猫である」のテキストを分析してみる (3) 前回、何も工夫せずに頻出単語を取りだすと、記号や助詞・助動詞ばかりがでてきました。作品の特徴を捉え…
「吾輩は猫である」のテキストを分析してみる (1) 「吾輩は猫である」のテキストを分析してみる (2) 前回までで、「吾輩は猫である」を形態素分析にかけたセル配列が手に入りました。今回は、単語の出現頻度を調べてみようと思います。前回のコードで、 in =…
前回のneko.txtをMeCabの分析にかけていきます。コードはこちら。neko.txtの全文をいきなり投入すると時間がかかるので、ここでは最初の100文字だけにしています。 % 「吾輩は猫である」のテキストを読込 fileID = fopen('neko.txt'); txt = fread(fileID,'*…
青空文庫から夏目漱石の「吾輩は猫である」の全文をダウンロードして遊んでみます。テキストファイルをダウンロードして開いてみると下のようになっていました。ヘッダと (上の画像では見えていませんが) フッタと、本文中にたくさんルビなどの注釈がついて…
著作権の消滅した書籍などを自由に読める「青空文庫」というサイトがあります。この記事を書いている時点で13,752の作品が登録されているそうで、誰もが知っているような文豪の作品がたくさんあります。いろんな作品を無料で読めるという点もすごいですが、…
形態素分析エンジンMeCabをMatlabから使ってテキストをササッと解析できるようにしたい!、ということでやってみました。ちょっと手間だったので書き残しておきます。下のページにまさにこれを実現するためのツールがあるのですが、「現在配布されている MeC…
テキストデータ (文章) をパソコンで分析する場合、英語だと単語同士のあいだにスペースがあるので、どれが単語か見分けるのは簡単です。でも日本語の場合はスペースがないので、そう簡単にはいきません。テキストデータを、言語的に意味を持つ最小の単位に…
Matlabでウェブページを読み込んで情報を自動抽出できたりしたら楽しそう!、ということで少しずつやってみます。ウェブページのソースを読み込むのはめちゃくちゃ簡単で、webreadという関数で1行でできます。ためしに東京都の公式ページを読みこんでみます…
Matlabは簡単で高機能なプログラミング言語ですが、なにぶん高価なのが玉に瑕。ただし、個人が趣味などに使う用途で、商用や研究用途でなければ、下のページからMatlab Homeという安価なライセンスを購入できます。Matlab本体が¥14,900、ツールボックスがひ…
Arduinoは、電子工作を遊んで学ぶにはぴったりの装置です。Wikipedia によると Arduino(アルドゥイーノ[1])は、AVRマイコン、入出力ポートを備えた基板、C++風のArduino言語とそれの統合開発環境から構成されるシステム。 ということなのですが、実際に手…
電子工作を学びたい/学ばせたい、でもお金をかけたくない、手軽で安全に学びたい。そんなときにはAutodesk Circuits Electronics Labが良いかもしれません。The easiest way to learn electronics and Arduino programming | Autodesk Circuitsブラウザ上で…
プログラミング言語はたくさんあります。どれかを学ぶにしても一体どれが良いだろうと迷いがち。インストールしてみて、「この言語とっつきにくい、アンインストールしよう」というのを繰り返すのは避けたい。そんなときに役に立つかもしれないのが無料・イ…
プログラミング言語。仕事ではMatlabを使っていますが、高価なので使っているPCすべてに入れるというわけにはいきません。無料で手軽そうな言語、ということでPythonを勉強してみることに。Anacondaをダウンロード (そこそこ時間がかかった) してインストー…
「もっと科学を身近に」感じられる小ネタを書いていきます。