親です。

読んだ本とかについて書いてます

【感想】『データサイエンティスト養成読本 登竜門編』を読んで

おつです。読書したのでそれの感想とかまとめとかをします。読んだのは下記の書籍。

データサイエンティスト養成読本-登竜門編
Amazon CAPTCHA

感想

この本をざっくり紹介すると、データサイエンティストっていう(比較的新しい)職の概説書だ。この本はシリーズ化しており、今回の登竜門編を含め全部で4冊が発行されている。

改訂2版-データサイエンティスト養成読本-プロになるためのデータ分析力が身につく!
Amazon CAPTCHA

データサイエンティスト養成読本-機械学習入門編
Amazon CAPTCHA

データサイエンティスト養成読本-R活用編
Amazon CAPTCHA

今回読んだのはこのシリーズの一冊目に当たるもので一番平易(なはず)。取り扱う内容も広くて、以下の要素について書いてある。

  1. データサイエンティストという職について
  2. 基本的なツール(バッシュ、DB)
  3. 分析ツール(excel, R, Python
  4. 前処理
  5. データの収集方法
  6. 簡単なデータ分析チュートリアル
  7. 統計の基本
  8. 数理モデル
  9. 機械学習の概観

割と本当に幅広いんだが、めっちゃざっくり! ってわけでもなくて俺みたいな何も知らん人にはちょうどいいくらいの難易度だった。手を動かすためのものも各章用意されているし、丁寧にやろうと思えば丁寧に勉強できる。俺は今後データサイエンティスト的なにかの全体像を掴みたかったので、さらっと流しながら読んだ。

その中でもここは振り返って読みたいな、というのが下記。

  • DB
    SQLについて
  • データの収集方法 クローラーとかの作り方が載ってた
  • 統計の基本
    微積の概念が出てた
  • 数理モデル
    世の中のものを数式で表現する、めっちゃかっこいいな!
  • 機械学習の概観
    だいぶ流した。「機械学習でできること」の図が一発で概観を理解できるナイスな図だった

ここら辺は一つ勉強するにもそこそこに大きなまとまりなので、この本で基本的なノリみたいなのをざっくり掴んでから勉強したい。

これから勉強したいこと

とりあえずざっくり理解して、困った時に読み返せばいいところも分かった。今後は数学・統計・機械学習の各分野を勉強することになると思う。全部並行したいけど、まずは数学と統計からかなあという気持ち。

以上!!!

【キャリア・転職】データ分析系企業5社面談して分かったこと。

おつです。分かったことだよ。

データ分析企業と面談して分かったこと

データ分析企業の分類

①事業(データ)を持ってる会社
自社でやれるので開発環境を整えやすい。特定の分野のデータ分析に限られるが、深くはやれる。
②研究所

③受託系の会社
いろんな会社を相手にするのでいろんなデータ分析スキルが身につく。開発環境は銀行相手とかだと制限を受けることも。

データ分析で強い会社

データ分析企業で強いのは下記2つのどちらか。
①データを持っている会社
データあってのデータ分析なので。また、一度分析した内容を他社に売るとかもできる。(受託だと、相手の会社に合わせてデータをいじって初めて価値が出る。)
②人材を囲える会社
良い人材は良い人材のいる会社にくる。

最終的には①が強い。データ持ってる会社がエンジニアを囲ったら、その時点で受託系は全部不必要になる。受託系でゴリゴリやってた会社がデータ持ってる会社と合併するケースもあるくらい。

データ分析の3つのスキル

①ビジネス
データ分析はコンサルチックになるので相手のトップと話すスキルも必要。
②コーディング
実装できるか。これはJavaとかCやれてればよい。逆にPython半年とかは実力が測れないらしい。
③統計
統計の知識。統計検定準一級レベルが望ましい。大学の講義だと二級レベルとのこと。

転職の際はこれらに加えて実務経験があれば加点されるかも。ただし、どれくらいのビックデータを扱ったかによる。あと、文系出身だとどの程度数学がやれるのか心配されるケースもあるのでそこは押さえた方がよさそう。

データ分析から進めるキャリア

①データサイエンティスト
機械学習エンジニア

データ分析のレベル、それぞれ必要なスキル

①データ抽出・加工
必要スキルは
SQL、tableau、エクセルパワポ

②統計・モデリング
必要スキルは
統計、R、SPSS、Mdeler、kaggle

機械学習・AI
必要スキルは
機械学習Python、AIプラットフォーム

勉強法

これは色々記事あるからそれ読んだ。 データサイエンティスト&機械学習(人工知能)エンジニアのスキル要件と、過熱する人工知能ブームが生み出す狂騒曲と(2018年2月版:追記あり) - 六本木で働くデータサイエンティストのブログ

以上!!!

【Python】データ分析 - データ分析って、つまり、どういうことなのか考える

おつです。かく。

データ分析とはつまりどゆこと

今データ分析の勉強をしており、Pythonのデータ分析ライブラリ群の使い方をちまちま覚えている。ふーんこんなもんかと思うんだが、ただ、使い方がわかったところでどうしようもない面はある。なので、データ分析するとき、どんなフェーズがあるのかとか、それぞれ何を目的に行う処理なのかなどまとめときたい。

データ分析全体の意味

データ分析データ分析言い過ぎてなんかよくわからんくなってきたが、データ分析ってつまりデータから意味を取り出すことだよな?

データ分析の作業フロー

データから意味を取り出すために、以下のようなことをすると聞いている。

分析目的の把握 DBからのデータ抽出
データ加工
分析試行錯誤
何か見立て
現場で実証
実装

それぞれまだチャンクダウンできそうなので、考える。

分析目的の把握

.
.
.
.
.
.

DBからのデータ抽出

どんなデータから意味を取り出すか。

.
.
.
.
.
.

データ加工

ここがPythonならpandasとかで処理するところ。分析が次にあるので、まあ分析できるような状態にしなきゃならんのよな。何があると分析できねえよってなるの .
.
.
.
.
.

分析試行錯誤

.
.
.
.
.
.

何か見立て

.
.
.
.
.
.

現場で

.
.
.
.
.
.

【キャリア・転職】退職(するかどうかわからんけど)理由とか

おつです。かく。

退職(するかどうかわからんけど)理由

・なんとなくSEやってた前職

俺は新卒でSIerに入ってるけど、正直エンジニアになろうって感じで就職したわけでもないし、金融行きたいなってわけでもなかった。単に内定もらえて、配属ガチャで金融に行っただけ。ただ、配属されてみて、まあCOBOLのコーディングが刺激的だったかと言われると微妙だし、ソコソコ重労働でもあったけど、楽しくやって、開発の基礎は学べた。まあそんな感じで、フワーッとエンジニアやってた。

・転機は育休

転機になったのが育児休暇に入ったこと。Pythonに触れて個人開発をして、初めてプログラミングって楽しいなと思えた。いろんな言語を学ぶことが楽しいと感じた。HTML, CSS, JavaScript, PHP, SQLとやってみて、できること増えたし、それぞれ言語設計の違いとかがすごく面白い。

・同時に悩みが

同時に、こうなって初めて「どんなエンジニアになりたいか」「どの業界ドメインで働きたいか」について悩んだ。これ、自分はあんまり狙ってIT入ってないから、エンジニアとしてのアイデンティティのなさとかバックグラウンドのなさに不安になる。こういう悩みを持つと、俺はやっぱ技術職向いてないのかな? って思ってしまう。

・なぜ今更悩んだ? - 覚悟が決まったから

ただ、そう思う一方で、面白いのは、俺はこれまでそんなこと悩んだことは無かった。今になって急に悩み始めた。これなんでなんだろ? って思ったんだけど、多分それは、俺自身がエンジニアとして行きていくことに覚悟ができたってことなんだと思う。

・覚悟の理由 - 理由なきエンジニアと理由が求められる現在

なんとなく内定もらって、なんとなく金融で働いていた頃、それは単に流れでそこに行き着いたってだけだったから、別にエンジニアをやってる理由はなくって、けど辞める理由もなかったからそこにいた。エンジニアやってることに理由なんていらなかった。
けど、今になってみると、俺はエンジニアやりたいから、なんでやりたいのか理由がいるんだよな。だからどうなりたいとか、そういうのが必要になった。つまり、俺はここにきて初めてエンジニアとして行きていくことに覚悟がついたってこと。

・今後どうなりたいのか?

んでそうなった時、今の金融でCOBOLを書き続けたいかっていうとそうは思わない。もっと俺のやりたいエンジニアリングがあるなーと。卒論で「坊ちゃん」をグラフ使って解説したなあと思って、データ分析みたいなのやってみたら面白いかも知れんなと。前職でもコーダーチームのリーダーやってた時みんなの成績管理して降ってたのは楽しかったし。
データ分析弊社にあるならいいけどなさそうだから、まあ転職するか〜〜と思ってる。

将来像

データアナリストとしてスキルを身につけたのちは、マネジメント方面へ進むというよりはWebなど別領域のスキルを身につけたり、データ分析の更なる技術研鑽を行ったり、現場でのキャリアを重ねて行きたいと考えております。 あとコンサル方面もあんまりで、どっちかっつーと延々エンジニアで、データをどう取ってくるかみたいな面からハードにいったりwebにいったりしてみたい。

以上!!!

【SQL】SQLの基本的な書き方についてまとめ

おつです。SQLのについてまとめる。

SQLの三つの言語

SQLには三種類の言語がある。

  1. データ定義言語(Data Definition Language)
  2. データ操作言語(Data Manipulation Language)
  3. データ制御言語(Data Control Language)

が、書いていく時にはそーんなに意識するところもないと思うのでここではまとめて扱うことにする。

基本的な書き方

SELECTで取得したいカラムを指定してFROMでどのテーブルから取得するのか指定するやつ。

SELECT カラム名
FROM テーブル名
WHERE 条件文
ORDER BY カラム名 ASC(または DESC)
LIMIT 件数;

エクセルみたいな表を想像して欲しいんだが、カラム名ってのは列の名前のことで、テーブル名ってのが表についた名前のことだ。
条件文についてはいろんな書き方があって、WHERE カラム名 = 'やくざ';とかWHERE カラム名 >= 100;とかWHERE カラム名 LIKE '$¥%なまはげ%';とか書ける。WHERE NOT カラム名 = 100;WHERE カラム名 IS NOT NULLみたいにNOTを使うこともできる。
条件文で出てくるLIKEってのは、カラム名のうち特定の文字列を含むデータを取ってきてねという命令。%を使ってワイルドカード指定もできる。
ORDER BY は並び替え。ASCが昇順、DESCが降順だ。
LIMITは件数。5とかって書けば5件だけ出てくる。
ちな、文末の';'は絶対に忘れると思うので気をつけたい。

もうちょい発展系

重複を消す

SELECT DISTINCT(カラム名)
FROM テーブル名;

取得したデータに足したり引いたり関数かけたり

SELECT カラム名 + 1
FROM テーブル名;

こんな感じでカラム名書くところに計算式を入れられる。また、SUM(カラム名みたいな感じに組み込み関数を埋め込んだりもできる。まあでもSELECT文がめっちゃ長くなったりしたら困るから、多分個々に埋め込まなくっても良いみたいな書き方がそのうち出てくるんだと思う。

ちな、関数は他にもあって、AVGMINMAXCOUNTなどがある。

GROUP BY

また、ちょっと難しいもので、GROUP BYってのがある。

SELECT MAX(price), date
FROM table
WHERE category = 'ごま'
GROUP BY date
HAVING MAX(price) > 200;

こんな感じ。これは、tableってテーブルからcategoryがごまのもので、dateでグループ化して、priceの最大値とdateを表示したのち、MAX(price)が200を超過したものだけ表示するってこと。
新しく出てきたものについて解説すると、GROUP BYってのは文字通りグループ化するもので、これを使う時SELECTにはGROUP BYで使われたカラム名と集計関数としか書けない。
また、HAVINGWHEREと同じく条件文なのだが、違うのは条件をかけるタイミングだ。こいつはGROUP BYされたあと、条件文を適用する。ので、集計結果に対して条件をかけられたりする。

ちな、SQLのコマンドには実行の優先度があって、下記のような順番らしい。

検索:WHERE
グループ化:GROUP BY
関数:MAXなど
HAVING:HAVING

ほーん。

JOIN - テーブルの結合

JOINを使うとテーブルの結合ができる。

SELECT カラム名
FROM テーブルA
JOIN テーブルB
ON テーブルA.カラム名 = テーブルB.カラム名

こんなもん。

以上!!!