参入から放棄までのデータマイニング:線形回帰とロジスティック回帰

参入から放棄までのデータマイニング:線形回帰とロジスティック回帰

「データマイニングのアルゴリズムは、線形代数、確率論、情報理論に基づいています。それらを深く掘り下げていくと非常に興味深いです。数学者、統計学者、コンピュータ科学者の知恵を理解することができます。このコラムでは、比較的単純な一般的なアルゴリズムから始めて、TensorFlow に基づく高度なアルゴリズムを学習します。顔認識や NLP の実際のプロジェクトに参加して、一定の成果を達成できれば最高です。」

1. 線形回帰モデルの理解

まず、回帰モデルについてお話ししましょう。回帰モデルは、従属変数 (ターゲット) と独立変数 (予測子) の関係を調査します。従属変数は連続または離散です。離散の場合は、分類問題になります。住宅価格予測モデルについて考えると、家の大きさ、間取り、立地、南北の通風などの独立変数に基づいて、家の販売価格を予測することができます。これは最も単純な回帰モデルです。中学校では、回帰式は一般的に次のように書かれます。ここで、x は独立変数、y は従属変数、w は特徴行列、b はバイアスです。

機械学習の導出に線形代数の考え方を導入し、休日予測モデルを記述する式を使用すると仮定します。x は家の特徴セットを表し、n×1 列ベクトルです。合計 m 個の特徴セットがあります。θ は n×1 列ベクトルで、取得したい未知数です。

私たちは、誤差を最小化する戦略を採用しています。たとえば、予測式があります:ysalary=Θ1*学歴+Θ2*職務経験+Θ3*技術能力+.......+Θn*x+基本給。予測されたy値と実際の値y_の間にはギャップがあります。戦略関数は、m個の特徴セットの(実際の値y-予測値)の二乗の合計を最小化することです。 (差は負になる可能性があるため、二乗和が使用されます)

正規方程式を解く方法に従って、θ の偏微分を求めます。

つまり、特徴行列 X と従属変数 y が与えられれば、エラー率を最小化し、後続の回帰モデルを満たす θ の値を見つけることができます。線形代数を知っている人なら、この問題が分かるでしょう。θ の式には逆行列演算があり、行列が逆行列であることが必要ですが、これは通常保証できません。これにより、θ に解がなくなり、戦略は失敗します。

2. コンピュータの仕組み: 勾配降下法

従来の方程式では、多数の行列演算、特に逆行列演算が必要であり、行列が非常に大きい場合には計算の複雑さが大幅に増加します。 、正規方程式法は行列の偏微分に対して一定の制限があります(行列が可逆であることを保証できません)。次に、コンピューターソリューションである勾配降下法を紹介します。毎回小さなステップを踏み、この小さなステップが最も効果的なステップであることを確認します。山を下っていることを想像してください。目的地(グローバル最小値)がどこにあるかはわかりませんが、毎回最も急なステップを踏むことを保証できます。

私たちの戦略は同じままで、m 個の特徴セットの (真の値 y-予測値) の二乗の合計を最小化することです。

勾配降下法の実装: 初期 θ 値を割り当て、式に従って θ を徐々に更新して J(θ) が減少し続け、最終的に収束し、対応するパラメータ θ が解になります。導出の便宜上、まずはトレーニングサンプルが 1 つしかない場合に導出式を計算する方法を検討します。

θ の各成分の更新式は次のとおりです。

m 個のトレーニング データに拡張すると、パラメーター更新式は次のようになります。

3. ロジスティック回帰モデル

ロジスティック回帰と線形回帰はどちらも一般化線形モデルに属します。ロジスティック回帰は線形回帰の理論に基づいており、バイナリ分類モデルです。また、複数の分類問題に一般化することもできます。非線形因子はシグモイド関数を通じて導入されるため、0/1分類問題を簡単に処理できます。まず、シグモイド関数を紹介します。

シグモイド関数のグラフは、[0, 1]の間の値を持つS字曲線です。値が0から遠い場合、関数値は急速に0または1に近づきます。シグモイド関数の微分特性は次のとおりです。

ロジスティック回帰の予測関数は以下のとおりです。これは、特徴から結果へのマッピングに関数マッピングのレイヤーを追加するだけです。最初に特徴が線形に合計され、次に関数 g(z) を使用して仮説関数が予測されます。 g(z)は0から1の間の連続値をマッピングできます。

尤度関数を求め、両辺の対数を取ることで、θ の偏微分を求めることができます。

このようにして、勾配上昇の各反復の更新方向が得られるので、θ の反復式は次のようになります。

線形回帰モデルが同じ式になっているのは単なる偶然ではありません。両者の間には深いつながりがあります。

IV. 回帰モデルの使用

データは、2014 年 5 月から 2015 年 5 月までの米国キング郡の住宅販売価格と住宅基本情報です。データはトレーニング データとテスト データに分かれており、それぞれ kc_train.csv と kc_test.csv の 2 つのファイルに保存されます。トレーニング データには主に 10,000 件のレコードと 14 のフィールド (販売日、販売価格、寝室数、浴室数、住宅面積、駐車場面積、階数、住宅スコア、建築面積、地下室面積、建築年、修繕年、緯度、経度) が含まれます。

データセットのアドレス: https://github.com/yezonggang/house_price、モデル構築を完了するには次のプロセスに従います。

  1. pandasをpdとしてインポートする
  2. pandasからDataFrameをインポートする
  3. numpyをnpとしてインポートする
  4. matplotlib.pyplot をpltとしてインポートします。
  5. %matplotlib インライン
  6. Seaborn をSNSとしてインポートする
  7. sklearn.linear_modelからLogisticRegression をインポートします
  8. sklearn.ensembleからRandomForestClassifier をインポートします
  9. sklearn.linear_modelからLinearRegression をインポートします
  10. # データの読み取り
  11. baseUrl= "C:\\Users\\71781\\Desktop\\2020\\ML-20200422\\houre_price\\"  
  12. house_df = pd.read_csv(baseUrl + 'train.csv' ) です。
  13. test_df = pd.read_csv(baseUrl + 'test.csv' ) です。
  14. house_df.head()
  15.  
  16. # 無関係な変数を削除する
  17. house_df = house_df.drop ([ 'saleTime' , 'year' , 'repairYear' , 'latitude' , 'longitude' , 'buildingSize' ],axis=1 )
  18. test_df= test_df.drop ([ 'saleTime' , 'year' , 'repairYear' , 'latitude' , 'longitude' , 'buildingSize' ],axis=1)
  19.  
  20. # モデル構築
  21. X_price = house_df.drop ([ 'price' ],axis=1)
  22. # X_price.head()
  23. Y_price = house_df[ '価格' ]
  24. Y_price.head()
  25.  
  26. LR_reg = 線形回帰()
  27. LR_reg.fit(X_price, Y_price)
  28. Y_pred = LR_reg.predict(test_df)
  29. LR_reg.score(X_price, Y_price)
  30.  
  31.  
  32. # オプションで特徴スケーリングを実行する
  33. #new_house=house_df.drop ([ '価格' ],axis=1 )
  34. # sklearn.preprocessingからMinMaxScaler をインポートします
  35. #minmax_scaler=MinMaxScaler().fit(new_house) #内部フィッティング、内部パラメータは変更されます
  36. #scaler_housing = pd.DataFrame(minmax_scaler.transform(new_house)、列 = new_house.columns)
  37.  
  38. #mm=最小最大スケーラー()
  39. #mm.fit(テスト_df)
  40. #scaler_t = mm.transform(テスト_df)
  41. #scaler_t = pd.DataFrame(scaler_t、列 = test_df.列)

この記事はWeChatのパブリックアカウント「データ社会」から転載したものです。下のQRコードからフォローできます。この記事を転載する場合は、Data Society 公式アカウントまでご連絡ください。

<<:  ディープラーニングのためのテキスト前処理方法

>>:  機械学習は数字を数え、マウスをクリックしてモデルをトレーニングし、残りはコンピューターに任せます

ブログ    
ブログ    
ブログ    

推薦する

...

AIに切り替えたい人向け:人工知能ガイドはこちら

人工知能とは何でしょうか? なぜ重要なのでしょうか? 人工知能を恐れるべきでしょうか? なぜ突然、み...

世界トップジャーナルPNASに掲載されました!科学者たちは理論上のコンピューターに基づく意識モデル「意識のあるチューリングマシン」を提案した。

5月下旬、トップの国際学術誌である米国科学アカデミー紀要(PNAS)は、昨年10月に査読が受理され...

...

2021年以降、AIが研究技術を向上させる4つの方法

研究テクノロジーは、現代のビジネス環境に人工知能と機械学習を適用するための優れた方法を提供します。 ...

...

...

Google Brain の新たな研究: 強化学習はどのようにして音で観察することを学ぶのでしょうか?

人間は、脳内の神経系が外部環境の変化に継続的に適応するためにその構造を変える能力を持っていることを証...

...

...

ディープラーニングの父が懸念:データ漏洩、AI兵器、批判の欠如

[[254553]]マーティン・フォードは2015年に出版した『ロボットの台頭』で大きな話題を呼びま...

プログラム分析を通じてニューラルネットワーク プログラムのバックドアを見つける方法

1 ニューラルネットワークにはさまざまな問題がある従来のプログラムには、よく知られたエラー、抜け穴、...

AIが予測分析アプリケーションに与える影響

人工知能 (AI) を使用した予測分析により、企業は過去のデータに基づいて将来の結果を予測し、運用効...

...

ヒープソートアルゴリズムの普及チュートリアル

[[121962]]この記事の参考文献: アルゴリズム入門、第 2 版。この記事では、ヒープソートア...