学習
機械学習関連の業務に就くのが希望ですが、実業務で使用したことはありませんので、自分でここまで取り組んできた内容について記述します。 作成したソースは下記 github で公開しています。 <https://github.com/Shige-Oku/code_cd> --- ### 資格 * G検定 2020#2 取得しました。(2020年7月) --- ### SIGNATE * Biggner 限定のコンペに2度参加し、Intermediate に上がりました。 * 健診データによる肝疾患判定 * 債務不履行リスクの予測 --- ### AI Quest * AI Quest 2020に参加中です。(2020/10 ~ 2021/02末) *第1ターム 不良個所自動検出による検品作業効率化(製造業) AIを使用して部品製造工程の人員削減を図る。 ①画像データのヒストグラム平坦化 ②不要領域の削除 ③オーグメンテーションによる学習データの水増し ④VGG16, VGG19, ResNet50を使用してのモデル構築 ⑤上記を転移学習および出力層に近い側を再学習するファインチューニング --- ### Kaggle * Kaggleで予測したものを公開しています。 「900_Kaggle」 <https://github.com/Shige-Oku/code_cd/tree/master/900_Kaggle> *タイタニック「001_Titanic」 <https://github.com/Shige-Oku/code_cd/tree/master/900_Kaggle/001_Titanic> 欠損値の対応、データの可視化、データの標準化、不要な特徴量の削除、ダミー変数への変換 「clean-2.ipynb」「EDA-1.ipynb」 決定木、ランダムフォレスト、ロジスティック回帰、SVM、ナイーブベイズ、XGBoost、ニューラルネットワークで、デフォルト、パラメータチューニングし予測する。 デフォルト 「001_01_DT.ipynb」「002_01_RF.ipynb」「003_01_LR.ipynb」「004_01_SVM.ipynb」「005_01_GNB.ipynb」「006_01_MNB.ipynb」「007_01_XGB.ipynb」「008_01_NN.ipynb」 パラメータチューニング(グリッドサーチ) ナイーブベイズはチューニングなし 「001_02_DT.ipynb」「002_02_RF.ipynb」「003_02_LR.ipynb」「004_02_SVM.ipynb」「007_02_XGB.ipynb」「008_02_NN.ipynb」 結果 「900_001_model_compare.xlsx」 決定木をパラメータチューニングした79%が一番精度(accuracy_score)が良かった。 各モデルパラメータチューニングでおおよそ2~3%精度をあげることができた。 苦労した点 SVM、XGBoostのパラメータチューニングで学習に時間がかかったので、データ型の見直しとパラメータの不要な組み合わせを減らすようにしました。 改善する点 SVM、ニューラルネットワークがパラメータチューニングしたらデフォルトより精度が落ちました。 与えるデータの見直しやパラメータの組み合わせを考える必要があります。 --- ### codexaで受講した講座 * Numpy 入門 * Pandas 入門 * Matplotlib 入門 * 線形代数 入門 * 統計 入門 (前編) * 統計 入門 (後編) * 線形回帰 入門 * 実践チュートリアル 線形回帰 <https://github.com/Shige-Oku/code_cd/tree/master/008_Lenear_regression> * 実践チュートリアル ロジスティック回帰 <https://github.com/Shige-Oku/code_cd/tree/master/009_Logistic_regression> ロジスティック回帰で「Mushroom Classification」データセット使用してキノコを有毒/無毒を判定。 * 実践チュートリアル 決定木とランダムフォレスト <https://github.com/Shige-Oku/code_cd/tree/master/010_Decision_tree> 決定木で「Diabetes Dataset(糖尿病のデータセット)」を使用して、糖尿病患者の1年後の疾患進行状況を予測。 ランダムフォレストで「ウィスコンシン乳がん診断(Breast Cancer Wisconsin Diagnostic)」を使用して、良性腫瘍(benign)か悪性腫瘍(malignant)を分類。 ランダムフォレストで「アメリカワシントン州のキング郡(King County)内の不動産物件の価格」を使用して、住宅価格を予測。 * 実践チュートリアル サポートベクターマシン <https://github.com/Shige-Oku/code_cd/tree/master/011_SVM> SVMで「Iris(アイリス)」データセットを使用して、アヤメの品種を分類。 「グール、ゴブリン、ゴースト...でたー!」を使用して、モンスターを分類。 グリッドサーチを使用してハイパーパラメータチューニング。 * 実践 チュートリアル ナイーブベイズ <https://github.com/Shige-Oku/code_cd/tree/master/012_Naive_Bayes> ガウシアン・ナイーブベイズで「Iris(アイリス)」データセットを使用して、アヤメの品種を分類。 * 実践チュートリアル XGBoost <https://github.com/Shige-Oku/code_cd/tree/master/013_XGBoost> XGBoost(決定木)で「Iris(アイリス)」データセットを使用して、アヤメの品種を分類。 「Concrete Compressive Strength Data Set」を使用して、コンクリートの強度を予測。 グリッドサーチを使用してハイパーパラメータチューニング。 * 実践チュートリアル はじめての画像認識 <https://github.com/Shige-Oku/code_cd/tree/master/014_CNN> Keras、OpenCVを使用。 CNNで「MNIST」を使用して、手書き数字の分類。 callbackを使用してのEarlyStopping。 「Chest X-Ray Images(Pnuemonia)」データセットを使用しての肺炎予測。 ImageDataGeneratorを使用してのデータ拡張。 *LightGBM <https://github.com/Shige-Oku/code_cd/tree/master/015_LightGBM> LightGBMで「Kuzushiji-MNIST」(KMNIST)を、49文字での分類。 上記を、あ行と か行の10文字に縮小しての分類。 *「001_senkei_daisuu」~「015_LightGBM」にやった内容をメモにまとめソースを公開しています。 <https://github.com/Shige-Oku/code_cd> --- ### Udemyで受講した講座 * はじめてのPython 少しづつ丁寧に学ぶプログラミング言語Python3のエッセンス * ゼロからPythonで学ぶ人工知能と機械学習 * 少しずつ丁寧に学ぶ人工知能向けの線形代数 * ディープラーニング Pythonでゼロから構築し学ぶ人工知能(AI)と深層学習の原理 * みんなのディープラーニング講座 ゼロからChainerとPythonで学ぶ深層学習の基礎 * 【4日で体験しよう!】 TensorFlow, Keras, Python 3 で学ぶディープラーニング体験講座 * 【TensorFlow・Keras・Python3で学ぶ】時系列データ処理入門 * 【ゼロからおさらい】統計学の基礎 *【PythonとStanで学ぶ】仕組みが分かるベイズ統計学入門(学習中) ベイズの定理、モンテカルロ法、MCMC、M-Hアルゴリズム、Gibbsサンプラー、ハミルトニアンモンテカルロ、階層ベイズモデル、状態空間モデルについて。 PyStanで単回帰、ロジスティック回帰、重回帰を実装。 <https://github.com/Shige-Oku/code_cd/tree/master/800_Udemy/801_Bayesian_statistics> 一部ですが「PycharmProjects」にまとめてます。 <https://github.com/Shige-Oku/code_cd/tree/master/PycharmProjects> --- ### Aidemyで受講した講座 * データクレンジング * 機械学習におけるデータ前処理 * 教師なし学習 * スクレイピング入門 * CNNを用いた画像認識 * 自然言語処理基礎 * 日本語テキストのトピック抽出 * ネットワーク分析入門 --- ### AtCoder参加と過去問題 * AtCoder Beginner Contest に継続して参加します。(Pythonで参加) * 過去問題は300点問題を中心に解いています。 「002_Past_issues」に各ポイントごとに説いた問題をまとめています。 <https://github.com/Shige-Oku/code_cd/tree/master/000_AtCoder/002_Past_issues> --- ### GCP * QuickLab、GCPのチュートリアル、セミナーなどでやった内容、使用したコマンドをまとています。 「000_GCP」 <https://github.com/Shige-Oku/code_cd/tree/master/000_GCP> --- ### 今後 当面は下記を実施します。 * AtCoder対策。 *「データサイエンティスト100本ノック」(Python実施中。SQLもやる予定)。 * 2020/3下旬からKaggle 、2020/9月からSiGNATE に参加しており継続します。 継続することでデータの前処理、可視化、特徴量エンジニアリングを重点的にやろうとしてます。 * ランダムサーチ、hyperopt、optuna、GpyOptなどを使用したハイパーパラメータ調整 上記ができ次第、下記もやりたいと考えています。 * 領域分割、物体検出、姿勢推定、トラッキングなど * 自然言語処理と強化学習、教師なし学習の実装 * アンサンブル学習(スタッキング)での予測 * 転移学習、ファインチューニング、分散学習、メタ学習 * PyCaretの実装、動作確認(前処理、可視化、パラメータチューニング、モデル比較など一通りできそうなので) * Webスクレイピングなどによるデータ収集