Sunday, October 19, 2014

Homebrew install Mac OS X

 Homebrew
Mac OS X 10.7 or after
Xcode
Command Line Tools for Xcode

install Command Line Tools for Xcode
Xcord を起動してライセンス認証をしておく
$ xcode-select --install

homebrew   Homebrew - site Multi language
http://brew.sh/

#install homebew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

#check
$ brew doctor
your system is ready to brew.

 install package    brew install [ formuler ]
$ brew install wget

installed directory
/usr/local/Cellar/

 /usr/local/Cellar/    パッケージのインストール
 /usr/local/bin/   パッケージのリンク

uninstall package   brew uninstall [ formula ] or brew rm [ formula ]

update & upgrade
the latest version of th homebrew.  (homebrewを最新版へ)
$ brew update

the last version of the packages.(packageを最新版へ)
$brew upgrade
Upgrade for each package (各パッケージごとのアップグレード)
$ brew upgrade [ formuler ]

Search package    (パッケージを探す)   brew search [ txt ]   or   brew -S [text ]

$ brew -S git
gitだけの検索
$ brew -S  /^git$/

===========================================================

Homebew Cask  Site
http://caskroom.io/

homebrew-cask 
$ brew install caskroom/cask/brew-cask
or
$ brew tap phinze/homebrew-cask
$ brew install brew-cask

How to use Homebrew Cask
#Find the app you want to install   (インストールアプリを探す)
$ brow cask serch
#like grep
$ brew cask install google-chrome

# install apps
$ brew cask install google-chrome

Thursday, October 16, 2014

Macで日本語形態素解析 R RMeCab


Rのプロジェクトは以下ですが
http://www.r-project.org



R for Mac OS X のページからダウンロードしてくるのをお勧めします
http://cran.md.tsukuba.ac.jp/bin/macosx/


日本語解析エンジン R mecabの RMeCabを使うための用意です
========================= mecab インストール
mecabと辞書をまずインストールしてください

ダウンロード先
https://code.google.com/p/mecab/downloads/list
XXはバージョンNumber
・mecab-XX.tar.gz
・mecab-ipdic-XX.tar.gz

install------------------------------------------------
# mecab本体

 $ tar zxfv mecab-X.X.tar.gz
 $ cd mecab-X.X
 $ ./configure
 $ make
 $ make check
 $ sudo make install

#辞書のインストール
utfで使う場合 Mac,Linuxなら標準の方法
 $ tar zxfv mecab-ipadic-2.7.0-xxxx
 $ cd  mecab-ipadic-2.7.0-xxxx
 $ ./configure --with-charset=utf8
 $ make
 $ sudo make instal

====== RMeCabインストール==========================
・Rを起動  mecabがinstallされていれば
install.packages ("RMeCab", repos = "http://rmecab.jp/R")


補足-----------------------------------------------------------
# shift-jisの場合
$ tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz% cd mecab-ipadic-2.7.0-XXXX
$  ./configure
$  make
$ sudo make install

utf8で辞書を使えるように再構築
$ cd mecab-ipadic-2.7.0-xxxx% /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t utf-8
$ make install
configure option で --enable-utf8-only を指定すると. MeCab が扱う 文字コードを utf8 に固定します。 euc-jp や shift-jis をサポートする場合, MeCab 内部に変換用のテーブルを埋めこみます。 --enable-utf8-only を 指定することでテーブルの埋めこみを抑制し, 結果として実行バイナリを 小さくすることができます。

Wednesday, October 15, 2014

python prepare for DataSience Mac Yosemite

Mac OS X 10.9(Maverics) python prepare for DataSience
(Python で DataSienceの準備)

YosemiteのPythonでデータサイエンス環境を整える
Shell が公開されています。下のページを見てください。
pipが入るのでパッケージの追加も便利です。
Pythonは2系で最新になるようです。

refer for: (参照)
http://fonnesbeck.github.io/ScipySuperpack/
install_superpack.sh for Yosemite Mac OS X 10.10   Xcode6  is release

Environment--------------------------------------------------
  • Mac OS X 10.10 (Yosemite)
  • Xcode 6
  • command_line_tools
  • Homebrew 
 Yosemite default Python is Python 2.7.6
do install_superpack.sh
 ------------------------------------------------------
auto installed pip

$ python -V
Python 2.7.8

$ pip freeze        #installed packege
Cython==0.21.1
Flask==0.10.1
Jinja2==2.7.3
Markdown==2.5.1
MarkupSafe==0.23
PyYAML==3.11
Pygments==1.6
Sphinx==1.2.3
Theano==0.6.0
Werkzeug==0.9.6
backports.ssl-match-hostname==3.4.0.2
bokeh==0.6.1
certifi==14.05.14
colorama==0.3.2
docutils==0.12
gevent==1.0.1
gevent-websocket==0.9.3
greenlet==0.4.5
ipython==3.0.0-dev
itsdangerous==0.24
matplotlib==1.5.x
mock==1.0.1
nose==1.3.4
numpy==1.9.0
pandas==0.15.0-6-g403f38d
patsy==0.3.0
pymc==2.3.4
pyparsing==2.0.3
pystache==0.5.4
python-dateutil==2.2
pytz==2013b
pyzmq==14.4.0
requests==2.4.3
scikit-learn==0.16-git
scipy==0.15.0.dev-28301fc
six==1.8.0
statsmodels==0.6.0-rc1
tornado==4.0.2
websocket==0.2.1
wsgiref==0.1.2


======================================================
check
--------------------------------------------------------------------------------------------------
$ ipython --pylab
In [1]: import numpy
In [2]: import scipy
In [3]: import pandas
In [4]: x = randn(1000)
In [5]: hist(x,100)
-------------------------------------------------------------------------------------------------------
Draw Histgram is OK   こんなヒストグラムが描ければOK


機能

Numpy      Pythonで科学計算を行うための拡張モジュール 多次元配列,行列 演算処理
Scipy      NumPy base 科学技術計算用の統計関数、画像、信号処理などのライブラリ
Matplotlib  2次元のグラフ描画用のモジュールで、Ipythonとの組み合わせで
Pandas     パフォーマンスに優れたデータ分析モジュールで、 時系列データ得意
IPython   補完ができたりOSのコマンドライン・シェルとしても利用できる拡張
Statsmodels 統計解析パッケージ
scikit-learn  機械学習ライブラリで、分類や回帰、クラスタリング評価尺度や
                  クロスバリデーション、パラメータのグリッドサーチ
PyMC         Pythonのベイズ統計用ライブラリです 特にMCMCに重点を置いています







Saturday, October 04, 2014

R データフレーム操作 メモ

データフレーム操作を良くするのでメモです

#######------------------------------------------------------------------------######
# make test data frame  データフレーム作成 
Sex = c("M", "M", "F", "F")
Age = c(20, 19, 18, 20)
height = c(170, 175, 160, 165)
weight = c(65, 75, 58, 60)
data = data.frame(Sex, Age, height, weight)
data                         #view check 確認  view check

rownames(data)               # row name  行名(row=行)  
colnames(data)               # col name   列名(column=列)

nrow(data)                   #how many rows 行数を調べる(row)
ncol(data)                   #how many cols 列数を調べる(col)

is.data.frame(data)          #judge Data Frame データフレームか調べる TRUE or FALSE

############  sampling col  列(col)を取り出す
data$height                  #データフレーム$列名 ベクトルで返る
data[ ,3]                    #データフレーム[,列番号] ベクトルで返る
data[ ,"height"]             #データフレーム[,"列名"] ベクトルで返る

############ sampling row     行(row)を取り出す
data[2, ]                     #データフレーム[行番号,] ベクトルで返る
data["2", ]                   #データフレーム[行名,] ベクトルで返る

########## sampling more than one col or row 複数の列・行を取り出す
data[ ,c(1, 3)]               #データフレーム[,c(列番号, 列番号)] ベクトルで返る
data[ ,c("Sex","height")]     #データフレーム[,c(列名, 列名)] ベクトルで返る

data[c(2, 4), ]              #データフレーム[,c(行番号, 行番号)] ベクトルで返る
data[c("2", "4"), ]          #データフレーム[,c(行名, 行名)] ベクトルで返る

# pickup match data's rows 条件に合う行データのみ取り出す
data$height >= 170        # TRUE FALSE で返す
data[c(T, T, F, F),  ]       # 値を取り出す
data[data$height>=170, ]        # 直接的に取り出すには これが最適 direct formula 


# データフレームに列を付け加える ##################################
data1<- data                #データフレームの複製
data1["new"] <- c("new", "new", "new", "old") #データフレームの無い列を指定して代入
data1                       #確認

#データフレームに transform(DF, 列名=ベクトル) 関数を使う場合
data2<- data                #データフレームの複製
data2<- transform(data2, eye=c("black", "brown", "blue", "brown"))
data2

#データフレームに cbind(DF, ベクトル) 列名調整必要
data3<- data                #データフレームの複製
data3<- cbind(data3, c(5, 3, 4, 2))
names(data3) <- c("Sex","Age","height","weight","point")         # 変数ラベルを調整
data3

# データフレームに 新しい列を計算で作る BMI=体重(kg)/身長(m)*身長(m) round(x,桁)
transform(data, BMI=round(data$weight/(data$height/100)^2, 1))

#データフレームにcbind()でデータフレームをつなぐ方法
data                        #確認
y <- data.frame(c=c(TRUE,TRUE,FALSE,FALSE)) #データフレーム作成
data4<- cbind(data, y)
data4

#####--データフレームを列の値をキーに繋ぐ--------------------------------------------
# データフレーム born を作る
name<- c("Moe","Larry","Curly","Harry")
year.born<- c(1887, 1902, 1903, 1964)
place.born<- c("Bensonhurst","Philadelphia","Brooklyn","Moscow")
born<- data.frame(name, year.born, place.born)
born
# データフレーム died を作る
name<- c("Curly","Moe","Larry") #繋げる
year.died<- c(1952, 1975, 1975)
died<-data.frame(name, year.died)
died

merge(born, died, by="name")    # 2つのデータフレームを name を使って対応する行を結合