マインドマップギャラリー sklearn 人工知能機械学習のナレッジポイントのまとめ (実践的なコードの図付き)
sklearn に基づいた実践的な機械学習の知識ポイントをまとめたもので、著者が作成した実践的なコードと結果図も含まれており、学習、インタビューのレビュー、高度な使用に使用できます。
2022-03-20 14:40:39 に編集されました機械学習
ガイドパッケージ 1
ディクテーションベクタライザー
カウントベクタライザー
中国語
ジーバカット
吃音分詞
左側の関数を呼び出して countvectorizer
TF-IDF
TF-IDFの主な考え方
記事内に高い確率で出現する単語やフレーズがある場合、 また、他の記事にめったに出現しない場合、この単語またはフレーズはカテゴリの区別が適切であると考えられます。 能力は分類に適しています。
Tf: 単語頻度: 単語頻度の出現回数
idf: 逆ドキュメント頻度 逆ドキュメント頻度 =log(コーパス内の文書の総数/単語が出現する文書の数 1)
TF-IDF=tf*idfは重要度を表します
正規化された
特徴: 元のデータを変換してデータをマッピングします (デフォルトは [0,1])
+
機能: 勾配降下法が高速になり、最適な解がより速く見つかり、モデルのトレーニングがより速くなります。
短所: 極端な値の影響を受けやすい
標準化
機能: 元のデータを平均 0、標準偏差 1 の範囲 (標準正規分布) に変換します。
𝑋′= (𝑥−平均)/𝜎
各列に作用し、mean は平均値、𝜎 は標準偏差です。
std は分散となり、𝜎= √std
一定量のデータにより外れ値が発生した場合、少数の外れ値は平均値に大きな影響を与えないため、分散はほとんど変化しません。
欠損値の処理
欠損値は、各行または列の平均値または中央値によって埋めることができます。
機能の選択
サブトピック
フィルター:分散しきい値
分散の低い特徴量を削除する
var = VarianceThreshold(threshold=0.2) # 分散が0.2未満のものを削除 データ = var.fit_transform([[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]])
組み込み: 正則化、デシジョン ツリー、ニューラル ネットワーク
ラッパー(包装済み)
ラッピング方法では、最適なサブセットが選択されるまで、初期特徴セットから特徴サブセットを継続的に選択し、学習者をトレーニングし、学習者のパフォーマンスに基づいてサブセットを評価します。
PCA主成分分析
目的: データの次元圧縮。元のデータの次元 (複雑さ) を可能な限り削減し、少量の情報を損失します。
機能: 回帰分析またはクラスター分析の特徴の数を減らすことができます。
ガイドパッケージ 2
フィットトランスフォーム
テストは fit_transform です。これは、テストの平均と分散のみが標準化プロセスで使用されることを意味します。
test は変換であり、train の平均と分散が標準化プロセスで使用されることを示します。
KNN-フェイスブックプロジェクト
知識のポイント
KNN の k 値が小さすぎると、過学習が起こりやすくなります。
k値選択問題
大きすぎると、モデルが単純すぎるため、フィッティングが不十分になる傾向があります。
小さすぎると、モデルが複雑すぎてオーバーフィットしやすくなります。
近似誤差と推定誤差:
近似誤差はトレーニング セットのトレーニング誤差です。
推定誤差はテスト セットのテスト誤差です
実戦
データ形式: row_id xy 精度 time place_id
x y は座標、時刻は 23234 秒、1970 年 1 月 1 日からの秒数、place_id は場所です。
目標は、x y に基づいてどの店舗の place_id に行くかを予測することです。
データの前処理
KNN モデルの構築
長所と短所
アドバンテージ
シンプルかつ効果的
再研修は安いよ
クラスドメイン間のサンプルに適しています
大量サンプルの自動分類に最適
欠点がある
怠惰な学習
出力はあまり解釈しにくい
アンバランスサンプルは苦手
あるカテゴリが多すぎるが、他のカテゴリが少なすぎる
モデルの選択とチューニング
相互検証
トレーニングセットを相互検証する
グリッド検索
ハイパーパラメータ検索
実戦
分類モデルの評価指標
混同行列
的中率:予測結果は陽性例(正診)中の陽性例の割合 TP/(TP FP)
再現率: サンプルのうち、実際に陽性例である予測された陽性例の割合 (完全な検索、陽性サンプルを区別する能力) TP/(TP FN)
F1 スコア: モデルの堅牢性を反映します。
TPR、FPR、TNR、FNR、ROCカーブ、AUC値
精度は、すべての実験における正しい分類の数として理解できます。
単純ベイズ分類アルゴリズム
式
例
ラプラシアン スムージング
エンターテイメントの確率は0です、これは理不尽です
式
α は指定された係数で、通常は 1 です。m はトレーニング ドキュメント内でカウントされた特徴語の数です。
長所と短所
アドバンテージ
Naive Bayes モデルは古典的な数学理論に由来しており、安定した分類効率を持っています。
欠損データの影響をあまり受けず、アルゴリズムは比較的単純で、テキストの分類によく使用されます。
高い分類精度と高速な分類
欠点がある
事前確率 P(F1,F2,…|C) を知る必要があるため、ある時点で、想定される事前モデルにより予測効果が低くなります。たとえば、記事がうまく収集されていない場合、不正行為が存在します。特定の単語が含まれる記事は結果を妨げる可能性があります
実戦
データの前処理
モデルの予測と評価
決定木分類アルゴリズム
情報エントロピー
決定木は情報利得に基づいて分割されます。
ID3ケース
一般的なアルゴリズム
ID3
情報獲得を最大化するための基準
極端な観点から理解すると、特定の機能にカテゴリが 1 つだけ追加されている場合、得られる情報はゼロであるため、この機能は削除されます。
デメリット:エントロピー値が近い場合、2つの特徴は1/2倍、3つの特徴は1/3倍となるため、ゲインが大きくなります。したがって、ID3 アルゴリズムは、比較的多数の特徴を持つ特徴を優先します。
C4.5
情報利得率最大基準
カート
分類ツリー: ジニ係数最小基準
ローンが滞納しているかどうか
データ
住宅の空き状況に応じて分割
結婚に応じて
年収に応じて
残りの属性は分割され続けます
最終決定木
一般的なデシジョン ツリー タイプの概要
長所と短所:
アドバンテージ
1. わかりやすい理解と説明、ツリーの視覚化。 2. データの準備はほとんど必要ありません。他の手法では通常、データの正規化や標準化が必要です。
欠点がある
1. 完全に成長したツリーは複雑すぎるため、簡単にオーバーフィットします。 2. データのわずかな変更によってまったく異なるツリーが生成される可能性があるため、デシジョン ツリーが不安定になる可能性があります。
改善する方法
カートの剪定
剪定前
(1) 各ノードに含まれるサンプルの最小数 (10 など)。ノードのサンプルの合計数が 10 未満の場合、分類は実行されません。
(2) ツリーの高さまたは深さを指定します。たとえば、ツリーの最大深さは 4 です。
(3) 指定したノードのエントロピーが一定値未満の場合は分割されなくなります。
剪定後
生成された過剰適合デシジョン ツリーに対して枝刈りを実行して、枝刈りされたデシジョン ツリーの簡略化されたバージョンを取得します。
タイタニック号生存予測プロジェクト
欠損値の処理とデータの分割
テキストをベクトルに変換してから予測をモデル化する
アンサンブル学習法 - ランダムフォレスト
ランダム フォレストは、複数の決定木を含む分類器であり、その出力カテゴリは、個々のツリーによって出力されるカテゴリのモードによって決まります。
ランダム フォレスト構築プロセスの主な手順 (トレーニング ケース (サンプル) の数を表すには N を使用し、特徴の数を表すには M を使用します): 1)一度に1つのサンプルをランダムに選択し、置換しながらサンプリングし、N回繰り返します(重複サンプルが発生する可能性があります) 2) m 個の特徴 (m <<M) をランダムに選択し、デシジョン ツリーを構築します。
セットアッププロセス
1. なぜトレーニング セットをランダムにサンプリングするのでしょうか? ランダム サンプリングが実行されず、各ツリーのトレーニング セットが同じである場合、最終的なトレーニングされたツリー分類結果はまったく同じになります。 2. 置換を伴うサンプリングが必要なのはなぜですか? 置換を伴うサンプリングがない場合、各ツリーのトレーニング サンプルは異なり、交差がありません。このように、各ツリーは「偏り」があり、完全に「一方的」になります (もちろん、これが間違っていると言える可能性があります)。つまり、各ツリーはトレーニング時に大きく異なり、ランダム フォレストの最終的な分類は複数のツリー (弱分類器) の投票に依存します。
アドバンテージ
1 現在のすべてのアルゴリズムの中で優れた精度を持っています 2. 大規模なデータセットを効率的に実行できる 3. 次元削減を必要とせずに、高次元の特徴を持つ入力サンプルを処理できます。 4. 分類問題における各特徴の重要性を評価する能力 5. デフォルト値の問題でも良好な結果が得られます。
実際のコード
ガイドパッケージ 3
回帰アルゴリズム - 線形回帰分析
定義: 線形回帰は、1 つ以上の独立変数と従属変数の間の関係をモデル化する回帰分析です。これは、回帰係数と呼ばれる 1 つ以上のモデル パラメーターの線形結合によって特徴付けられます。
式
損失関数
ビジュアルダイアグラム
解決方法: 損失を最小限に抑えるためにモデル内の W を見つける方法は? (目的は最小損失に相当するW値を求めることであり、ここが重要なポイントです)
正規方程式
導出プロセス (𝑋は固有値行列、𝑦は目標値行列) )
短所: 1. 特徴が複雑すぎると、解決速度が遅すぎます。 2. X の転置と X の逆行列の積が利用できず、解決できない場合があります。
実際のボストンの住宅価格リターン予測
データの前処理
Lr=LinearRegression() 予測
勾配降下法
勾配降下の公式 (w=w1-学習率 * w に関する損失の導関数)
学習率
はハイパーパラメータです。損失を最小限に抑えるように調整します。
降下過程
実際のボストンの住宅価格リターン予測
sgd = SGDRegressor(eta0=0.008) 予測
確率的勾配降下法には多くのパラメーターがありますが、ここではペナルティとして、L1 と L2、学習率 learning_rate、正則化強度 alpha のみを示します。
いくつかの知識ポイント
SGD は確率的勾配降下法 (Stochastic Gradient Descent) の略で、強度スケジュール (つまり学習率) が減少するにつれてモデルを更新します。
正則化は損失関数に対するペナルティです
L1 正則化はスパースの重みを生成します。 L1 正則化はスパースになる傾向があります。特徴の選択が自動的に実行され、いくつかの無駄な特徴が削除されます。つまり、これらの特徴に対応する重みが 0 にリセットされます。過学習を防ぎます。
L2 の主な機能は、必要なパラメーターが小さい場合 (パラメーターが高次の項の係数である)、高次の項の係数が小さくなり、高次の項が 0 に近づくことを示します。モデルは単純であり、モデルが単純であればあるほど滑らかになる傾向があり、過剰適合を防ぎます。
正則化の強度: 大: パラメータは 0 に近づき、高次の項は 0 に近づきます 小:パラメータの変化が小さい(高次項の重みは変化しない)
勾配降下法
完全勾配降下アルゴリズム (FG)
トレーニング セット内のすべてのサンプルの誤差を計算し、それらを合計し、平均を目的関数として取得します。バッチ勾配降下法は、各更新を実行するときにデータセット全体のすべての勾配を計算する必要があるため、低速になります。同時に、バッチ勾配降下法はメモリ容量の制限を超えるデータセットを処理できません。
確率的勾配降下アルゴリズム (SG)
各回の計算の目的関数は、すべてのサンプルの誤差ではなくなり、単一のサンプルの誤差のみになります。つまり、毎回 1 つのサンプルの目的関数の勾配だけが計算されて重みが更新されます。次のサンプルが取得され、損失関数値の低下が止まるか、損失関数値が許容可能なしきい値より小さくなるまで、このプロセスが繰り返されます。 このプロセスはシンプルかつ効率的であり、通常、更新の反復が局所的な最適解に収束することをより効果的に防ぐことができます。
リッジ回帰
リッジ回帰は、線形回帰の正規化バージョンです。つまり、元の線形回帰のコスト関数に正規項を追加します (つまり、l2 正規化を使用した線形回帰)。
式
実際のコード
ラッソ回帰(ラッソ回帰)
ラッソ回帰は、L1 正則化を使用した線形回帰です
式
適切な機械学習アルゴリズムを選択する方法
アンダーフィッティングの理由: 学習されるデータの特徴が少なくなります。解決策: データの特徴の数を増やします。
過学習の原因と解決策
理由: オリジナル機能が多すぎて、ノイズのある機能がいくつかあります。 モデルは次のことを考慮しようとしているため、モデルが複雑すぎます。 個々のテスト データ ポイント
解決: 特徴選択を実行し、関連性の高い特徴を削除する (実行は困難) 相互検証 (すべてのデータをトレーニングさせます) 正則化(理解)
分類アルゴリズム - ロジスティック回帰
2 分類問題のみを解決できます。多分類問題を解決するには、連続した 2 点分類が必要です。
活性化関数
シグモイド関数
関数式(zは回帰結果)
出力: 区間 [0,1] の確率値、デフォルトのしきい値 0.5
コスト損失関数
計算プロセス1
w に関するコスト損失関数の導関数
導出プロセス
最適な w を見つけるための勾配降下法
勾配降下の公式
勾配降下法により徐々に最適な分割線を求めます
実践的な戦闘 - がん予測のための二値分類のためのロジスティック回帰
データの前処理
モデル予測
結果
識別モデルと生成モデル
教師なし学習 - クラスター分析
K 平均法
アルゴリズムの基本原理
Kmeans のパフォーマンス評価指標
等高線係数
シルエット係数の説明
1. 〖𝑠𝑐〗_担当が0未満の場合、𝑎_担当の平均距離が他の最も近いクラスターよりも大きいことを意味します。 クラスタリング効果が良くない 2. 〖𝑠𝑐〗_担当が大きい場合、𝑎_担当の平均距離が最も近い他のクラスターよりも小さいことを意味します。 優れたクラスタリング効果 3. シルエット係数の値は [-1,1] の間であり、1 に近いほど凝集性と分離性が高くなります。
実践的な戦闘-淘宝網ユーザークラスター分析
テーブルの読み取り、テーブルのマージ
ユーザーIDとプロダクトIDのクロス集計を作成する
PCA主成分分析の次元削減
クラスタリングモデル
クラスタリングの結果
シルエット係数の計算
外れ値の検出方法
箱ひげ図を描く
原理
Zスコア
原理
DBSCAN
すべてのデータ ポイントは、コア ポイント (Core Points)、境界ポイント (Border Points)、またはノイズ ポイントとして定義され、クラスター化されます。
孤立の森|孤立の森
外れ値を分離する場合、外れ値でない点を分離する場合よりも、必要な分割数が少なくなります。つまり、外れ値は、外れ値でない点と比較して分離数が低くなります。したがって、データ ポイントの孤立子の数がしきい値を下回る場合、そのデータ ポイントは外れ値として定義されます。
アンサンブル学習
定義: 基本分類子の結果を最終決定に統合する
分類
昇圧(シリアル)
次の基本分類子の予測は、前の基本分類子の出力に依存します。
Boosting メソッドはシリアル メソッドを使用して基本分類子をトレーニングし、各基本分類子間には依存関係があります。 その基本的な考え方は、トレーニング中に基本分類子を層ごとに積み重ねることで、各層は前の層の基本分類子によって誤分類されたサンプルに高い重みを与えます。テスト中、最終結果は、分類器の各層の結果の重み付けに基づいて取得されます。
袋詰め(並行)
基本分類子間に強い依存関係はなく、並列してトレーニングできます。たとえば、決定木ベースの分類器に基づくランダム フォレストなどです。 基本分類器を互いに独立させるために、トレーニング セットはいくつかのサブセットに分割されます (トレーニング サンプルの数が少ない場合、サブセット間に重複がある可能性があります)。 それはむしろ集団的な意思決定プロセスに似ています。学習内容は同じでも、異なっていても、部分的に重複していても構いません。ただし、個人差があるため、最終的な判断が完全に一致するとは限りません。最終的な決定をする際には、各個人が個別に判断し、最終的には投票によって全体として決定されます。
基本分類子のバイアスと分散を排除するという観点から、Boosting メソッドと Bagging メソッドの違いを理解する
基本分類器の誤差は、バイアス誤差と分散誤差の合計です。 この偏りは主に、分類器の表現能力の制限によって引き起こされる系統的誤差が原因であり、これはトレーニング エラーの非収束として現れます。この分散は、分類器がサンプル分布に敏感すぎるため、トレーニング サンプルの数が少ない場合に過剰適合が発生することが原因です。
偏差
バイアスとは、トレーニングされたモデルの平均出力と実際のモデルの出力の間の偏差を指します。 バイアスによって生じる誤差は通常、トレーニング誤差に反映されます。
分散
分散は、サイズ m のすべてのサンプリングされたトレーニング データセットからトレーニングされたすべてのモデルの出力の分散を指します。分散は通常、モデルの複雑さがトレーニング サンプルの数 m に比べて高すぎるために発生します。 分散によって生じる誤差は、通常、トレーニング誤差に対するテスト誤差の増加に反映されます。 分散が低い予測では値が適切にクラスタリングされます。
撮影モデル例
ショットがサンプルに対して予測を行うモデルであると仮定します。的の位置に当たるということは、予測が正確であることを意味し、的から離れるほど予測誤差が大きくなります。
左上隅では、撮影結果が正確で集中しており、モデルの偏りと分散が非常に小さいことを示しています。 右上の図の撮影結果の中心はブルズアイの周囲にありますが、分布は比較的分散しており、モデルの偏差は小さいものの分散が大きいことがわかります。 左下の図は、モデルの分散が小さく、偏差が大きいことを示しています。 右下の図は、モデルに大きな分散と大きな偏差があることを示しています。
汎化誤差、バイアス、分散、モデルの複雑さの関係
Boosting メソッドは、基本分類器によって誤分類されたサンプルに徐々に焦点を当てることによって、統合分類器の偏りを軽減します。
バギング法では、分割統治戦略を採用し、トレーニング サンプルを複数回サンプリングし、複数の異なるモデルを個別にトレーニングしてからそれらを合成することにより、統合分類器の分散を削減します。
袋詰め図
モデル 1、モデル 2、およびモデル 3 はすべて、トレーニング セットのサブセットを使用してトレーニングされています。個別に見ると、その決定境界は非常に曲がりくねっており、過剰適合する傾向があります。統合モデルの決定境界 (赤い線で示されている) は、各独立モデルの決定境界よりも滑らかです。これは、分散を低減する統合加重投票方法によるものです。
アンサンブル学習の基本ステップ
(1) 誤差が互いに独立している基本分類子を見つけます。 (2) 基本分類器をトレーニングします。 (3) 基本分類子の結果をマージします。基本分類子をマージするには、投票とスタッキングの 2 つの方法があります。
例
アダブースト
ID3 デシジョン ツリーを基本分類子として選択します その理由は、ツリー モデルは構造が単純でランダムになりやすいためです。 より一般的に使用される
正しく分類されたサンプルの場合は重みが減り、誤って分類されたサンプルの場合は重みが増加するか変更されません。モデル融合の最終プロセスでは、基本分類器もエラー率に応じて重み付けされ、融合されます。エラー率が低い分類子は、より大きな「発言権」を持っています。
GBDT 勾配ブースティング デシジョン ツリー
本旨
モデル損失関数の負の勾配に基づいて新しい弱分類器をトレーニングし、トレーニングされた弱分類器を累積形式で既存のモデルに結合します (つまり、トレーニングに残差を使用します)。
例
動画 Web サイトでは、各ユーザーの年齢を予測する必要があります。特徴には、その人の訪問の長さ、時間帯、視聴したビデオの種類などが含まれます。 たとえば、ユーザー A の実年齢は 25 歳ですが、最初の決定木の予測年齢は 22 歳であり、その差は 3 歳、つまり残差は 3 歳です。次に、2 番目のツリーで A の年齢を 3 歳に設定して学習します。2 番目のツリーで A を 3 歳の葉ノードに分割できれば、2 つのツリーの結果を加算して A の真の年齢を取得できます。 ; 2 番目の木の結論が 5 歳である場合、A にはまだ -2 歳の残差があり、3 番目の木の A の年齢は -2 歳になり、学習を続けます。最後に、結果を合計します。 ここで学習を継続するために残差を使用することは、GBDT における勾配ブーストの意味です。
XGブースト
元の GBDT は、経験的損失関数の負の勾配に基づいて新しい決定木を構築し、決定木が構築された後にのみ枝刈りを行います。 XGBoost は、デシジョン ツリー構築フェーズに通常の用語を追加します。 GBDT と比較して、XGBoost はエンジニアリング実装においても多くの最適化を行っています。
一般的に使用される基本分類子
デシジョンツリー
理由は主に3つあります。 (1) デシジョン ツリーは、サンプルの重みをトレーニング プロセスに簡単に統合できます。 (2) 決定木の階層数を調整することで、決定木の表現能力や汎化能力が損なわれる可能性があります。 (3) データ サンプルの摂動は決定木に大きな影響を与えるため、さまざまなサブサンプル セットによって生成された決定木基本分類子は、よりランダムなものになります。さらに、デシジョン ツリー ノードが分割されると、最適な分割属性を見つけるために特徴サブセットがランダムに選択され、ランダム性がうまく導入されます。
ニューラルネットワークモデル
ニューラルネットワークモデルも比較的「不安定」なので、 さらに、ニューロンの数、接続方法、ネットワーク層の数、初期重みなどを調整することでランダム性を導入することもできます。
よくある問題
ランダム フォレストの基本分類器をデシジョン ツリーから線形分類器または K 最近傍分類器に置き換えることは可能ですか?
できません。 ランダム フォレストは、アンサンブル学習のバギング クラスに属します。バギングの主な利点は、統合分類子の分散が基本分類子の分散よりも小さいことです。バギングが有用であるように、バギングで使用される基本分類器は、サンプル分布の影響を受けやすいもの (いわゆる不安定分類器) であることが望ましいです。線形分類子または K 最近傍分類子は比較的安定した分類子であり、分散は大きくありません。
GBDT の利点と制限は何ですか?
アドバンテージ (1)予測段階の計算速度が速い。 (2) 高密度に分散されたデータセットでは汎化能力と表現能力が非常に優れており、多くの Kaggle コンペティションで GBDT がトップになることがよくあります。 (3) 決定木を弱分類器として使用すると、GBDT モデルの解釈性と堅牢性が向上し、特徴間の高次の関係を自動的に発見でき、正規化などの特別なデータの前処理が不要になります。
制限事項 (1) GBDT は、高次元のスパース データ セット上ではサポート ベクター マシンやニューラル ネットワークよりもパフォーマンスが悪くなります。 (2) GBDT には、テキスト分類機能の問題を扱う際に明らかな利点はありません。 (3) トレーニング プロセスにはシリアル トレーニングが必要ですが、一部のローカル並列メソッドはトレーニング速度を向上させるためにデシジョン ツリー内でのみ使用できます。
勾配ブースティングと勾配降下法の違い
勾配降下法では、モデルはパラメーター化された形式で表現されるため、モデルの更新はパラメーターの更新と同等になります。
勾配ブースティングでは、モデルをパラメーター化する必要はなく、関数空間で直接定義されるため、使用できるモデルの種類が大幅に拡張され、GBDT などのさまざまなモデルを組み合わせることができます。
アンサンブル学習モデルで精度が向上する理由
投票の計算原理
総合学習の実践
データの生成
make_moons (y には 2 つのラベル 0,1 があります)
データ分割
スプリット
ロジスティック回帰、SVC、デシジョン ツリーでそれぞれ分類および予測し、投票します
統合学習投票分類子
ハード投票とソフト投票
バギング、oob デザイン(未取得データを使用したテスト)の使用、 njobs はコアを設定します (n_jobs=-1 マルチコア トレーニングにより効率が向上します)
bootstrap_features はいくつかの機能を選択します。 ランダムフォレストとの比較
Extra-Trees 極端なランダム ツリー
デシジョン ツリーは、ランダムな特徴とランダムなしきい値を使用してノードを分割します。 追加のランダム性を提供し、過剰適合を抑制しますが、バイアスを増加させます ---- 分散を抑制し、バイアスを増加させます トレーニング速度が速くなります
ブースティングシリアル
エイダブースト GBDT