100day’s blog

思いついた事や、プログラミングの毎日の作業工程を短めにまとめてます。

とりあえず実行環境だけ準備 Erlang,Elixir,Scala,Goのインストールと各CLIツール等の確認

結論から言うとmacbrew入ってて良かった。

 

準備から

$ brew update

 

# Erlangの install

$ brew install Erlang

 

- cli tool

$ erl 

Ctrl+G > q returnで抜ける

 

# Elixir install

$ brew install Elixir

 

- cli tool

$ iex

Ctrl+G > q returnで抜ける

 

 

# Sala

 

$ brew tap caskroom/versions

$ brew cask install java8

 

$ brew install scala

$ brew install sbt

 

参考

http://yebisupress.dac.co.jp/2017/12/07/scala-nyumon-zyunbi01/

https://qiita.com/umeneri/items/666ff425a11b3dc2022b

 

- cli tool

$ scala

:q で抜ける

 

 

# Go lang

 

$ brew install go

参考

https://qiita.com/megu_ma/items/7208be8de52b712955a0

 

cli無い

go run ***.go で実行、コンパイルとか後回し

godoc -http=:6060 とかでヘルプをローカルのブラウザで(localhost:6060)

 

 

結論

ほぼほぼbrewで片付く

brew listで確認

f:id:gpstandard:20180930201652p:plain

macbrew入ってて良かった。

 

 

coursera Julia Scientific Programming第4章で全てを一旦終了。 良かった点、反省点、今後。

下記講座を無事終了しました。

www.coursera.org

今回juliaの事をよくわからずに、このコースを進めましたが、色んな反省点があります。

 

1 (反省)言語バージョンをちゃんと確認しましょう。

開発の時は気にするくせに今回はまったく何も考えずに初めてしまいました。

教材のバージョンは0.6対応。自分が準備したバージョンは1.0だった為、ちょっと余分な時間が・・・・

 

2 (良かった)学習しながらツイートやブログを活用しましょう。

ツイッターの勉強垢などを使ってつぶやくのは学習のモチベーションを上げるのにやはりいいです。近くの知り合いや仕事仲間が同じ時期に、自分の学習したい項目に食いつくとは限らないですし。自分の周りはもっかPythonruby,nodeなどに夢中な人はいますが、Juliaをやろうとする人はいませんでした。

ツイッターならもっか学習中の人の言動も見て取れてモチベーションが維持できます。

 

3 (反省点)これから何をしたいかも考えておいた方がいいかも 

久しぶりに授業を受けるうような感じで学習を進めるのも、詰まってしまった課題を解いていくのも楽しかったです。ただ、終盤にさしかかるにつれ祭りが終わるような寂しさも・・・

やはり自分でやりたいプロダクトや実際の仕事に結びつけて置くことを初めに想定しておかないと、レッスンだけで終わるのはもったいないです。

 

 

 

今後

もう少しJuliaの学習をしながらWEBのフレームワークなどでサイトを作るか、深層学習とかにいくか・・・

どのみちこの言語自体になれる必要はありますかね。

 

 

 

 

 

 

 

データサイエンティストの仕事。 実データと法則と未来予想。 Cousera Julia Scientific Programming Chapter3の締めくくり

www.coursera.org

チャプター3を無事終了です。データの型や、実データからの各値の調整などなど、ここまで一通りやればJupyter Note Bookを使ってのデータ分析の触り部分が理解できます。

 

ここまで来て、改めてデータサイエンティストって何だろうなーって考えてしまいました。

 

データサイエンティストって何?

www.sas.com

  • - 統一性のない大量のデータの収集と、より利用しやすいフォーマットへの変換
  • - ビジネス課題をデータ主導型の手法を用いて解決
  • - SAS、R、Pythonを含む幅広いプログラミング言語による作業- 
  • - 統計情報の的確な理解(統計的検定と統計的分布を含む)
  • - 分析手法に関する最新動向の把握(機械学習、ディープ・ラーニング、テキスト・アナリティクスなど)
  • - IT部門および業務部門とのコミュニケーションとコラボレーション
  • - データに潜む秩序やパターンの発見と、ビジネスの最終利益に寄与する傾向の特定

 

 非常に的確に色々書いてありますが、データというリソースを料理する人間というポイントは一貫してます。

 

要はデータという塊から意味のある価値を探し出す事ができるという事です。

 

競馬予想する人もある意味データサイエンティストって言えますね。

 

ある特定の法則を見つけ出す作業は後々の人工知能系の技術(機械学習、深層学習)のベースにもなりますよ。

 

ここまで来て、データサイエンティストになりたいかと自問自答したら活用する人間にはなりたいが、そこに収まりたくないなってのはあります。

この分野将来的には100%人工知能にとられてしまいますからね・・・・

 

Cousera Julia Scientific Programing コースのJulia コードは0.6 これを1.0.0に対応させる

CouseraのJulia Scientific Programmingコースを受講中です。

www.coursera.org

 

前回に続きChapter 3を受講していますが、前回まで使ってたJuliaBoxをやめてデスクトップにJupyter Note Book を入れて学習開始です。

Julia v0.6.1のインストールとJupyter Notebookで使うまで

 

上記はバージョン0.6.1用ですが、現行の1.0でもバージョン指定を変えればOKです。

今回はplotting=作図という事で簡単なグラフ作成です。

 

サンプルを開いて、簡単な作業をしようとした所

f:id:gpstandard:20180927223312p:plain

となり、そもそもPkg importとPlotsが無いという事でaddする事に

f:id:gpstandard:20180927223237p:plain

無事色々インストールして課題をと思ったら・・・・

 

ここで初めて、このCouseraのコースがJulia 0.6時代の物ということに気づく。

 

# Setting up a custom stylesheet in IJulia
# New in 0.6
file = open("style.css") # A .css file in the same folder as this notebook file
styl = readstring(file) # Read the file
HTML("$styl") # Output as HTML

 

この中のreadstringが無いと言われ、検索するとdeprecatedという結果に

f:id:gpstandard:20180928021601p:plain

今の1.0系ではこういう書き方。

# Setting up a custom stylesheet in IJulia
# New in 1.0.0
file = open("style.css") # A .css file in the same folder as this notebook file
styl = read(file,String) # Read the file
HTML("$styl") # Output as HTML

 

無事これでスタイルがあたった。

 

ほう・・・・・・・

という事は・・・・・

 

冒頭で使わない予定の JuliaBoxにログインしてみると

f:id:gpstandard:20180928021848p:plain

やっぱり・・・・2つバージョンが使えるようになってる。

残念ながら、自分のデスクトップには1.0.0しか入ってません。

 

そして続けて

# New in 0.6
tempvar = Array{Any}(4)
fill!(tempvar, "hello ... word")

 ここも

# New in 1.0.0
tempvar = Array{Any}(undef,4)
fill!(tempvar, "hello ... word")

こういう書き方、ほう・・・・undef・・・・

 

これは軽く学習に障害がありますな・・・

 

Julia 1.0.0のリリースが2018年の8月なので、これはいたしかたがないですね・・・

それこそPythonの2系と3系ぐらいの言語仕様の変更があるのかぁ・・・・

 

0.6で学習を進めてもいいですが、まだ初めたばかりだし1.0で進めて細かな違いに気づくのも面白くはありますが・・・・

 

一旦ここは考えます。

 

 

 

 

 

 

 

JuriaでJupyter Note bookを利用する現実的なデータ分析の学習初め、 SIRモデル&Plotsでグラフ作成

CouseraのJulia Scientific Programmingコースを受講中です。

 

www.coursera.org

 

今日はChapter 3からスタートです。

 

Week3_1-SIRmodels 

今回のNote bookの利用にはSIRモデルが使用されます。

 

SIRモデル - Wikipedia

 

SIRモデルは、感染症の流行過程を記述するモデル方程式 らしいです。

コースの説明を英語で見ていってもいいですが、wikiで理解するでもいいでしょう。

 

微分の理解があればそれぞれ表を元に描かれたのS,I,Rの関係を数式にしている意味合いも理解できました。

また、

βは感染率 = lambda

γは回復(隔離)= gam

で定義され、dtも設定されている事を見れば、今回のグラフの関数の理解は大体できました。

 

今回利用されているPlotsというパッケージについては下記が参考になりました。

Plots/GR: グラフ package のおすすめ · julia について

 

今回登場してませんが、3次元グラフとかソソりますねw

 

次回は3-2の部分を取り組む予定です。

 

 

 

Julia Boxの Jupyter Note book にCousera教材をuploadする

前回、第1章でJulia BoxやJupyter Note bookについて準備をしましたが、第2章からはデータ、統計に基づく基本操作などを習得する事ができるようです。

 

Julia Scientific Programming | Coursera

で、実際の コース内容を眺めるのもいいですが、同時にうごかせる教材が付属しています。

f:id:gpstandard:20180924221002p:plain

  ↑ こちらのResources部分から、今回使われている教材部分をダウンロードできます。

正直ビデオを見続けるより、下手したら教材触った方が早いかも・・・

 

Julia Boxへのアップロードはわかりやすいのですぐできると思います。

f:id:gpstandard:20180924221416p:plain

↑Uploadから適当に・・・・

 

と考えてしまいますが、まあ英語の勉強をしながらという意味もあるのでザッと眺めるにとどめました。

 

第2章ではCSVの読み込みやグラフ作成の為のデータ処理の定義、Loopなどの使い方が見てとれました。

 

Juliaもそうですが、改めてJupyter Note bookはわかりやすいツールだなと関心しますね。

 

 

Julia Box と Jupyter Note book を使えるようにする。REPL環境で色々な式を試す。

続けて

Julia Scientific Programming | Coursera

をやってるわけですが、最初の段階で Julia Boxの利用法の説明に入ります。

 

Julia Boxとは?

f:id:gpstandard:20180924193730p:plain

JuliaBox

簡単に言うとオンラインでJulia が利用できるサービスです。一応Freeプランもあります。

 

JuliaBox上でJupyter noteを使えます。

 

Jupyter noteとは?

f:id:gpstandard:20180924194320p:plain

ノートブックと呼ばれる形式で作成したプログラムを実行し、実行結果を記録しながら、データの分析作業を進めるためのツールです。

 

Pythonで利用した事はありますが、Juliaでもいけるんですね。

Julia v0.6.1のインストールとJupyter Notebookで使うまで

こちらを見るとローカルでのJupyter Note book利用もいけそうですね。

 

どうも今回の講座の第1章はこのJpyter Note bookの使い方のさわりで終わりのようです。

 

章の終わりもJulia REPLで終了ですし・・・・

 

このまま終わればJuliaも単なる計算機で終わってしまいます。

続きはまた後ほど