きょうも亀だけど

機械学習やデータサイエンスの勉強記録など

LightGBMではOne-hot encodingは不要

blog.amedama.jp

orizuru.io

LightGBMではpandasのカテゴリ列の型をcategoryにしてあげれば、数値変換するだけでカテゴリとしての分岐をしてくれるとのこと。

One-hot encodingだるいと思ってたけど、とても便利。
is or is notで分岐するという仕組みも分かったので良かった。

G検定に合格しました

先日、日本ディープラーニング協会のG検定(ジェネラリスト検定)を受験し、無事合格しました。
次回受ける方の参考に、そして己の振り返りとして書きます。

受験時のスペック

データサイエンスや機械学習セミナーには長期のものを中心に数回参加していました。そのため、ある程度の基礎知識は把握できていたと思います。

業務ではディープラーニングを使ったことは一切なかったため、その辺の知識は上記セミナーで学んだ内容のみです。

受験理由

1. ディープラーニング周りの知識が薄いためその習得
スペックに記載の通り、ディープラーニング周りの知識が薄く、実装面含めて基礎知識を習得する必要があると感じていました。

2. 他者へのアピール
セミナーで得た内容を社内勉強会でフィードバックするなど、個人としてこういう分野に興味があるとアピールをしていました。ただ、それだけだとアピールとしてはまだ弱く、「ふーん」くらいで終わっているなと思っていました。
また、普段の業務において技術力に自信があるとは言えず、先輩や上司からも技術力があるとはみなされていません。
資格を取ることで、一定の努力をし、知識があるということを証明できると考えました。

3. スキルアップが面白い
単純に保有資格が増えるのは面白いですよね。話のネタにもなりますし、ドラクエで新しい呪文を使えるようになったときのワクワク感が得られます。

勉強方法

以下の書籍を購入しました。
www.shoeisha.co.jp

公式テキストが発売されたのはかなりありがたかったです。G検定の推薦図書は3冊ありますが全てに目を通すのはしんどそうだなと思っていたので、1冊でいけるのはいいぞと。
帰宅時の電車の中で読み込んでいきました。章末問題を解きつつ1周目はざっくりと読んで全体を把握しました。2周目はしっくり来ていないところ、覚え切れていないところを中心に読み込みました。
G検定の翌日に統計検定を受験する予定だったため、11月前半にG検定の勉強をし、試験直前は時々脳内で復習する程度でした。

試験について

とにかく時間が足りませんでした。オンライン試験であるため書籍やネットで調べられるのですが、ある程度自信がある問題も念のためにと調べてしまったことが原因です。一応問題を1周してから残しておいた問題に取り組みましたが、時間切れで埋められなかった問題も結構あった気がします。正直不合格だろうと思ってました。
問題のバリエーションは様々なものがあり、計算問題も出ました。公式テキストに載っていない時事的な問題も出題されたので、公式テキストだけで満点取るのはほぼ無理だろうと感じました。

合格後の効果

1. 自信がついた
合格という成果が出せたため、自信がつきました。AIやディープラーニングの話を他の人とするときに「あっ、この話G検定で見たことある!」的なこともあり、はっきり回答できることが増えたのはよかったです。

2. 職場で聞かれるようになった
社内のベンダー資格報奨制度に適用できるか管理部署に確認したところ、流れで上司陣に合格したことが伝わりました(適用可否が分かり次第、自分から伝えるつもりではいました)。
まだマイナーな資格であることからG検定について調べたようで、AI関連の資格に合格したと理解したようです。その後、上司から個別に呼び出され、AIをビジネスに活かすに当たってのアドバイスを求められました。元々この分野に興味を持っていることについて上司は把握していましたが、改めて私が勉強を続けていることを認識したようです。当初目的の1つである「他者へのアピール」は無事達成できたようです。

これから

次はE資格を受けるつもりです。仕事の関係上、セミナーを受けるのは来年度以降になりますが、技術面でのスキルアップを図ろうと思います。

文字列からクラス名を取得してインスタンス生成

これのgetattrを使うパターンでうまくいった。

前回の記事で書いたyamlファイルから情報を取得する方法を利用し、

必要に応じてインスタンスを作成する仕組みを作れた。

便利。

qiita.com

yamlの読み込み

設定ファイルを読み込む形を作りたくて調べた。

最初はxmlでやろうと思ったけど、yamlの方が可読性が高いとのことで

使ってみることにした。

 

python.swift-studying.com

これでうまくいった。

 

時系列分析の交差検証の方法

どうやってやるのか全くわからなかったけど以下のやり方があるとのこと。

ask.fm

medium.com

最後のp日を残して検証用にするのか。

なるほど。

前処理大全にも似たようなことが書いてあった。

覚えよう。

read_csvでファイル名が日本語のcsvを読み込む

pandas.read_csv

pandas.read_csv('../日本語ファイル.csv')

で読み込むと

OSError: Initializing from file failed

が発生してしまう。

読み込みエンジンのデフォルトであるCだと半角にしか対応していないとのことで、

エンジン指定をPythonに変更したら無事読み込めた。

f:id:OnsenTamagoYoshi:20181111132732j:plain

【参考】

ciuministries.net