最小二乗法-回帰の実践

Python最小二乗アルゴリズムの回帰手法

基本コンセプト

線形回帰モデル

さまざまなデータセットの場合、データマイニングまたは機械学習のプロセスは、データモデルを確立するプロセスです。回帰問題の場合、線形モデル予測の一般式は次のとおりです。

** y = w [0] * x [0] + w [1] * x [1] + w [2] x [2] +…+ w [p] x [p] + b

ここで、x [0]からx [p]は、遅延データポイントの特徴(この例の特徴の数はp + 1)を表し、wとbは学習モデルのパラメーターであり、yは予測結果です。単一の機能データセットの場合、式は次のとおりです。

* y = w [0] x [0] + b

ご覧のとおり、これは高校の数学の一次方程式と非常によく似ています。ここで、w [0]は勾配です。より多くの特徴を持つデータセットの場合、wには各特徴座標要素に沿った勾配が含まれます。あるいは、予測された応答値を、wの要素によって与えられた重みを使用した、入力特徴の重み付き合計と考えることもできます。

アルゴリズム入門

最小二乗アルゴリズム

通常の最小二乗アルゴリズム、つまり線形回帰は、回帰問題の最も単純で最も古典的な線形方法です。線形回帰は、パラメーターwとbを探して、トレーニングセットの予測値と真の回帰目標値y間の平均二乗を作成します。エラーは最小限です。
平均二乗誤差は、予測値と真の値の差の二乗和をサンプル数で割ったものです。

データソース

一人称fpsゲームcsgoの分割データ:https://www.kaggle.com/sp1nalcord/mycsgo-data
ここに画像の説明を挿入

csgoは一人称シューティングゲームです。データには、各プレーヤーのネットワーク遅延(ping)、キル数、死亡数、スコアなどが含まれます。
ねえ、私はまだゲームをよく知っています。これは、元のデータの英語の紹介を見なくても、さまざまな次元のデータセットを理解できる唯一のブロガーです。

データマイニング

1.サードパーティライブラリをインポートします

import pandas as pd
import numpy as np
import winreg
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression#导入线性回归算法
from sklearn.metrics import r2_score

古いルールが最初に表示され、モデリングに必要な各モジュールを順番にインポートします
。2。ファイルを読み取ります。

import winreg
real_address = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',)
file_address=winreg.QueryValueEx(real_address, "Desktop")[0]
file_address+='\\'
file_origin=file_address+"\\源数据-分析\\avocado.csv"#设立源数据文件的桌面绝对路径
glass=pd.read_csv(file_origin)#https://www.kaggle.com/neuromusic/avocado-prices

データをダウンロードするたびに、ファイルをpythonルートディレクトリに転送するか、ダウンロードフォルダで読み取る必要があるため、非常に面倒です。そこで、winregライブラリを介して絶対デスクトップパスを設定しました。これにより、データをデスクトップにダウンロードするか、デスクトップ上の特定のフォルダーに貼り付けるだけでデータを読み取ることができ、他のデータと混同されることはありません。
実際、このステップまで、私たちはプロセスを進めています。基本的に、すべてのデータマイニングを再度実行する必要があります。言うことは何もありません。

3.データのクリーンアップ
ここに画像の説明を挿入
このデータには欠測値が含まれておらず、各特徴値間で属性の重複がないため、当面は処理の必要がないことがわかります。

4.モデリング

X_train,X_test,y_train,y_test=train_test_split(csgo[["Ping","Kills","Assists","Deaths","MVP","HSP"]],csgo["Score"],random_state=1)

スコアは予測値に分割され、他の属性は特徴値に分割され、データはトレーニングセットとテストセットに分割されます。

LR=LinearRegression()
LR.fit(X_train,y_train)
prediction=LR.predict(X_test)
r2_score(y_test,prediction)

knnアルゴリズムを導入した後、モデリングした後、テストセットの精度がスコアリングされ、得られた結果は次のとおりです。
ここに画像の説明を挿入

モデルの精度は約94%であることがわかります。
この時点で、このデータセットのモデリングは完了です。

5.まとめ

1.最小二乗アルゴリズムは難しくないと感じることができますが、それは確かに最も古典的で重要なアルゴリズムの1つです。他の多くの線形回帰アルゴリズムはそのモデル式に基づいて導出されるため、このモデルの式を理解する必要があります。
アルゴリズムの原理を独自に理解している必要があり、アルゴリズムの研究開発に特化していない場合もありますが、アルゴリズムの使用方法と使用されるシナリオを知っている必要があります。

2.このアルゴリズムにはパラメーターがまったくないため、このアルゴリズムはパラメーター調整を必要としないことがわかります。これは利点ですが、モデルの複雑さを制御する方法がないという1つのことも反映しています。モデルの精度を向上させるために、アルゴリズム自体を調整します。

うまくいかないところもたくさんありますが、ネチズンの方も大歓迎ですので、お友達とお会いして一緒に議論したいと思います。

おすすめ

転載: blog.csdn.net/weixin_43580339/article/details/112271333