【雑談】アフリカでデータサイエンティストとして働くための戦略を考えよう
私の夢はアフリカでデータサイエンティストとして働くこと
実は今、「夢をかなえるにあたり、今の業務では成長できることがかなり限られているな。そろそろ次のステップに踏み出すべきだな。」という思いを持ち始め、転職活動中である。
「今後どのようなキャリアを形成していくべきか」
「データサイエンティストとしてどの分野に特化していくべきか」
等様々なことをもっと具体的に考える必要があると再認識した。
そこで、今の私の考えをまとめようと思う。
もし、ご意見あればご教示いただければ幸甚です。
1.まずはゴールを確かめる
アフリカでのデータサイエンティストの求人を確認してみたところ、意外にも多くの求人があった。下記にそのなかでも特に面白い(将来働いてみたいなあ)と思ったポジションを載せます。
↑気候変動や植生の多様性に関するデータサイエンティストの募集
↑United Nations Office at Nairobiのデータサイエンティストの募集
↑Agriculture / Agro-Allied , Data, Business Analysis and AIに関するデータサイエンティスト(リサーチャー)
自身が魅力に感じる仕事の共通項として、
・機械学習モデルやAIの開発、開発物の実装を行える仕事
・第一次産業にやはり興味がある
(高校時代は生物が得意分野だったり、大学時代は農業経済学を専攻していたりと、マインドとして自然に近い部分に強い興味が根っこにあるようです)
・開発途上国の貧困問題や環境問題等の社会問題を、データの力で解決したい
上記のような業種に応募するにあたり、どのようなスキルが求められるのか
下記、応募要件の共通項をまとめてみた。
・MSc or PhD in any related fields
・Expert knowledge in applying machine learning techniques and algorithms, such as random forests, gradient boosting, support vector machines, neural networks, and ensemble methods to solve agronomic problems and optimize decision support systems.
・Demonstrated ability to program in R and/or Python.
・Knowledge of business intelligence tools (SAP Business Objects, etc.) is required.
・Experience in tools managing version control such as Git is desirable.
・Experience with database or programming languages (SQL, Python, R) is desirable.
・Experience working with partners from academia, NGOs, CGIAR centers, and national agricultural research centers in the context of smallholder farming systems in the lower- and middle-income countries.
・Excellent oral and written communication skills in English. French would be a plus.
上記の内容について簡単にまとめると
・関連した分野の修士号・博士号を取得している
・プログラミング言語の使用経験(1位:Python、2位:SQL、3位:R)
・機械学習の知識
・アプリやクラウドの開発経験
・関連業界での業務経験(特に第一次産業やNGOなどの国際機関においては重視される)
・英語でのコミュニケーション能力
2.英語コミュニケーション力優先 or データサイエンス力優先??
英語のコミュニケーション能力の向上を優先すべきか、データサイエンス能力の向上を優先すべきか。
どちらかを優先した場合の、魅力的だなと思う企業を複数、例として挙げてみた。
英語コミュニケーション力を優先する
データサイエンス力を優先する(機械学習やAI開発についての専門性を高める)
データサイエンスを通じたコンサルティング力を高める
アプリの開発、第一次産業に特化したデータサイエンスを学ぶ
3.今考える、最適な転職先とは
英語コミュニケーション力を鍛えることについては、TOEICやTOFLEでハイスコアを出せば、ある程度の能力の提示は可能である一方、データサイエンスの分野では業務経験が必要になることが多いと思う。(もちろん、KaggleやSIGNATE等、機械学習コンペで賞を取ることなどで能力の提示ができるとも思うが。。。)
一旦、自身が好きな農業や林業等の第一次産業の視点からデータサイエンスに向き合うことで自身の専門性を高めることを考え、転職活動をしてみようと思う
【雑談】データサイエンティストとして取得してもよさそうな資格まとめ
対外的な自己研鑽の証明になる資格取得。
国内、海外で取得できる資格のうち、将来のapplyの際に使用できそうな資格、勉強してもよさそうな資格をまとめた。
(全体を通して参考にした記事は最後に記載)
・G検定
受験料:¥13,200
受験資格:特になし
受験方法:希望の受験日に応募して、受験する
説明:
G検定とは、一般社団法人日本ディープラーニング協会(JDLA)が実施するAI・ディープラーニング活用のためのリテラシーを有しているかを認定する資格です。ディープラーニングを事業に活用するための能力や知識が問われます。
感想:
AI・ディープラーニング活用のリテラシーを有することを証明できる資格とのことで、転職の応募条件にあるなど、比較的必要とされている資格。
合格者は、合格者コミュニティ「CDLE」へのアクセス権限ももらえるみたい。
日本最大級のAI人材コミュニティ「CDLE」、気にはなる。
受験の第一候補である。
・E資格
受験料:
受験資格:一般社団法人日本ディープラーニング協会認定のプログラムを修了
受験方法:
説明:
E資格とは、AI人材の能力を認定するための試験で、機械学習や深層学習の適切な手法を選択し、実装する能力があるか問う試験とのこと。
E資格を受験するためには、試験日の過去2年以内に一般社団法人日本ディープラーニング協会が認定したプログラムを修了していることが必要
感想:
実装能力がとわれるため、データサイエンティストよりかはエンジニア向けとのことだけれども、データサイエンティストも実装までできたほうがいいと思うから受けてもいいと思った。
プログラムを修了するのに、だいたい10万円ほどかかるみたいだから、そこだけネック。検討中。
・CBAS
受験料:8800円
受験資格:特になし
受験方法:IBT方式またはCBT方式(通年)
説明:
感想:
Excelを用いるテストで、Excelでのデータハンドリング等の証明になるとのこと。
Excelを多用する部署においては、大切な資格かも。
・Certified Analytics Professional (CAP)
受験料:$640
受験資格:特になし
受験方法:IBT方式またはCBT方式(通年)
説明:データ分析の専門家としての知識を持っていることを証明するための資格。
感想:
海外でデータサイエンティストとして働く際も証明書として使用できる資格。
・統計検定準1級
受験料:¥8,000
受験資格:特になし
受験方法:IBT方式またはCBT方式(通年)
説明:
大学において統計学の基礎的講義に引き続いて学ぶ応用的な統計学の諸手法の習得について検定します。
統計検定準1級は、2級までの基礎知識をもとに、実社会の様々な問題に対して適切な統計学の諸手法を応用できる能力を問うものです。
感想:
統計検定準1級程度を持っておけば、ある程度の機械学習の参考書は読めるようになると思う。面白いと思うので、ゆくゆくは取得したい。
数理的な面については、大学で数学科を専攻していた人に確認したところ、もう少し踏み込む必要があるとのこと。
参考:
【最後に】
全体的に、「これだ!」みたいな資格はまだない印象。データサイエンティストという職業が比較的新しいからか。
あと、なぜに受験料がこんなにも高いんだ。。。そのお金で美味しいご飯食べれるぞ。。。受験料が高いので、しっかり準備して試験に挑みたい。
【参考】
【機械学習(4/28更新)】「Python-機械学習プログラミング-第3版」(随時更新)
私の積読本のなかでも、最古参で異彩な色を放つ「Python-機械学習プログラミング-第3版」をついに手に取ることができた!!
そこで、勉強したことを、理解を深めるためにもここにまとめていこうと思う。
第18章くらいまであるので、随時更新していく。
【第一章:機械学習の種類と】
機械学習には大きく3つの種類がある。
③強化学習
学習データ(訓練データ、教師データ)と呼ばれる、モデルを作成する際にあてるべきデータがすでに存在する際、有効な機械学習方法。学習データで予測するものとしては、あてるべきデータが0か1の2値分類のものもあれば、3以上のものもある。
学習データがなく、どれが正解のデータかがわからない状況において有効な機械学習。
(e.g.)クラスタリング(大量の情報をクラスに分類して構造化すること)によるグループの発見
③強化学習
環境とのやり取りに基づき性能を改善するプログラム。
(e.g.)チェスエンジン、将棋AI等
【第2章:Irisデータを読み込もう!】
パーセプトロンとADALINEについての紹介があったが、あんまり使われる場面を見たことがないため、スキップして、今後使用するであろうIrisデータの取得を行う。
Iris(アヤメ)データとは、教師あり学習を学習する際、例題としてよく使われるデータで、scikit-learn(a.k.a. sklearn)のdatasetsモジュールに含まれている。
まずは、sklearnのインポートから
conda install skearn
import sklearn
【第3章】
【本のまとめ】「世界一流エンジニアの思考法」
牛尾剛さん著
牛尾さん…1971年大阪生まれ。米マイクロソフトのシニアソフトエンジニア。関大卒で一番今乗ってる人。
「世界一流エンジニアの思考法」
自分も普段プログラムを書いて機械学習を行っているため、海外でエンジニアとして仕事をしている人の話は、共通点も多く、上司によくダメだしされることの解決方法もたくさん書いていたので、購入した。
非常にためになる話が多かったので、自分用に簡単にまとめる。(ネタばれにならない程度に)
1.エラーがでたとき、いきなり手を動かさず、どこで問題が起きているのか仮説を立てて、それを検証するようにエラーを解決すべき。
僕もエラーが出たら、その瞬間から問題を考えてわからなかったらググって、またエラーがでて、という悪循環を平然とやってた。
しかし、よく考えたら、先輩に「ここでエラーが起きちゃって」ていうと、「エラーを見せて」「ああ、たぶんこれが問題だと思うから変えてみたら」
といったような方法でさっとエラーを解決してた。
プログラムを回すという事実があるなか、おそらく仮説を立てて検証するという方法が一番効率がいい気が確かにする
2.物事を理解するのには時間がかかる
その通りだけど、普段なにげなく理解したと思っていた自分を改めなおす言葉やった。
今までの理解は理解ではなかったな。
理解したかどうかの定義は
●ほかの人に説明できるかどうか
●応用可能かどうか
なので、ほかの人に説明するように、このブログを始めたといっても過言ではない。
3.小さなドキュメントをコードを書きだす前に書く
俺はいままでコードを書き終えてから、ドキュメントを他人向けに書いてて、確かにドキュメント書くのは復習にはなるけど、、、て感じやった。
しかも、コードを書く中で、「これもいる」「あれはいらん」が大量発生するから、
これからはコードを書く前に、ドキュメントを書くようにします。。
4.マルチタスクをやめる
本書にも記述されていたのだが、人間の脳はマルチタスクに向かない。これは様々な場所で言われていることだが、実際は、同僚からチャットが来たり、メールが来たり、仕事現場では、様々な場面でマルチタスクにならざるを得ない場面がある。今までは「マルチタスクをしない」ことを特に考えてなかったので、そのような突発的な仕事ができれば(その仕事がすぐ終わる場合は)今までの仕事をちょっと中断して、対応していた。
しかし、1時間~数時間「決まった時間はこれをする!」と決めることで、各段に仕事の効率が上がった気がするので、おススメだ。
まとめ
世界の一流エンジニアの思考を少しでも知ることができた。思考方法についても様々な改善点を知ることができた。
その他にも、エンジニアとしての働き方の参考となる考え方が多く載っていたので、「世界一流エンジニアの思考法」おすすめです!!
【機械学習(3/23更新)】モデルの精度を確認するための指標について(Indices as a measure of the model accuracy)
When I explain the rogit model which I made recently, I often use some indecies to explain how my model is perfect (or dreadful).
We can understand easily but difficult to explain to my boss or coleagues, therefore, I would like to summarize some indices I often use.
1.AR (Accuracy Ratio) score
AR is used as a index to check how the model can predict answer collectly.
AR is also known as CAP curve as well.
AR is calculated by below.
1.The model calculates that the probability of 1(black) or 0(white) for each data.
After that, we sort the data in descending order regarding calcurated score.
Then, we plot with x-axis and y-axis, x-axis is accumurated by data, y-axis is accumurated by predicted score.
Then , we calcurated the area between the plotted line and 45 degree line.
The score created in these steps are AR score.
2.AUC
AUC is an avvribation of the area under the curve.
AUC is calculated as below.
1.The model calculates that the probability of 1(black) or 0(white) for each data.
After that, the true positive rate and the false postive rate is calicurated.
the true positive rate is predicted true data/predicted true + real true
the false positive rate is predicted false/predicted false + real false.
Then,