2017年11月28日火曜日

R : 有向、無向グラフの描画

Rで有向、無向グラフの描画をするのにigraphパッケージを利用します。
(1) igraphのインストール、読み込み
install.packages("igraph")
library(igraph)
インストールは時間がかかりました。

(2)データの作成
エクセルでデータを作成します。今回は隣接行列(0 or 1)とします。
例えばエクセルで15×15の 0 or 1の行列を作っておきます( =RANDBETWEEN(0,1)を使いました)
これをgraph.csvとして文字コード:UTF-8、改行コード:LFにしてアップロードします。
 csvを取り込みます。



(2) グラフ描画

graph = as.matrix(graph)
plot(graph.adjacency(graph,mode="undirected",weighted=NULL))


(3) ノードの大きさの変更
csvに行和の合計を追加して、アップロードします。この行和が大きいほど他との関係も強いとします。
これをgraph01に取り込みます。そしてグラフ描画用のgraph01_1も用意しておきます。
graph01_1 = as.matrix(graph01[,1:15])
 グラフを描きます。
plot(graph.adjacency(graph01_1,mode="undirected",weighted=NULL),vertex.size=graph01$sum*4,edge.arrow.size=0.5)

 参考
http://www.shizukalab.com/toolkits/sna/sna_data
https://qiita.com/tomov3/items/c72e06eaf300b322e99d

2017年11月24日金曜日

RStudio : グラフの日本語利用

RStudioでデータの取り込みには日本語ができていたのですが、グラフ中では文字化けしてしまい、次の段取りで日本語を利用できるようにしました。
(1)日本語ライブラリの導入
# yum groupinstall "Japanese Support"

(2) RStudioの再起動
# rstudio-server restart

(3) Rで日本語の指定
par(family = "HiraKakuProN-W3", ps=10)
または
par(family="Japan1") 

この後グラフを書いてみると、図のようにグラフの中に日本語が出てきました。

2017年11月16日木曜日

R : Perceptron

機械学習の勉強を始めるのにPerceptronは学べるものが多いかと思います。

(1) 最急降下法
予備知識として、最適化アルゴリズムの最急降下法を知る必要があります。
最急降下法は以下のようになります。

 (2) Perceptron
パーセプトロンは教師データを用いて学習させた後、2つのデータに線形分離します。​

[アルゴリズム]​
for 全教師データ​
    if( wxの符号と教師フラグの符号){
        一致 -> continue (何もしない)​
        一致しない​
            w<- br="" tx="" w="">            index <- 1="" br="">end​

Javaではリンクのようになります。 Rでは下記になります。

次に50個の座標を線形分離してみます。今回はy = -x +1 の上下で分離します。​
y > -x + 1の時 flag = 1​
y < -x + 1の時 flag = -1​
利用したファイル
このファイルをRStudioで​アップロードしておきます。

[Perceptron.2R]

参考
 http://smrmkt.hatenablog.jp/entry/2013/11/06/223221

2017年11月6日月曜日

Javaプログラミング(1) 行列計算

Javaで行列計算をやります。
(1) 内積と行列の積の計算




この内積計算の関数をまず作成します。


行列計算を実施する場合、この内積計算を呼び出します。ただし、Javaで内積を計算する時に、行ごとしか呼び出せず、列ごと呼び出すことができません。そのため転置行列作成をしておきます。



これを使って、行列の積を計算します。