機械学習の一連の流れ

こんにちは、supercellです。Python機械学習プログラミングをまとめていきます。

 

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

 

今回は、機械学習の一連の流れについてです。

 

 

前処理:データ整形

データは必ずしもアルゴリズムを最適化するような形式ではないため、データを整形する必要がある。また、データの中から特徴量を抽出した後、その特徴量を同じ尺度に直す必要もある。抽出されたデータの中には、同じような分布であるものもあるだろう。

そのときは、次元削減を行う。これにより、処理能力を向上させることができる。

 

モデルの学習と選択

様々な機械学習の学習アルゴリズムが開発されているため、モデルを選択する必要がある。その際、たった一つのモデルを試すだけではそのモデルの性能が良いかどうかは判定することができない。そのため、複数のモデルを比較する。モデルの評価の際には、トレーニングセットっとは別のテスト用のデータを用意し、予測性能を評価する。

予測性能を汎化性能という。

 

ライブラリのデフォルトのパラメータでは、良い性能が出ないこともあるだろう。そのため、そのパラメータを最適化する必要がある。このパラメータをハイパーパラメータという。

モデルの評価と予測

学習したモデルを使用して、正解の値と予測値との誤差を調べる。テストデータセットにモデルを適用することで、モデルの予測性能の評価をすることができる。

 

以上が一章のまとめです。

一章は完全に読みもので、前期に学習したことの復習でした。

二章からいよいよ実装に入るので楽しみです。

 

 

 

 

Python機械学習プログラミングを読んで

こんばんは、supercell です。
今回は、Python機械学習プログラミングを読んでみてのまとめです。(要望がありました)

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

まずは1章を簡潔にまとめていきます。
3つの機械学習
教師あり学習
教師なし学習
強化学習
があります。

教師あり学習について

この学習の目的は、トレーニングデータからモデルを学習し、未知のデータも予測できるようにすることです。
データが離散値(スパムメールか否か、など)の場合、データを分類することになります。離散値はラベルを持ち、このラベルを予測していきます。
データが連続値の場合は、回帰と呼ばれます。複数の予測変数と応答変数の変数の関係を探っていきます。
具体的には、平均二乗誤差です。これは、変数の差を2乗した値を平均して、その値が最小となるように重みを求める手法です。

強化学習について

この学習では、環境とやりとりをして改善していく学習です。このシステムをエージェントと呼びます。エージェントが行動を起こすと、環境からエージェントへと報酬が送られます。その報酬に応じてエージェントが行動を改善していきます。一般的には、報酬が最大になることが目標とされています。

教師なし学習について
この学習では、不明なデータ構造をグループ化します。
その手法はクラスタリングと呼ばれます。グループ間では相違が大きく異なるようになっています。
具体例として、マーケティング担当者が売るものを選定するとします。その時、教師なし学習によって顧客のニーズに合わせて顧客をグループ化することができます。

以上が3つの機械学習です。
個人の感想としては、強化学習が面白そうです。環境に適応していくのは人間っぽい(?)ですし。
具体的な実装はまだですが、非常に楽しみです。

作成中のwebアプリケーションについて

※このブログはただの活動報告です

こんばんは、supercell です。ここでは、現在作成中のwebアプリケーションの現状を報告します。

まず、大まかなデザインというかイメージは決まっていて、こんな感じです。雑なところは大目にみてください

f:id:undermountainafu:20181010201104j:plain

では、説明していきます。
まず、twitter アカウントでログインできるようにしようと思ってます。理由はtwitterでこのアプリを宣伝するからです。

次に肝心の To doを表示するページについてです。
デザインは某ステルスゲームのデザインを参考にするつもりです。

次にシステム面です。
未完了、完了でタブを分けて表示させます。
また、to doが表示される四角い部分には、「完了」ボタン、達成度の%表示を実装するつもりです。

次にサーバについてです。
これに関しては無知すぎて全く決まってないです...
来る時が来たとき考えます。

以上が説明となります。webアプリケーションの名前はまだ未定です(募集してます)

現状は、デザイン部分を作成しています。いつ終わるか全然わからないです笑
最低でも○○祭までには間に合わせたいですね...

何かアドバイスなどがあれば教えてください。

名前:supercell
趣味:クラクラ(ゲーム)、VTuber鑑賞
夏休みの3つの望み
・(実現可能性90%) Laravelでwebサービス第一号を作成
・(実現可能性50%) 統計学を完全理解
・(実現可能性10%) Javaもちょっと触ってみたい