Statistical Programming

意訳:Finding Hidden Messages in DNA (Bioinformatics I): Week1

本日はバイオインフォマティクスの知識を深めるために、CourseraのFinding Hidden Messages in DNA (Bioinformatics I)を要約します。 見た動画はweek1の2つ。 https://class.coursera.org/hiddenmessages-007/lecture/9 https://class.coursera.org/hidden…

DNAポリメラーゼの働き

バイオの知識を深めるために、これから毎日PDB-101: Home Pageの記事を和訳します。 本日はDNAポリメラーゼについて。以下、意訳。 生命の神秘 DNAポリメラーゼは生物的なプロセスにおいて重要な役割を果たしています。それは遺伝情報の複製を行います。細胞…

Scalaで自己共分散と自己相関の実装

時系列解析入門 - Stats Hack!! 自己共分散も自己相関も時系列データ元々の分布(関数)の時間軸をずらした時にどれほど元のグラフと相関があるかについて計る指標。自己相関は自己共分散の値を使って求め、自己共分散と違い値の大きさが単位に依存しない(…

ScalaTestすごい楽。

試してみたのは単純な、FunSuiteクラスを継承するタイプ。 class Datates extends FunSuite { test("name of this test"){ assert(0==0,"if fail,message appears") } でもDoubleが比較に入ってくると小数点以下がちょこっと違うだけでほとんど同じ!みたい…

スピアマンの順位相関係数を実装 in Scala

この前ピアソンの相関係数を実装したので次はノンパラメトリックなスピアマンの順位相関係数を実装してみた。ピアソンの場合、外れ値の影響を大きく受けるのと、厳密にはデータが正規分布であると仮定している。つまりデータ数が小さい時は正確性に欠ける。…

sbtって別にシンプルじゃないよな。って思うのは他のビルドツールを知らないからなのだろうか。

sbtについてどしっとまとめたことがなかったからちょいとメモる。sbtのダウンロードはHomebrewを使ってちょちょいと出来る。brew install sbt、てな感じで。sbtのプロジェクトを作るにはまずルートディレクトリでsbtコマンドを実行。するとprojectフォルダな…

scala IDE for Eclipseバージョン上がりましたね。

Scala IDE for Eclipse 見た目がすっきりしたのと画面いっぱい拡大が出来るようになりました。それとベースがEclipseのケプラーに変わってましたね。ケプラーの第3法則!

ピアソンの相関係数を実装 in Scala

レコメンデーション等をするためには各アイテムの相関度などを調べる手法があり、そこで必要なのがユークリッド距離やピアソンの相関係数など。今回実装してみたのはピアソンの方。 2つの変数X,Y(X,Yに属する値のリストみたいなもん。実装ではStream[Doubl…

時系列解析入門v2 DetrendingとDifferencing

時系列解析入門 - Stats Hack!! 前回の記事では時系列解析の概要、定常性、そして自己相関について触れたから今回はその続きのDetrendingから。そもそもDetrendingとは、時系列データが持っているTrend(傾向)を取り出すことでより定常なデータを入手すること…

Juliaという名の欲張り言語

最近Juliaというプログラミング言語を知りめっさ同感した。僕らは確かに統計処理、機械学習、データマイニング等がしたいのだけれどそれと同時にスピードも欲しいしmatlabみたく手軽に書きたい。ほんと仰る通りでどの言語も一長一短なんだよ。 なぜ僕らはJul…

時系列解析入門

大雑把に言うと、時系列解析とは過去のデータから未来を予測する分野。時系列データは通常のデータと異なり各値が強い相関を持つケース(非定常性)や”誤差が累積してゆく(ランダムウォークなど)”ケースが多く存在しており回帰分析など一般的に良く知られ…

関数とメソッド in Scala

関数とメソッド。一見同じように見えるが、メソッドはオブジェクトやクラスに結びついているもの。関数はそれらに結びついていない単独な第一級オブジェクト(少なくともScala利用者の立場的には)であり値として扱うことが出来る。僕みたいなめんどくさがり…

有名な確率分布

確率分布とは確率変数と確率変数に対応したその変数の起こる確率の分布。具体例で考えるとわかりやすい。サイコロの目が確率変数で、それぞれの目の出る確率(もちろん1/6)。それらをx軸が確率変数、y軸がその変数の確率といった形で分布化したものが確率分…

ベイズ統計入門

普通の統計では統計モデルを仮定しそれによってデータをを説明する。そのモデルを規定する重要な要素がそのデータの母数(平均µ,分散σなど)。ベイズ統計ではその母数とベイズの定理を組み合わせる。 ベイズの定理 P(H|D)=( P(D|H)*P(H) ) / P(D) このHを母数θ…

意中の相手への告白がうまくいくかどうか過去の事例を解析し成否を占う。with Scala

告白したい!でもうまくいくか不安…だから掲示板にでも相談しよう…こんなケースってよくありがちだけどそれらのデータを蓄積して解析してるシステムってあんまないなーって思う。だからちょっと作ってみよう!と思い立ってのこと。とは言っても迷惑メールフ…

言語と彼女

何度見ても言い得て妙だと思う。プログラミンング言語を彼女に例えた文言。 PHP は、あなたが高校時代のある夏、不器用ながらも付き合った初めての彼女です。もっと真剣な関係を築こうとしてはいけません。この子は複雑な問題を抱えています。 Perl はPHPの…

2群の検定 with R

今まで「Scala Days」というタイトルでScalaについて主に書いてたんだけど最近python使わなくちゃいけなくなったし統計に関することもメモりたいからタイトル名を「Statistical Programming」へと変更。というわけでとりあえず統計の復習を少しばかり。 2つ…

素数とビット計算 with python

素数を求める関数を作ること自体は簡単だけど速く素数を見つけ出す計算はなるほどなと思わされた。そんなの思いつかんって。こちらが普通の素数を求める関数。特に変わったとこはなし。 prime def is_prime(n): for c in range(2,n): if n%c ==0: return Fal…

Python Introduction part2

基本的なコレクションの一つであるStringについて。 PythonのStringはScalaのものと比べるとCharの連続したものであるということがより伝わってくる。気がする…PythonのListとStringの大きな違いとしてmutablityがある。Listはmutableな一方でStringはimmuta…

Python Introduction part1

「Python来週までに使えるようにねー」 ってアルゴリズムの授業で言われたんで急ごしらえで基礎的なところの細かな違いをちゃちゃっと確認する。初っ端から飛ばしてるわこの教授…教授に言われて参考にしたサイトはこちら。 Introduction — Problem Solving w…

入力処理… Iterator continually

scala.ioをディスってる記事にちょくちょく載ってる(こっちの方がいいよ的な意味で)Iterator continuallyが良いなと思ったんでめもる。 val lines=Iterator.continually(readLine).takeWhile(_ != "finish") lines.foreach(println) これで"finish"が入力さ…

誰だよこんなの思いついたやつ

scalaのStreamを使った無限フィボナッチ数列の作り方っ★ ※StreamとはListを遅延評価にしたようなやつ。遅延評価なので実際にその値が必要になるまで評価されず、無限に要素を持つことが可能。 なんか普通に綺麗で、思いついたやつcrazyだと思う。 def fib(a:…

Iteratee, Websocket周りのメモ書き

server側のwebsocketコード def ws =WebSocket.using[String]{ request => val in=Iteratee.foreach[String]{str => str match{ case "click"=> println("clicked") case "grasp"=> println(“grasp please”) case "drop"=> println("Why don we stop it here…

Iterator, Iteratee, そしてEnumerator

Play FrameworkのIteratee, Enumeratorが最高に謎なんで現状の理解をここに記します。間違っている点を指摘してもらえると助かります。 参考にしたのは http://qiita.com/sunny4381/items/a711fa72db26c9263b3f http://mandubian.com/2012/08/27/understandi…

reduceとfold…

例えばこんなコレクションがあったとして List(1,2,3,4,5) このコレクションの各要素に10を足したものを掛け合わしたいとする。そんなとき便利なのかreduce系もしくはfold系メソッド。例えばreduceLeft(f)メソッドは,リスト x1, x2, …, xn に対して f(f(…f(…

Scalaでフロントサイドが書ける!scala-js!!

scala-jsとはjavascriptに嫌気がさした僕のような人のためにscalaでサーバーからクライアントまで書けるようにしてくれる優れもの!!と言いたいところですがまだ開発途中なこともありドキュメントの整備や機能においても完成されたものではありません。それ…

Play FrameworkのAdvent Calendar!!

最近というか一昨日くらいからQiitaというプログラミングに関する知識を共有するサービスに登録したんですがそこでPlay Framework (2.0系)のAdvent Calendar なるものを発見したので早速なんで登録してみました。正確にはAdventarというサービスなのかな… ※A…

scalaのIDEについてーeclipse&IntelliJ

今までscala IDE for eclipseを利用してきて特に問題ないどころか非常に満足していたのですが、どうやらscala使いの方々はIntelliJを好むのか!?という不安にかられIntelliJを試してみました。印象としては、、、eclipseの方がいいなあ(慣れてるからですよ…

jarを作りたいならsbt-assembly!!

とあるライブラリ、もしくは単なるプログラムがあるとしてそのjarファイルを作りたい時に登場するのがsbt-assemblyです。その名の通りjarファイルを生成してくれるすぐれもの!準備は簡単で、まずはsbtのフォルダ構成に乗っ取ったフォルダを生成し、その中に…

テキストマイニング入門が簡単な時代になったのですなあ〜

kuromojiという形態素解析ライブラリを利用してテキストマイニングしてみる。やってみたけど超簡単。やばい、これ。しかもScalaから利用するからJavaと比べてさらにすっきりするしいいね。以下からjarファイルをダウンロード。 Downloads · atilika/kuromoji…

文字認識らいぶらり。。。tesseract!!

小説の画像を文字認識できんかなと思いぐぐってみたらGoogle先生が文字認識ライブラリをオープンソースで提供なさっているので試してみました。インストールはいつものごとくhomebrewを利用しました。コマンドラインを開き、 brew install tesseract インス…

Slick実装例

Slickを使った実装例。 今回はTypesafeが提供しているActivatorを利用しながら開発してみる Slick Typesafe Activator – Typesafe Reactive Platform - Typesafe まずはActivatorをダウンロードし、フォルダの中にあるactivatorファイルをクリック。 しばら…

Playのデータベース周りが変わります!

Play Framework2.2まではデータベースにAnormを基本的に採用してた。しかし、それがかわるんどす! →Playとは... http://www.playframework-ja.org/documentation/2.1.5/Home →Anormとは... ScalaAnorm Anormは最近のORM(抽象度の高い手法)とは違いSQLをそ…

JavaとScalaの違いその9 ... Trait>Interface

ポリモーフィズムに関してJavaとScalaは若干違いがあります。 それはInterfaceがScalaには存在しないということです。 ん、じゃあポリモーフィズムはないの?? →代わりにTraitという、classとinterfaceの中間みたいなやつが存在します。 このtraitをScalaで…

JavaとScalaの違いその8 ... arrayは使わない!Listコレクション

今日はコレクションのひとつであるlistについてです。 import scala.collection.mutable.ListBuffer object ListTest extends App { def printlist(listInt:ListBuffer[Int], listStr:ListBuffer[String])={ println(listInt) println(listStr) } //空のリス…

JavaとScalaの違いその7 ... こんすとらくたああ

Javaプログラマ→Scalaへの道第7弾です!! 今回はJavaとScalaで結構違いがあるコンストラクタに関して。 基本コンストラクタ、補助コンストラクタ、親クラスのコンストラクタの3つについて説明(実質ただのコード笑)です。 //ParantCクラスを継承し親クラ…

JavaとScalaの違いその6 ... Setter & Getter

Scalaにはstaticキーワード自体が存在しません(その代わりcase classというより便利なクラスは存在しますが)。 ですのでclassは基本的にインスタンス化しなくては使えません(case class以外)。 Javaではクラスは設計図だからインスタンスしてねーとかい…

JavaとScalaの違いその5 ... 最強、ぱた〜んまっちんぐうううう

今回はScalaでmatchingをします! といってもJavaでswitchを知っている方にはありきたりなので Javaとの違いだけちょろっと。 まず大きく違うのが、いろいろな型のマッチングが可能です。 コレクションもマッチングでき、型に応じた処理が簡単にできます。 …

JavaとScalaの違いその4 ... 多機能なfor

Scalaではforが多機能です。 object For extends App { //0~4を表示.5は表示されない for(i<-0 until 5){ println(i) } println("change") //1~5を表示。今度は5が表示される for(i<-1 to 5){ println(i) } println("change") //5~1を表示。順番が逆。 for(i…

JavaとScalaの違いその3 ... アクセス修飾子はかなり省略

アクセス修飾子についてです。 javaではこれを省略した場合同じパッケージ階層からアクセス可能でしたけど、 scalaでは省略=publicとなり記述が楽になりました。scalaのアクセス修飾子は以下の順になっています。 省略;=public ↓ protected[package name];…

JavaとScalaの違いその2 ... Importがちょいと便利に

前回に引き続きJava→Scalaの学習を進めたいと思います。 今回は関数の違いとimportのやり方をちょろっと。 メモなのでかなり雑です。はい。 package test import java.io._; object Test2 extends App { //可変長引数を取る関数 def printStrings(strings:St…

JavaとScalaの違いその1

JavaとScalaの違いにフォーカスしながらScalaを学んでいきたいと思います。 かなりありますが、まずはobjectでしょうか。 下のプログラムをみたらすぐわかるのですが、Scalaではシングルトンオブジェクトを簡単に生成できるのです!!通常javaではシングルト…

機械学習入門

以前Courseraという大規模オンライン学習Webサービスとそこで受講できる、関数型プログラミングの授業をご紹介しましたが引き続き面白そうな授業を発見しましたので紹介したいと思います。 今回は、Stanford Universityが提供しているMachine Learning(機械…

Scalaの授業…

唐突ながらCourseraというMOOC(Massive Open Online Courses)のウェブサービスをご存知でしょうか?世界中の多くの難関大学がその授業をオンラインで無料でCourseraに提供しており私たちは自由にそれらを受講することが出来る、というすばらしい代物です!!…

ScalaからJavaのライブラリをつかう

scalaからjavaの外部ライブラリを適当に使えないものかと思い、 以前ふれたvelocityを試してみます。 package test import java.io._; import org.apache.velocity._; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; im…

もがく、WebSocket!!

前回ソリティアを作ろうと思い立ち開発しているさなかでそうだ、WebSocketを使ってみよう!と決意し調べてみたら見事にはまったのでメモっておきます。Scalaは他の言語と比べてもその言語仕様も外部ライブラリも変更が頻繁にあるのでそこんとこではまりまし…

Solitaireしたいな…

なんか最近ゲームしとらんなーとか思ってふとソリティアがしたくなったのでソリティアを作ろうと思います。ソリティアって打とうとすると粗リディアって打っちゃうのをなんとかしたい今日この頃。開発言語はScala一択で、Scala IDE for Eclipse, Play framew…

Play Framework入門

Play2フレームワークの開発フローについてまとめます。インストールなどは省略して、プロジェクト作成から。まずはターミナルを起動しプロジェクトを作成したいディレクトリに移ります。cd /Desktopその後playコマンドでプロジェクト作成。play new sampleす…

Scala Play Framework2とは…

Webアプリケーションの開発となると気になるのがフレームワーク。 今回はJava&Scalaをネイティブサポートしているフルスタックフレームワークの、 Play Framework2について。PlayはRuby on Railsのような効率性を意識して作られており、「設定より規約」を…

Scala immutableなコレクションと便利なメソッド

関数型言語定番のimmutableなデータ構造がScalaのひとつの特徴ですが、今回はimmutableなデータの集まりであるコレクションとそれを扱う便利メソッドについてです(Javaではimmutableで変更不可なデータはfinalキーワードを用いて特別に定義していましたよね…