非プログラマーのためのインフォマティクス入門。(仮)

非プログラマーがインフォマティクスについて勉強したことを記録します。主にKNIMEというソフトを使用しています。

非プログラマーのためのインフォマティクス入門。(仮)

家族が増えました

お久しぶりです。

いろいろと忙しくしていて、更新ができませんでした。

 

はい、先日子供が生まれました!

 

わりと初期からバタバタしていていて、

切迫流産→切迫早産という流れで、出血もずっと止まらないし、なかなか不安な日々を過ごしていましたが、無事にゴールすることができました。

…最終的には逆子だったので、帝王切開になるというフルコースでしたが。

f:id:sumtat:20171224224559j:plain

上の子は2歳になります。少し重たくなってきたなーとは思ってましたが、新生児と並べると、結構でかくなったと実感しました。

 

今年の妻は災難続きで、

  1. 年初に虫垂炎で入院
  2. つわりで苦しみ始めたあたりで、切迫流産のため入院
  3. 帝王切開のため入院

一年で3回も入院してしまいました。 

出産に関しても里帰りとかではないので、上の子と私と二人で過ごさなければいけない日々が結構あったわけですが、子供は大泣きもせず、むしろ私が助けられたくらいです。サイズだけではなく、中身もしっかり成長しているようで驚きました。 

下の子も、最終的には3450gとしっかりとしたサイズで生まれてくれました。それに加えて驚きなのは、だいたい生後3週間が経過した今日の体重が4400gもあり急激な成長をしています! 

私も、子供のご飯をつくったり、保育園の色々や、その他諸々…、少しは上達した気がしますが、これからは二児の父。もっと上手くできるように頑張ります。

 

 他にも新しいことを始めてみようと思って、この1週間くらいはDeepChemに手を出してみることにしました。

まずlinuxのインストール。centos7を選択しました。biosの設定をあれこれしたり、nouveauを無効化したり…。まず環境を作るのに四苦八苦でした。とりあえず動くようになりましたが、graphconvについては正しく理解できるようにちゃんと勉強が必要だなと感じているところです。コードの書き方に関しても、deepchem内ではkeras風のnnを使ったり、tensorflow風の書き方が必要なものもあったり…。お手軽ホホイのホイとはやはり行きませんね。

これまで私、コーディングなんてしたことないですからね。

 こんなことをしているうちにChainer Chemistryとかも公開されたりとか、本当に変化が速い分野だなと感じています。やってみようと思っても、cupyがうまく入らなくてgpuで計算できないし。めげずに頑張ろ。

 

KNIMEのコーナー:桁数をそろえて、頭をゼロで埋めるには

すこしは役に立つかもしれない情報を。

先日、社内の同僚から質問をされました。

「入力数字の桁数が異なるものが混在しているデータの先頭にゼロを加えて、桁数を統一したいのですが、どうしたらいいですか?」

という質問されました。例えば6桁に揃えたい場合、

  • 1 → 000001
  • 123 → 000123
  • 123456 → 123456

ということをやりたいという意味です。

 "KNIMEを使った場合"と"エクセルと使った場合*1"を教えたら、わりと喜んでもらえましたので今回のネタにします。

 

String Manipulationの活用

おなじみ、String Manipulationを使います。

元のデータが下のキャプチャのようなものだったとします。

注)簡単にするために、属性をstringにしてあります。必要があれば、number to stringノードを使ったり、string manipulation内で"string"を書き足してください。

f:id:sumtat:20171224235344p:plain

string manipulationノードにつなげて、こんな感じの内容にします。

f:id:sumtat:20171224235923p:plain

substr(join("000000",$before$), length(join("000000",$before$))-6)

  • substr:右上の例のとおり、左から何文字削るかを指定できる
  • join:文字列をつなげる(例をさがせばわかるよ)
  • length:文字列の長さを返してくれる

つまりですね、

元の文字列の左側にゼロを6個足して(ここまでがjoin

足した後の文字列の長さを数えて(ここまでがlength)

数えたものから6を引いて、オーバーした桁数だけ左から削る(ここがsubstr)

という感じで実現可能です。

f:id:sumtat:20171225000345p:plain

こういう機能がKNIMEのノードとしては用意されていませんが、だいたいのことはなんとかなるものです。パズルみたいで面白いので、是非皆様もいろいろとtryしてみてください。

 

夜は二人の子供が同時に泣くこともあったりで、なかなか更新ができないかも?ですが、今後とも宜しくお願いします。

 

 

 

*1:詳しくは触れませんが、処理を行いたい列を選択後、【セルの書式設定】>>【表示形式タブ内の、ユーザー定義を選択】>>【"種類"のところに、揃えたい桁数分のゼロを手打ちする】ことで可能です。