上記のようなクエリの結果になってしまいました。10:06Prestoで2つの配列を同時に行に変換するTweet広告を非表示にするコメントを書くもっと読む2018-08-08勉強会に登壇してきました。お誘いもあり登壇してきました。engineer-parallel-work.connpass.com発表資料はこちら。speakerdeck.com副業をしていて感じていることを話してきた。数ヶ月だが、いい振り返りになった。行い経験値を増やすこと。そのサイクルを回すことで自身の視座を高くしていく努力をしていくこと。それを再認識できた発表だった。懇親会であった質問ものすごくありがたいことに参加者から、『発表が良かった』と言ってくださる方が多くいらっしゃった。その方々といろいろ話すことができたので、質問と自分の考えをまとめておく。そのつながりで始めることができた。興味はあったが、なかなか始める決意がつかなかったが、とてもいいきっかけをくれたと思っている。いいなと思っている会社があり、そこで副業できればなと思っていますが、どう思いますか?副業として受け入れてくださるのであれば、積極的に取り組めばいいと思っている。外から見ていていいなーと思う会社はいっぱいある。入ってみて、あれ?と思うこともある。なってしまったときに、現職を退職してまでって後悔がすごく、これが現職にとどまり続ける要因の一つなのかと思う。思ったより肌に合わないと判断できた場合は、信頼を稼いでつながりを構築することに専念すればいいと思っている。アウトプットの仕方どうしていますか?データ分析の場合、データを分析して最後の可視化と考察の部分が重要だと思っている。必要なタスクに対して実現可能なのか不可能なのか不可能な場合、だいたい手段はあるのかもっと作業を進めれば可能性はでてくるのかなどが期待されているのではないだろうか。データ分析といえばデータの前処理が重要であることは重々承知している。最初から前処理をコツコツやっていても、「何してるんですか?」ってなると思う。「既存のデータを使ってこうしました。ここの部分の改善をすることで精度があがると思うので、次にここを着手します。道筋を見せて上げたほうが納得感が得られるし、自分自身必要な処理が見えてくるはずである。アウトプットを細かく見せることはすごく重要だと考えている。ポートフォリオはどうされていますか?ここで悩んでいる人が多かった印象だった。自分は知り合いの相談から副業がスタートしているので、ポートフォリオとかを考えなくても良かった。いろんな会社の案件を触ってみたいなと思ったときに、ポートフォリオをつくらないとなとなった。ポートフォリオとして上がるのは、「エンジニアならgithubだろ!」というのが定石なのではないだろうか。その声がすごく多かったし、それには賛成である。githubにコードを上げることは難しいのではないかと思う。そこで僕はブログもセットでポートフォリオを組むといいのではないかと思っている。データ前処理の中で得られた気づきは、大抵、gistやgithubに上げるほどではない。その一部をブログとして残すことで自分がどの程度データに触れているのかというのをアピールすることに繋げられる。積もり積もればれっきとした履歴書であるし、コード以外の考えをアピールすることができるのでよいと思う。一度は読まれたほうがいいと思う。kakakakakku.hatenablog.com最後に今回は本当に貴重な会で登壇させていただけた。21:19勉強会に登壇してきました。個人的にはTensorFlowでモデリングするようになってから、numpyを触る頻度が高くなって、それに伴いpandasを触る機会が減っていった。データの可視化もpyplotとかseaboneとかを使って、可視化の方法を調べながら模索している状況が増えていった。先日副業の案件で学習データをサクッと可視化させようと思ったときに選んだのは、pandasだった。pandasは優秀かなテキストデータを読み込んで、異常値を探すとかその場でフィルタリングしようかと思うと、やはりpandasは楽だなと改めて思たった。bins=<ビン数>)とすれば、指定したカラムだけのヒストグラムが可視化できて、すごく楽だった。分布はどのような形なのか、どの範囲で異常値を切り出すのかなど判断してそのままDataFrameでフィルターすればいいので、短時間でデータセットのチェックと更新ができた。実験するノートブックを用意してある、としてます。同じJSONの形式で保存することで実験のノートブックを再利用することが前提です。f)のような処理になる。81}]このような形式で保存されている。いわゆる、key-valueが配列に格納されている形である。配列の1要素が1行(1レコード)のデータを表現している。何も意識せずにDataFrameをJSONファイルとして保存すると痛い目に遭った。それが今回の教訓だった。pd.read_json('dict2json.json')とすればよい。このDataFrameをJSONとして保存する場合、以下のように書けば良い。df.to_json("df2json.json")人によりけりだとは思うが、簡単で直感的だ。この場合保存されたファイルの中身は、{"double":{"0":0,"1":2,"2":4,"3":6,"4":8,"5":10,"6":12,"7":14,"8":16,"9":18},"single":{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9},"square":{"0":0,"1":1,"2":4,"3":9,"4":16,"5":25,"6":36,"7":49,"8":64,"9":81}}となる。json.load(f)として読み込むと、1レコードずつとして読み込まれず、keyが想定していたものと異なる結果になる。指定する必要があることに注意する。orient='records')そうすると、[{"double":0,"single":0,"square":0},{"double":2,"single":1,"square":1},{"double":4,"single":2,"square":4},{"double":6,"single":3,"square":9},{"double":8,"single":4,"square":16},{"double":10,"single":5,"square":25},{"double":12,"single":6,"square":36},{"double":14,"single":7,"square":49},{"double":16,"single":8,"square":64},{"double":18,"single":9,"square":81}]と保存された。勉強していて、教材としてはhttps://www.amazon.co.jp/dp/4839965625を使っている。コードはノートブックに記述していて、JupyterLabを利用している。して自作で3×3マスの迷路を自作して、選択した行動をアニメーションとして描画するところで問題があったのでメモしておく。エージェントが通るパスをアニメーションとして表示するコードを部分的に抜粋して載せておく。"imagemagick")HTML(anim.to_jshtml())state_historyにはエージェントが通るパスのが保存されていて、それをアニメーションとして動かす。利用すると簡単に実現できる。Notebookで実験することを想定しており、簡単にアニメーションを動かすことができた。JupyterLabではJavaScriptの問題のためかアニメーションを再生することができない。この問題はGithub上でissueとして上がっている。関数があり、これを使ってもアニメーションを再生できなかった。やって解決したかJupyterのNotebookはコードのみでなく、Markdownとして文章を記述することが可能である。今回は、アニメーションをgifとして保存し、そのファイルをMarkdownで読み込みアニメーションを再生することで回避した。"imagemagick")でアニメーションをgifとして保存している。GIF](maze.gif)<div>と記述した。NotebookでもJupyterLabでもアニメーションを表示することができた。難点としては、アニメーションが無限にリピート再生されてしまうところくらいかなと思っている。回避方法が見つかってよかった。おなじ問題に出くわしている人の解決方法になれば幸いです。Serving機械学習で学習済みモデルの予測結果をどうやって返すべきか勉強したので、WebAPIとして提供する場合のコードのメモする。READMEに拙い英語でリポジトリの内容について書いた。画像データの受け取り方の2つである。関数を使って推論が行える。一つの画像データの受け取り方について。いう形式に変換して渡している。画像として復元し、推論可能なデータサイズにリサイズすることで予測を行っている。モデルを作成して推論結果を検証するためのインターフェイスとしては効率の良い方法の一つではないかと思う。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。