[機械学習] Wu Enda の機械学習の宿題集 (データ セットを含む) を Python で実装

学習者の声:

3.7 の初日から今日の 4.4 まで、講義、コードの実装、要約ブログを完了するのに 1 か月以上かかりました. プロセスは少し困難でしたが、新しい学習者として多くのことを学びました. この期間の学習プロセスを要約します。今後の学習の方向性はまだ検討中です。

目次

1.0 線形回帰予測

2.0 線形分離ロジスティック ロジスティック回帰

2.1 線形不可分ロジスティック ロジスティック回帰

3.0 ロジスティック ロジスティック回帰 手書き多カテゴリ問題

3.1 ニューラルネットワークの順伝播

4.0 ニューラル ネットワーク逆伝播 (BP アルゴリズム)

5.0 分散とバイアス

6.0 SVM サポート ベクター マシン

7.0 kmeans クラスタリング

7.1 PCA主成分分析

8.0 異常検出

8.1 レコメンドシステム(協調フィルタリングアルゴリズム)


ジョブに含まれるデータセット:

以前のデータ セットの有効期限が切れています。再更新してください

リンク:https://pan.baidu.com/s/14gmrdWvIYopPWK_qsJHq5w?pwd=ifuf 
抽出コード:ifuf

Ng シラバスのまとめ 

教師なし学習

線形計画法、ロジスティック回帰、ニューラル ネットワーク、SVM

教師なし学習

K-means 、PCA 、異常検出

応用

推奨システム、

大規模な機械学習

マップ縮小とデータ並列処理:

データセットをいくつかのコンピューターに分割し、各コンピューターにデータセットのサブセットを処理させてから、結果を合計して集計します。このような方法は、マップの単純化と呼ばれます。学習アルゴリズムをトレーニング セットの関数の合計として表現できる場合、このタスクを複数のコンピューター (または同じコンピューターの異なる CPU コア) に分散して、処理を高速化できます。

機械学習システムを構築するためのヒント

分散/バイアス、正則化

次に何をするかを決定します。

アルゴリズム評価、学習曲線(高バイアス・高分散問題の判定)、エラー分析

上限分析: 機械学習の適用では、通常、最終的な予測を行うためにいくつかのステップを経る必要があります.どの部分を改善するために時間とエネルギーを最も費やす価値があるかをどのように知ることができますか? この質問は、上限分析によって答えることができます。

問題の説明とフローチャート

スライディング ウィンドウ分類アルゴリズム (CV)

大量のデータと人工データへのアクセス

ここにビットとピースがあります:

既存の機械学習には多くの種類があり、一般的に次のように分類できます。

  • 人間の監督下で学習するかどうか (教師あり学習、教師なし学習、半教師あり学習、強化学習)
  • 動的インクリメンタル学習 (オンライン学習とバッチ学習) が可能
  • 単純に新しいデータ ポイントを既知のデータ ポイントと照合するのか、それとも科学者のようにトレーニング データでモデル検出を行ってから予測モデルを構築するのか (インスタンス ベースの学習とモデル ベースの学習)

 1. 教師あり学習と教師なし学習

  •  教師あり学習: データセット内の各サンプルには、回帰と分類を含む対応するラベルがあります。

  • K 最近隣アルゴリズム
  • 線形回帰
  • ロジスティック回帰
  • サポート ベクター マシン (SVM)
  • 決定木とランダム フォレスト
  • ニューラルネットワーク
  • 教師なし学習(Unsupervised Learning): クラスタリング (clustering) を含め、データセットにラベルはありません. 有名な例はカクテル パーティーです. 実装式: [W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

  • クラスタリング アルゴリズム
    • K-means アルゴリズム (K-means)
    • 密度ベースのクラスタリング手法 (DBSCAN)
    • 最大期待アルゴリズム
  • 可視化と次元削減
    • 主成分分析 (PCA)
    • カーネル主成分分析
  • 連想ルール学習
    • アプリオリ
    • グロー
  •  異常検出
  • 一部の アルゴリズムは、部分的にラベル付けされたトレーニング データ (通常は大量のラベル付けされていないデータと少量のラベル付けされたデータ) を処理できます。これは、半教師付け学習と呼ばれます。

  • 写真認識が良い例です。オンライン フォト アルバムを指定して、同じ人物の写真を特定できます (教師なし学習)。これらの同じ人物にタグを追加すると、同じ人物が写っている新しい写真に自動的にタグが付けられます。

  • 強化学習

    強化学習では、学習システムが環境を観察し、選択を行い、行動を実行し、負の報酬の形で報酬または罰を受けます。時間の経過とともに最も多くのフィードバックを得るには、何が最善のポリシーであるかを独自に学習する必要があります。 

2.オンライン学習 

    ユーザーの継続的なストリームによってトリガーされ、サイトに流入するデータの継続的なストリームがある場合、オンライン学習メカニズムを使用してストリームからユーザーの好みを学習し、その情報を使用してサイトに関する何かを最適化することができます。サイト決定。

    オンライン学習アルゴリズムは、オフラインの静的データセットではなく、データ ストリームでの学習を指します。多くのオンライン サイトには絶え間ないユーザーの流れがあり、ユーザーごとに、データベースにデータを保存することなくスムーズにアルゴリズムを学習できることを望んでいます。

  • E-Learning: 製品検索インターフェイス 製品の推奨事項 

3. モデルのトレーニングと選択 (モデルの選択)

仮説 hθ(x) は、トレーニング エラーとテスト エラーの観点から評価できます。
一般に、データセットをトレーニング セット (60%)、検証セット (20%)、およびテスト セット (20%) に分割します。

  • 训练集

トレーニング セットは、モデルをトレーニングするために使用され、パラメーター θ を学習します: minJ(θ); つまり、モデルの重みとバイアスのパラメーターを決定するために、通常、これらのパラメーターを学習パラメーターと呼びます。

  • 验证集

検証セットはモデル選択に使用されます. より具体的には, 検証セットは学習パラメータの決定には関与しません, つまり, 検証セットは勾配降下のプロセスに関与しません. トレーニング セットを使用してモデルをトレーニングした後、検証セットを使用してモデルをテストし、トレーニング モデルのパラメーターではなく、モデルが正確であるかどうかをテストします。

  • 测试集

テスト セットは、トレーニング後に最終モデルを評価するときに 1 回だけ使用されます。学習パラメータ プロセスにもパラメータ ハイパーパラメータ選択プロセスにも参加せず、モデルの評価にのみ使用されます。
トレーニング中にテスト セットを使用してから、同じテスト セットを使用してモデルをテストすることはできません。これは実際にはチートであり、モデル テストの精度が非常に高くなります。

4. モデルの最適化

Underfitting, high bias : トレーニング データが十分に適合していないことを意味します 

オーバーフィッティング、高分散:トレーニング データのフィッティングが完璧すぎるため、J(θ)≈0 であり、モデルの汎化能力が低下し、新しいサンプルを正確に予測できません。

5. 機械学習システムの設計

非対称分類のエラー評価 (歪んだクラス)

エラー率: 誤って判断されたスイカの割合。

精度: アルゴリズムによって選択されたスイカの何パーセントが良いスイカであるか。

再現率 (recall): すべての良いスイカのうち、アルゴリズムによって飛び出された比率の数。

  • 肯定的な例であると確信しているときにそれを肯定的な例と判断したい場合は、しきい値を大きくすると、モデルは高い適合率と低い再現率に対応します。
  • 偽陰性を避けたい場合は閾値を下げると精度が低く再現率が高いモデルに対応する

6. 高度な最適化アルゴリズム:

  • 共役勾配アルゴリズム
  • BFGS
  • L-BFGS

        利点: パラメータ α を手動で選択する必要がない; 演算速度は勾配降下法よりも速い 

        短所:より複雑

最後に:Ngの結論を入れて、続けるように自分をやる気にさせてください〜先生ありがとう

おすすめ

転載: blog.csdn.net/m0_51933492/article/details/123959546