The First Cry of Atom Today is the first day of the rest of my life.

Scalaでロジスティクス回帰

PRMLをの勉強も兼ねて線形回帰モデルの構築をやってみたよ。 PRML本の内容とここを参考に書いてみたのでぜひ参考に。 リポジトリはこちら 最尤推定 基本的にはsin関数にガウスノイズを足した20個の訓練データからもとのsin関数が復元できるかということをやった。 1次元の多項式フィッティングの場合には最尤推定は最小二乗法でとけばいいだけなのでコードはこんな感じ。 package com.PhysicsEngine.cpistats import breeze.linalg._ object LeastSquares { // モデルパラメータの数 あとで正則化項を加えて計算したMAP推定と比較したいので割りとデカイ。over fittingしやすい val M = 20... Read more

ScalaNLPのチュートリアル

ScalaNLPを触ってみたので、その時のチュートリアル。 ScalaNLPは基本的にはSBTの依存解決でライブラリをダウンロードできるのでそのとおりに行う。 build.sbtファイルに以下のように書いてupdateを行う libraryDependencies ++= Seq( // other dependencies here // pick and choose: "org.scalanlp" % "breeze-math_2.10" % "0.4", "org.scalanlp" % "breeze-learn_2.10" % "0.4", "org.... Read more

SBTとEclipseでScala開発環境

SBTの使い方がなんとなくわかってきたので、今度はEclipseにSBTプロジェクトを導入してみる。 Eclipse plubin for SBTのinstall プロジェクトに必要なプラグインをインストールする。この場合はproject/plubins.sbtに以下のように記述する。 resolvers += Classpaths.typesafeResolver addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.2") ここで以下のコマンドを打てばこのプラグインがインストールされ、Eclipseプロジェクトに必要な.projectファイルができあがる $ sbt eclipse これ... Read more

SBTを使ったプロジェクト作成(2)

スコープに関するお話 昨日の続き。 実はSettingKeyにはスコープがあり、異なるプロジェクトではことなる値を使うことができる。そもそも同じ場所に置くなよという気はするがテスト用とかリリース用にビルドしたい場合に便利。このビルドの設定を分けるスコープの”軸”がSBTには3つある。 プロジェクト コンフィギュレーション タスク プロジェクト軸によるスコープ それぞれのプロジェクトに対して設定が必要という場合がこのケース。ビルド全体(全プロジェクト)でもよい。 コンフィギュレーション軸によるスコープ ビルドの種類によるわけかた。テストとかリリース用とか、デバッグ用とか。 タスク軸によるスコープ 少しよくわからないけれど、他のタスクに影響を受けるようなスコープのこ... Read more

SBTを使ったプロジェクト作成(1)

SBT(Simple Build Tool)というScalaのビルドツールを使ってみる。 ここを参考にした。 インストール まずインストール。macの場合はHomebrewで用意されているみたい。 $ brew install sbt プロジェクトの作成 ひな形は自分で作る。ここではhelloプロジェクトを作ってみる。 $ mkdir hello $ echo 'object Hi { def main(args: Array[String]) = println("Hi!") }' > hw.scala $ sbt # ここで必要なパッケージとか勝手にインストールしてビルドしてくれるみたい > run ・・・ Hi! 複雑なことはまだたくさんあるけれど、... Read more