今年一番嬉しかったこと、デスマ駆動ダイエットで-3kgの減量に成功したこと。
「入門 機械学習」買った
昨日仕事納めして帰り際、先輩のところへ挨拶にいった。そこで「冬休みは何勉強するの?」と聞かれて「入門機械学習を読む」と宣言してしまい、言っちゃったな…と思いつつもそのまま本屋に寄って買って帰ってきた。
訳者まえがきを読むと、
入門書を紐解いてみたものの、その数学的・理論的に高度な内容を前にして二の足を踏んでいる読者も多いのではないでしょうか。
とあって、おお、これええんとちゃうん!!!てなかんじで期待高まった。
ちょうど勉強したいなーけど難しい本しかないなーと思っていたところに運良く日本語版!
時代の波に乗れている感じがする。
Rインストール
Mac OS XにはRプリインストールされていると書かれてたけど入ってなかったので、以下からとってきていれた。
http://cran.r-project.org/bin/macosx/
(最新バージョンのR-2.15.2.pkg)
Download Example Code
サンプルコードは以下のリポジトリから。
https://github.com/johnmyleswhite/ML_for_Hackers
ちなみに先輩は何勉強するのか尋ねたところ、TODOリストが200個ぐらいたまってるから棚卸ししたいと言っていた。200個…
- 作者: Drew Conway,John Myles White,萩原正人,奥野陽,水野貴明,木下哲也
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/12/22
- メディア: 大型本
- クリック: 14回
- この商品を含むブログ (1件) を見る
はてなブログ1周年おめでとう!!!!!!
はてなブログ1周年おめでとう! id:hatenablog
腐女子のためのlisp入門 #2
こんばんは。第二回腐lispの時間です。
今回はループ処理と高階関数について説明します。そして最後にfizzbuzz問題のアレンジ版を作ってみますよ。
ループ
一番単純なループはwhileです。書き方はこちら。
(while 条件式
フォーム1
フォーム2
)
whileを使って、1からlimitまでのリストを作る関数を作ってみます。
fizzbuzzなので1から15までのリストを作ります。
(defun generate-list (limit) (let ((i 1) ret) (while (<= i limit) (setq ret (cons i ret)) (setq i (1+ i))) (reverse ret))) (generate-list 15) ; (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)
高階関数
高階関数というのは引数に関数をとれたり、関数を戻り値にできる関数のことです。
まぁピンとこないかもしれませんが、次のように理解してもあんまり問題ないと思います。
(mapcar '攻め関数 '受けリスト)
mapcar関数は受けリストの各要素について攻め関数を呼び出してリストを返します。
つまり×の役割といえますね!
では早速、さきほどの受けリストを使ってfizzbuzz関数を適用させてみます。
ただ、普通のfizzbuzzでは面白くないので、
ここでは3と5の倍数の時にホモになって15の倍数の時にほられるという仕様にします。
(defun yaranaika (num) (cond ((= (% num 15) 0) "アッー!") ((= (% num 3) 0) "やらないか") ((= (% num 5) 0) "ウホッ!いい男") (t num))) (defun fizzbuzz (limit) (mapcar 'yaranaika (generate-list limit))) (fizzbuzz 15)
結果は以下のようになります。
(1 2 "やらないか" 4 "ウホッ!いい男" "やらないか" 7 8 "やらないか" "ウホッ!いい男" 11 "やらないか" 13 14 "アッー!")
台詞は自由に変えるといいでしょう。もはや全くfizzbuzzではありませんがそれは気にしないでください。
# 連載と銘打っていますが実はほぼノープランなので、またネタを思いついたら書くことにします。
おわり
腐女子のためのlisp入門 #1
腐lispの第一回です。いきなりですが、関数定義についての話をします。
かけざん関数をつくる
というわけで、早速、みなさんにはおなじみのあのかけざんをする関数をつくっちゃいましょう☆★☆★☆
(defun × (seme uke) (message "%s × %s" seme uke)) (× 'kusakabe 'sajo) ; "kusakabe × sajo"と表示される
簡単ですね。
上のコードはEmacsのscratchバッファに書いてすぐに試すことができるので、好きなだけかけざんしましょう。
括弧について
最初は括弧が多くて戸惑うかもしれません。でも慣れればかわいく見えてくるので大丈夫です。
それでも信じられないという方は、開き括弧"("を攻め、閉じ括弧")"を受けだと思って、もう一度上のコードを見てください。
どうですか???括弧が愛おしく感じてきませんか???
そしていつの間にか")"が健気な美少年に見えてくるはずです。
多くの障壁を抱えつつも強くひきつけあう二人の愛に感動し涙するかもしれません。
# けれど、障害のない愛()は空っぽ(nil)と評価されてしまうのだから皮肉ですよね。
ついてこられたあなたはもう元には戻れません。おとなしくlisperの道をすすみましょう。
最後は私の妄想が暴走してしまう感じになってしまいました。ごめんなさい。
次回もこんな感じで書きたいこと書くつもりです。では第二回をお楽しみに。
おわり
腐女子のためのlisp入門 #0
はじめに
ネットにlispの入門記事はたくさんあるのですが、腐女子のために書かれた記事はまだなかったので思いつきで始めてみました。lisp入門と書きましたが、EmacsLispを扱うことにします。Schemeでも書くかもしれません。まぁネタなので適当です。
腐女子がlispを勉強するべきたった一つの理由
id:shim0mura氏のblogの2011年テキストエディタ界の動向まとめと、来年次のvimエディタ普及に向けた対策資料という記事に衝撃的な記述がありました。
emacsユーザーは今、ホモに興味がある。