機械学習の実践: Python は LR 線形回帰に基づいて予測します (10)

1 はじめに

ここでの LR はLinear Regression 、つまり線形回帰を指すことに注意してくださいロジスティック回帰ではなく、ロジスティック回帰、両方の略語は LR ですが、後者は一般にロジスティック多点として知られています

1.1 LR の概要

線形回帰は、独立変数と連続従属変数の間の線形関係をモデル化するために使用される統計および機械学習の手法です。これは、最も単純で最も一般的な回帰分析手法の 1 つです。

線形回帰の目的は、最適な直線 (単変量線形回帰) または超平面 (多重線形回帰) をフィッティングすることによって、独立変数と従属変数の間の関係を記述することです。これは、独立変数と従属変数の間に線形関係があること、つまり従属変数は独立変数の線形結合によって説明できることを前提としています。

単項線形回帰モデルの数学的表現は次のとおりです。Y = β0 + β1*X + εここで、Y は従属変数、X は独立変数、β0 と β1 は回帰係数、ε は誤差項です。このモデルは、従属変数 Y と独立変数 X の間の線形関係を記述します。β0 は切片、β1 は傾きです。

多重線形回帰モデルは、単項線形回帰を拡張して、複数の独立変数を処理します。数式は次のとおりです。XnY = β0 + β1X1 + β2X2 + ... + βn*Xn + ε,其中Y是因变量,X1, X2, ...は複数の独立変数、β0、β1、β2、...、βn は回帰係数、ε は誤差項です。

アドバンテージ:

  • シンプルさと解釈: 線形回帰は、理解しやすく解釈しやすいシンプルで直感的な方法です。独立変数と従属変数の間には線形関係が確立され、従属変数に対する独立変数の影響の程度と方向は回帰係数を通じて説明できます。

  • 計算効率: 線形回帰は、特に大規模なサンプルと低次元の特徴空間の場合、計算効率が高いことがよくあります。線形回帰モデルの近似は計算の複雑さが低く、大規模なデータセットを処理できます。

  • 強力な解釈可能性: 線形回帰は、変数間の関係と影響度に関する定量的な情報を提供します。回帰係数は、従属変数に対する独立変数の寄与を定量化し、変数間の関係を理解するのに役立ちます。

  • 高い予測精度: データが線形関係に従う場合、線形回帰は高い予測精度を提供します。独立変数と従属変数の間に線形関係がある場合、線形回帰はより優れたフィッティング効果を得ることができます。

欠点:

  • 線形仮定の制限: 線形回帰は、独立変数と従属変数の間に線形関係があることを前提としていますが、実際の問題では必ずしも当てはまりません。データ内の実際の関係が非線形である場合、線形回帰モデルは複雑なパターンや関連性を捕捉できない可能性があります。

  • 外れ値に敏感: 線形回帰は外れ値 (従属変数または独立変数の極端な値) に敏感です。外れ値はモデルの適合性に大きな影響を与え、モデルの不正確さにつながる可能性があります。

  • 高次元の特徴を処理できない: 線形回帰は、高次元の特徴空間の問題を扱う際に課題に直面します。独立変数の数がサンプル サイズよりもはるかに大きい場合、線形回帰は過学習の影響を受ける可能性があります。

  • 柔軟性の欠如: 線形回帰は柔軟性が低く、複雑な非線形関係を捉えることができません。非線形問題の場合、適合性を向上させるために、追加のより複雑なモデルが必要です。

1.2 LRの適用

これは最も基本的な機械学習アルゴリズムであり、幅広い用途があります。

  1. 経済と金融: 線形回帰は、経済予測や政策分析のために、経済指標 (GDP、インフレ率など) と独立変数 (消費、投資、輸出など) との関係を予測するために使用できます。金融分野では、線形回帰を使用して株価や金利などの財務指標を予測できます。

  2. マーケティング: 線形回帰は、販売量、広告投資、価格などの要因の関係を予測し、市場の需要分析を実施し、マーケティング戦略を策定するなどのマーケティング調査に使用できます。

  3. 医学および健康科学: 線形回帰は、病気の発症と危険因子の関係の予測、治療法の効果の評価、生物医学データの分析など、医学および健康分野のデータ分析に使用できます。

  4. 社会科学:線形回帰は、教育研究における生徒の成績と学習時間、家族背景などの関係の予測、社会経済学における収入と学歴、職業などの相関分析など、社会科学分野の研究に利用できます。

  5. 環境科学: 線形回帰は、気温と温室効果ガス排出量、大気汚染物質との関係の予測、生態系に対する環境要因の影響の評価など、環境データの分析に使用できます。

  6. 工学および物理科学: 線形回帰は、工学設計における物理モデルの構築と予測に使用できます。たとえば、材料の強度と温度や圧力などの要因との関係を予測したり、電子部品の性能と設計パラメータの関係を分析したりできます。

2. 気象データセットの実演

2.1 インポート機能

import pandas as pd  
import numpy as np  
import matplotlib.pyplot as plt  
import seaborn as seabornInstance 
from sklearn.model_selection import train_test_split 
from sklearn.linear_model import LinearRegression
from sklearn import metrics
%matplotlib inline

2.2 データのインポート

気象データセットには、降水量、降雪量、気温、風速、その日に雷雨やその他の厳しい気象条件が含まれているかどうかが含まれます。タスクは、入力特徴を最低温度として使用して最高温度を予測することです。
ダウンロードアドレス: https://github.com/Vaibhav-Mehta-19/linear-regression-weather-dataset

dataset = pd.read_csv('weather.csv')
print(dataset.shape)
dataset.describe()

2.3 全体的なデータの視覚化

# 最高温和最低温的二维散点图
dataset.plot(x='MinTemp', y='MaxTemp', style='o')  
plt.title('MinTemp vs MaxTemp')  
plt.xlabel('MinTemp')  
plt.ylabel('MaxTemp')  
plt.show()

# 检查平均最高温
plt.figure(figsize=(15,10))
plt.tight_layout()
seabornInstance.distplot(dataset['MaxTemp'])


結果によると15~20くらいです。

2.4 トレーニングモデル

X = dataset['MinTemp'].values.reshape(-1,1)
y = dataset['MaxTemp'].values.reshape(-1,1)
# 老惯例,训练集/测试集按7/3分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
regressor = LinearRegression()  
regressor.fit(X_train, y_train) 

切片と傾きを計算します。

print(regressor.intercept_)
print(regressor.coef_)


最低温度が 1 単位変化するごとに、最高温度は約 0.82 変化することを意味します。

2.5 予測モデル

y_pred = regressor.predict(X_test)
df = pd.DataFrame({
    
    'Actual': y_test.flatten(), 'Predicted': y_pred.flatten()})
df

# 柱状图可视化结果
df1 = df.head(25)
df1.plot(kind='bar',figsize=(16,10))
plt.grid(which='major', linestyle='-', linewidth='0.5', color='green')
plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black')
plt.show()


ここには 25 セットのデータが表示されています。モデルの精度は少し低いですが、予測されたパーセンテージは依然として実際のパーセンテージに比較的近いです。

# 绘制组间比较线
plt.scatter(X_test, y_test,  color='gray')
plt.plot(X_test, y_pred, color='red', linewidth=2)
plt.show()

2.6 評価モデル

  • 平均絶対誤差 (MAE)、誤差の絶対値の平均:

MAE = (1/n) * Σ|i - yi|

  • 平均二乗誤差 (MSE)、二乗誤差の平均:

MSE = (1/n) * Σ(i - yi)^2

  • 二乗平均平方根誤差 (RMSE)、二乗誤差の平均の平方根:

RMSE = √(MSE)

評価モデルは主に上記3つの指標であり、Scikit-Learnライブラリの事前構築機能で計算できます。

print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_pred))  
print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred))  
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(y_test, y_pred)))


3 つの指標は小さいほど優れており、少し物足りないものの、二乗平均平方根誤差は 4.42、平均絶対誤差は 3.76 であり、モデルの予測誤差は比較的小さいと考えられます。

3 ディスカッション

線形回帰は機械学習における最も基本的で一般的なモデルの 1 つだと思います。線形回帰モデルは、特徴とターゲット変数の間に線形関係を確立することによって予測を行います。モデルの単純さや解釈しやすさなどの利点があり、多くのアプリケーション ドメインで広く使用されています。

ただし、線形回帰モデルにはいくつかの制限もあります。フィーチャとターゲット間の関係は線形であり、外れ値の影響を受けやすいと想定されており、 2.3 の散布図でわかるようにデータの発散が大きくなっています。さらに、フィーチャ間の非線形関係や複雑な相互作用を捉えることはできません。このような場合、より複雑なモデルを検討するか、フィーチャに対して変換を実行する必要がある場合があります。

おすすめ

転載: blog.csdn.net/weixin_48093827/article/details/131534519