线性回归及案例实操

news2024/11/28 1:38:00

线性回归

  • 回归处理的问题为预测:
    • 预测房价
    • 销售额的预测
    • 设定贷款额度
    • 总结:上述案例中,可以根据事物的相关特征预测出对应的结果值

什么是回归

那么,这个回归究竟是什么意思呢?其实回归算法是相对分类算法而言的,与我们想要预测的目标变量y的值类型有关。如果目标变量y是分类型变量,如预测用户的性别(男、女),预测月季花的颜色(红、白、黄……),预测是否患有肺癌(是、否),那我们就需要用分类算法去拟合训练数据并做出预测;

如果y是连续型变量,如预测用户的收入(4千,2万,10万……),预测员工的通勤距离(500m,1km,2万里……),预测患肺癌的概率(1%,50%,99%……),我们则需要用回归模型。

一元线性回归

线性回归可以说是用法非常简单、,作为机器学习的入门算法非常合适。我们上中学的时候,都学过二元一次方程,我们将y作为因变量,x作为自变量,得到方程:

Image Name

当给定参数β0和β1的时候,画在坐标图内是一条直线(这就是“线性”的含义)。

当我们只用一个x来预测y,就是一元线性回归,也就是在找一个直线来拟合数据。

比如,我有一组数据画出来的散点图,横坐标代表广告投入金额,纵坐标代表销售量,线性回归就是要找一条直线,并且让这条直线尽可能地拟合图中的数据点。

Image Name

这里我们得到的拟合方程是y = 0.0512x + 7.1884,此时当我们获得一个新的广告投入金额后,我们就可以用这个方程预测出大概的销售量。

线性回归(Linear Regression)是一种用于建立和分析关于两个或多个变量之间线性关系的统计方法和机器学习算法。它被广泛应用于预测和建模任务,尤其是用于预测数值型输出(连续型变量)。

线性回归的基本思想是寻找自变量(输入特征)与因变量(输出目标)之间的线性关系,即一个线性方程,用来描述这些变量之间的关系。一般来说,线性回归模型的方程如下:
在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

线性回归适用于以下情况:

  • 希望理解和建模两个或多个变量之间的线性关系。
  • 需要进行数值型输出的预测。
  • 需要估计特征对目标变量的影响。
  • 需要进行简单的模型解释和解释能力较强的建模。

线性回归是机器学习和统计学中最简单但也是最有用的工具之一,它为许多预测问题提供了一个坚实的基础。在实际应用中,线性回归通常有多种变体,如多元线性回归、岭回归、Lasso回归等,以适应不同问题的需求。

注意 :做线性回归,不要忘了前提假设是y和x呈线性关系,如果两者不是线性关系,就要选用其他的模型啦。

线性回归案例

#导入必要的库
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 加载波士顿房价数据集
boston = datasets.load_boston()
#data:这是一个NumPy数组,包含了数据集的特征值。每一行代表一个数据样本,每一列代表一个特征。
boston.data
array([[6.3200e-03, 1.8000e+01, 2.3100e+00, ..., 1.5300e+01, 3.9690e+02,
        4.9800e+00],
       [2.7310e-02, 0.0000e+00, 7.0700e+00, ..., 1.7800e+01, 3.9690e+02,
        9.1400e+00],
       [2.7290e-02, 0.0000e+00, 7.0700e+00, ..., 1.7800e+01, 3.9283e+02,
        4.0300e+00],
       ...,
       [6.0760e-02, 0.0000e+00, 1.1930e+01, ..., 2.1000e+01, 3.9690e+02,
        5.6400e+00],
       [1.0959e-01, 0.0000e+00, 1.1930e+01, ..., 2.1000e+01, 3.9345e+02,
        6.4800e+00],
       [4.7410e-02, 0.0000e+00, 1.1930e+01, ..., 2.1000e+01, 3.9690e+02,
        7.8800e+00]])
#feature_names:这是一个字符串数组,包含了与data中的列对应的特征名称。
boston.feature_names
array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',
       'TAX', 'PTRATIO', 'B', 'LSTAT'], dtype='<U7')
#target:这是一个NumPy数组,包含了数据集的目标变量,也就是房价。
boston.target
array([24. , 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15. ,
       18.9, 21.7, 20.4, 18.2, 19.9, 23.1, 17.5, 20.2, 18.2, 13.6, 19.6,
       15.2, 14.5, 15.6, 13.9, 16.6, 14.8, 18.4, 21. , 12.7, 14.5, 13.2,
       13.1, 13.5, 18.9, 20. , 21. , 24.7, 30.8, 34.9, 26.6, 25.3, 24.7,
       21.2, 19.3, 20. , 16.6, 14.4, 19.4, 19.7, 20.5, 25. , 23.4, 18.9,
       35.4, 24.7, 31.6, 23.3, 19.6, 18.7, 16. , 22.2, 25. , 33. , 23.5,
       19.4, 22. , 17.4, 20.9, 24.2, 21.7, 22.8, 23.4, 24.1, 21.4, 20. ,
       20.8, 21.2, 20.3, 28. , 23.9, 24.8, 22.9, 23.9, 26.6, 22.5, 22.2,
       23.6, 28.7, 22.6, 22. , 22.9, 25. , 20.6, 28.4, 21.4, 38.7, 43.8,
       33.2, 27.5, 26.5, 18.6, 19.3, 20.1, 19.5, 19.5, 20.4, 19.8, 19.4,
       21.7, 22.8, 18.8, 18.7, 18.5, 18.3, 21.2, 19.2, 20.4, 19.3, 22. ,
       20.3, 20.5, 17.3, 18.8, 21.4, 15.7, 16.2, 18. , 14.3, 19.2, 19.6,
       23. , 18.4, 15.6, 18.1, 17.4, 17.1, 13.3, 17.8, 14. , 14.4, 13.4,
       15.6, 11.8, 13.8, 15.6, 14.6, 17.8, 15.4, 21.5, 19.6, 15.3, 19.4,
       17. , 15.6, 13.1, 41.3, 24.3, 23.3, 27. , 50. , 50. , 50. , 22.7,
       25. , 50. , 23.8, 23.8, 22.3, 17.4, 19.1, 23.1, 23.6, 22.6, 29.4,
       23.2, 24.6, 29.9, 37.2, 39.8, 36.2, 37.9, 32.5, 26.4, 29.6, 50. ,
       32. , 29.8, 34.9, 37. , 30.5, 36.4, 31.1, 29.1, 50. , 33.3, 30.3,
       34.6, 34.9, 32.9, 24.1, 42.3, 48.5, 50. , 22.6, 24.4, 22.5, 24.4,
       20. , 21.7, 19.3, 22.4, 28.1, 23.7, 25. , 23.3, 28.7, 21.5, 23. ,
       26.7, 21.7, 27.5, 30.1, 44.8, 50. , 37.6, 31.6, 46.7, 31.5, 24.3,
       31.7, 41.7, 48.3, 29. , 24. , 25.1, 31.5, 23.7, 23.3, 22. , 20.1,
       22.2, 23.7, 17.6, 18.5, 24.3, 20.5, 24.5, 26.2, 24.4, 24.8, 29.6,
       42.8, 21.9, 20.9, 44. , 50. , 36. , 30.1, 33.8, 43.1, 48.8, 31. ,
       36.5, 22.8, 30.7, 50. , 43.5, 20.7, 21.1, 25.2, 24.4, 35.2, 32.4,
       32. , 33.2, 33.1, 29.1, 35.1, 45.4, 35.4, 46. , 50. , 32.2, 22. ,
       20.1, 23.2, 22.3, 24.8, 28.5, 37.3, 27.9, 23.9, 21.7, 28.6, 27.1,
       20.3, 22.5, 29. , 24.8, 22. , 26.4, 33.1, 36.1, 28.4, 33.4, 28.2,
       22.8, 20.3, 16.1, 22.1, 19.4, 21.6, 23.8, 16.2, 17.8, 19.8, 23.1,
       21. , 23.8, 23.1, 20.4, 18.5, 25. , 24.6, 23. , 22.2, 19.3, 22.6,
       19.8, 17.1, 19.4, 22.2, 20.7, 21.1, 19.5, 18.5, 20.6, 19. , 18.7,
       32.7, 16.5, 23.9, 31.2, 17.5, 17.2, 23.1, 24.5, 26.6, 22.9, 24.1,
       18.6, 30.1, 18.2, 20.6, 17.8, 21.7, 22.7, 22.6, 25. , 19.9, 20.8,
       16.8, 21.9, 27.5, 21.9, 23.1, 50. , 50. , 50. , 50. , 50. , 13.8,
       13.8, 15. , 13.9, 13.3, 13.1, 10.2, 10.4, 10.9, 11.3, 12.3,  8.8,
        7.2, 10.5,  7.4, 10.2, 11.5, 15.1, 23.2,  9.7, 13.8, 12.7, 13.1,
       12.5,  8.5,  5. ,  6.3,  5.6,  7.2, 12.1,  8.3,  8.5,  5. , 11.9,
       27.9, 17.2, 27.5, 15. , 17.2, 17.9, 16.3,  7. ,  7.2,  7.5, 10.4,
        8.8,  8.4, 16.7, 14.2, 20.8, 13.4, 11.7,  8.3, 10.2, 10.9, 11. ,
        9.5, 14.5, 14.1, 16.1, 14.3, 11.7, 13.4,  9.6,  8.7,  8.4, 12.8,
       10.5, 17.1, 18.4, 15.4, 10.8, 11.8, 14.9, 12.6, 14.1, 13. , 13.4,
       15.2, 16.1, 17.8, 14.9, 14.1, 12.7, 13.5, 14.9, 20. , 16.4, 17.7,
       19.5, 20.2, 21.4, 19.9, 19. , 19.1, 19.1, 20.1, 19.9, 19.6, 23.2,
       29.8, 13.8, 13.3, 16.7, 12. , 14.6, 21.4, 23. , 23.7, 25. , 21.8,
       20.6, 21.2, 19.1, 20.6, 15.2,  7. ,  8.1, 13.6, 20.1, 21.8, 24.5,
       23.1, 19.7, 18.3, 21.2, 17.5, 16.8, 22.4, 20.6, 23.9, 22. , 11.9])
# 转换数据为DataFrame
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
boston_df.head()
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTAT
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.98
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.14
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.03
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.94
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.33

CRIM:各城镇的人均犯罪率。

ZN:占地面积超过 25,000 平方英尺的住宅用地的比例。

INDUS:城镇非零售商业用地的比例。

CHAS:查尔斯河虚拟变量(如果一条街道临近查尔斯河,取值为1;否则,取值为0)。

NOX:一氧化氮浓度(每百万份)。

RM:住宅平均房间数。

AGE:1940 年之前建造的自住房屋的比例。

DIS:到就业中心的加权距离。

RAD:到径向公路的可达性指数。

TAX:房产税率。

PTRATIO:城镇的师生比例。

B:1000(Bk - 0.63)^2,其中Bk是城镇中黑人的比例。

LSTAT:较低社会地位人口的百分比。

MEDV:自住房的中位数房价,这是该数据集的目标变量。

boston_df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 506 entries, 0 to 505
Data columns (total 13 columns):
CRIM       506 non-null float64
ZN         506 non-null float64
INDUS      506 non-null float64
CHAS       506 non-null float64
NOX        506 non-null float64
RM         506 non-null float64
AGE        506 non-null float64
DIS        506 non-null float64
RAD        506 non-null float64
TAX        506 non-null float64
PTRATIO    506 non-null float64
B          506 non-null float64
LSTAT      506 non-null float64
dtypes: float64(13)
memory usage: 51.5 KB
# 将目标(房价)添加到DataFrame
boston_df['PRICE'] = boston.target
boston.target
array([24. , 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15. ,
       18.9, 21.7, 20.4, 18.2, 19.9, 23.1, 17.5, 20.2, 18.2, 13.6, 19.6,
       15.2, 14.5, 15.6, 13.9, 16.6, 14.8, 18.4, 21. , 12.7, 14.5, 13.2,
       13.1, 13.5, 18.9, 20. , 21. , 24.7, 30.8, 34.9, 26.6, 25.3, 24.7,
       21.2, 19.3, 20. , 16.6, 14.4, 19.4, 19.7, 20.5, 25. , 23.4, 18.9,
       35.4, 24.7, 31.6, 23.3, 19.6, 18.7, 16. , 22.2, 25. , 33. , 23.5,
       19.4, 22. , 17.4, 20.9, 24.2, 21.7, 22.8, 23.4, 24.1, 21.4, 20. ,
       20.8, 21.2, 20.3, 28. , 23.9, 24.8, 22.9, 23.9, 26.6, 22.5, 22.2,
       23.6, 28.7, 22.6, 22. , 22.9, 25. , 20.6, 28.4, 21.4, 38.7, 43.8,
       33.2, 27.5, 26.5, 18.6, 19.3, 20.1, 19.5, 19.5, 20.4, 19.8, 19.4,
       21.7, 22.8, 18.8, 18.7, 18.5, 18.3, 21.2, 19.2, 20.4, 19.3, 22. ,
       20.3, 20.5, 17.3, 18.8, 21.4, 15.7, 16.2, 18. , 14.3, 19.2, 19.6,
       23. , 18.4, 15.6, 18.1, 17.4, 17.1, 13.3, 17.8, 14. , 14.4, 13.4,
       15.6, 11.8, 13.8, 15.6, 14.6, 17.8, 15.4, 21.5, 19.6, 15.3, 19.4,
       17. , 15.6, 13.1, 41.3, 24.3, 23.3, 27. , 50. , 50. , 50. , 22.7,
       25. , 50. , 23.8, 23.8, 22.3, 17.4, 19.1, 23.1, 23.6, 22.6, 29.4,
       23.2, 24.6, 29.9, 37.2, 39.8, 36.2, 37.9, 32.5, 26.4, 29.6, 50. ,
       32. , 29.8, 34.9, 37. , 30.5, 36.4, 31.1, 29.1, 50. , 33.3, 30.3,
       34.6, 34.9, 32.9, 24.1, 42.3, 48.5, 50. , 22.6, 24.4, 22.5, 24.4,
       20. , 21.7, 19.3, 22.4, 28.1, 23.7, 25. , 23.3, 28.7, 21.5, 23. ,
       26.7, 21.7, 27.5, 30.1, 44.8, 50. , 37.6, 31.6, 46.7, 31.5, 24.3,
       31.7, 41.7, 48.3, 29. , 24. , 25.1, 31.5, 23.7, 23.3, 22. , 20.1,
       22.2, 23.7, 17.6, 18.5, 24.3, 20.5, 24.5, 26.2, 24.4, 24.8, 29.6,
       42.8, 21.9, 20.9, 44. , 50. , 36. , 30.1, 33.8, 43.1, 48.8, 31. ,
       36.5, 22.8, 30.7, 50. , 43.5, 20.7, 21.1, 25.2, 24.4, 35.2, 32.4,
       32. , 33.2, 33.1, 29.1, 35.1, 45.4, 35.4, 46. , 50. , 32.2, 22. ,
       20.1, 23.2, 22.3, 24.8, 28.5, 37.3, 27.9, 23.9, 21.7, 28.6, 27.1,
       20.3, 22.5, 29. , 24.8, 22. , 26.4, 33.1, 36.1, 28.4, 33.4, 28.2,
       22.8, 20.3, 16.1, 22.1, 19.4, 21.6, 23.8, 16.2, 17.8, 19.8, 23.1,
       21. , 23.8, 23.1, 20.4, 18.5, 25. , 24.6, 23. , 22.2, 19.3, 22.6,
       19.8, 17.1, 19.4, 22.2, 20.7, 21.1, 19.5, 18.5, 20.6, 19. , 18.7,
       32.7, 16.5, 23.9, 31.2, 17.5, 17.2, 23.1, 24.5, 26.6, 22.9, 24.1,
       18.6, 30.1, 18.2, 20.6, 17.8, 21.7, 22.7, 22.6, 25. , 19.9, 20.8,
       16.8, 21.9, 27.5, 21.9, 23.1, 50. , 50. , 50. , 50. , 50. , 13.8,
       13.8, 15. , 13.9, 13.3, 13.1, 10.2, 10.4, 10.9, 11.3, 12.3,  8.8,
        7.2, 10.5,  7.4, 10.2, 11.5, 15.1, 23.2,  9.7, 13.8, 12.7, 13.1,
       12.5,  8.5,  5. ,  6.3,  5.6,  7.2, 12.1,  8.3,  8.5,  5. , 11.9,
       27.9, 17.2, 27.5, 15. , 17.2, 17.9, 16.3,  7. ,  7.2,  7.5, 10.4,
        8.8,  8.4, 16.7, 14.2, 20.8, 13.4, 11.7,  8.3, 10.2, 10.9, 11. ,
        9.5, 14.5, 14.1, 16.1, 14.3, 11.7, 13.4,  9.6,  8.7,  8.4, 12.8,
       10.5, 17.1, 18.4, 15.4, 10.8, 11.8, 14.9, 12.6, 14.1, 13. , 13.4,
       15.2, 16.1, 17.8, 14.9, 14.1, 12.7, 13.5, 14.9, 20. , 16.4, 17.7,
       19.5, 20.2, 21.4, 19.9, 19. , 19.1, 19.1, 20.1, 19.9, 19.6, 23.2,
       29.8, 13.8, 13.3, 16.7, 12. , 14.6, 21.4, 23. , 23.7, 25. , 21.8,
       20.6, 21.2, 19.1, 20.6, 15.2,  7. ,  8.1, 13.6, 20.1, 21.8, 24.5,
       23.1, 19.7, 18.3, 21.2, 17.5, 16.8, 22.4, 20.6, 23.9, 22. , 11.9])
# 划分特征和目标变量
X = boston_df.drop('PRICE', axis=1)
y = boston_df['PRICE']
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=100)
X_train
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTAT
37917.866700.018.100.00.67106.223100.01.386124.0666.020.2393.7421.78
3110.790410.09.900.00.54406.12252.82.64034.0304.018.4396.905.98
1571.223580.019.580.00.60506.94397.41.87735.0403.014.7363.434.59
2440.2060822.05.860.00.43105.59376.57.95497.0330.019.1372.4912.50
560.0205585.00.740.00.41006.38335.79.18762.0313.017.3396.905.77
..........................................
3430.0254355.03.780.00.48406.69656.45.73215.0370.017.6396.907.18
3594.261310.018.100.00.77006.11281.32.509124.0666.020.2390.7412.67
3230.283920.07.380.00.49305.70874.34.72115.0287.019.6391.1311.74
2800.0357820.03.330.00.44297.82064.54.69475.0216.014.9387.313.76
80.2112412.57.870.00.52405.631100.06.08215.0311.015.2386.6329.93

404 rows × 13 columns

X_test
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTAT
1980.0376880.01.520.00.4047.27438.37.30902.0329.012.6392.206.62
2290.441780.06.200.00.5046.55221.43.37518.0307.017.4380.343.76
5020.045270.011.930.00.5736.12076.72.28751.0273.021.0396.909.08
311.354720.08.140.00.5386.072100.04.17504.0307.021.0376.7313.04
3150.253560.09.900.00.5445.70577.73.94504.0304.018.4396.4211.50
..........................................
1662.010190.019.580.00.6057.92996.22.04595.0403.014.7369.303.70
40114.236200.018.100.00.6936.343100.01.574124.0666.020.2396.9020.32
3684.898220.018.100.00.6314.970100.01.332524.0666.020.2375.523.26
1400.290900.021.890.00.6246.17493.61.61194.0437.021.2388.0824.16
4287.367110.018.100.00.6796.19378.11.935624.0666.020.296.7321.52

102 rows × 13 columns

y_train
379    10.2
311    22.1
157    41.3
244    17.6
56     24.7
       ... 
343    23.9
359    22.6
323    18.5
280    45.4
8      16.5
Name: PRICE, Length: 404, dtype: float64
y_test
198    34.6
229    31.5
502    20.6
31     14.5
315    16.2
       ... 
166    50.0
401     7.2
368    50.0
140    14.0
428    11.0
Name: PRICE, Length: 102, dtype: float64
# 创建线性回归模型
model = LinearRegression()

# 拟合模型
model.fit(X_train, y_train)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)
# 预测房价
y_pred = model.predict(X_test)
y_pred
array([34.4081095 , 31.18524626, 22.31286141, 17.88613877, 20.43572131,
       26.14444413, 26.21920244, 23.57978445, 22.41577853, 19.51182817,
       26.86691495, 17.20411302, 20.68511041, 15.67921778, 41.69912781,
       20.2946735 , 28.99258631, 19.06413492, 32.48035595, 41.13627224,
       34.64732462, 16.38997909, 20.42215729, 18.05324255, 13.38743087,
       12.64800748, 27.45930237, 20.30199107, 18.78954741, 20.24950994,
       15.60161419, 24.38040555, 38.95651978, 24.7184131 , 31.26791961,
       28.26279775, 15.84707127, 14.76661568, 16.79024244, 23.23674899,
       22.85417065, 23.48976177, 14.16818173, 21.42613087, 32.38362329,
       26.7881669 , 19.37574824, 15.27894103, 17.21175121, 12.91591919,
       21.84063224, 20.25050371, 23.65622638, 23.9608324 , 11.94749102,
       14.49718052, 24.69872363, 34.18169066, 10.30437821, 21.04686616,
       17.96204214, 19.76593459, 17.45231513, 29.982971  , 20.73183476,
       25.24657823, 15.81416285, 24.96705225, 22.1298931 , 20.77593563,
       18.69600904, 24.2201495 ,  4.37889874, 15.95687399, 28.03130587,
        9.28438308, 24.76810967, 35.14238234, 11.61172029, 27.04175401,
       34.84290485, 40.44603313, 13.93219791, 15.95544402, 19.26007763,
       12.76037799, 20.90536105, 23.85659356, 13.17899179, 14.76828889,
       32.31355353, 22.93635318, 24.63095357, 23.51981407, 19.34136578,
       22.83582245, 21.72263765, 36.18508621, 18.01097012, 23.18226475,
       13.77270991, 14.43864146])
# 创建一个新的DataFrame,将实际值、预测值和特征合并在一起
results_df = X_test.copy()
results_df['Actual_Price'] = y_test
results_df['Predicted_Price'] = y_pred
results_df.head(10)
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATActual_PricePredicted_Price
1980.0376880.01.520.00.4047.27438.37.30902.0329.012.6392.206.6234.634.408110
2290.441780.06.200.00.5046.55221.43.37518.0307.017.4380.343.7631.531.185246
5020.045270.011.930.00.5736.12076.72.28751.0273.021.0396.909.0820.622.312861
311.354720.08.140.00.5386.072100.04.17504.0307.021.0376.7313.0414.517.886139
3150.253560.09.900.00.5445.70577.73.94504.0304.018.4396.4211.5016.220.435721
1692.449530.019.580.00.6056.40295.22.26255.0403.014.7330.0411.3222.326.144444
1110.100840.010.010.00.5476.71581.62.67756.0432.017.8395.5910.1622.826.219202
2060.229690.010.590.00.4896.32652.54.35494.0277.018.6394.8710.9724.423.579784
1080.128020.08.560.00.5206.47497.12.43295.0384.020.9395.2412.2719.822.415779
42011.087400.018.100.00.7186.411100.01.858924.0666.020.2318.7515.0216.719.511828
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
mse
23.616994100563634
# 计算R-squared(决定系数)
r2 = r2_score(y_test, y_pred)
r2
0.7555033086871304

线性回归的评价指标

  1. 均方误差(Mean Squared Error,MSE):MSE是最常用的线性回归模型评价指标之一。它计算了模型的预测值与实际观测值之间的平方差的平均值。MSE越小,模型的拟合能力越好。
    公式:MSE = Σ(yi - ŷi)² / n,其中 yi 表示实际观测值,ŷi 表示模型的预测值,n 表示样本数量。
  1. 均方根误差(Root Mean Squared Error,RMSE):RMSE是MSE的平方根,它在与实际数据单位相同的度量下提供了误差的平均大小。RMSE也越小越好。
    公式:RMSE = √(Σ(yi - ŷi)² / n)
  1. 平均绝对误差(Mean Absolute Error,MAE):MAE计算了模型的预测值与实际观测值之间的绝对差的平均值。MAE越小,表示模型对数据的拟合越好。
    公式:MAE = Σ|yi - ŷi| / n
  1. 决定系数(Coefficient of Determination,R-squared,R²):R²度量了线性回归模型对数据的拟合程度。它的取值范围在0到1之间,越接近1表示模型拟合得越好。
    公式:R² = 1 - (Σ(yi - ŷi)² / Σ(yi - ȳ)²),其中 yi 表示实际观测值,ŷi 表示模型的预测值,ȳ 表示实际观测值的均值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1266864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp上架app store详细攻略

​ 目录 uniapp上架app store详细攻略 前言 一、登录苹果开发者网站 二、创建好APP 前言 uniapp开发多端应用&#xff0c;打包ios应用后&#xff0c;会生成一个ipa后缀的文件。这个文件无法直接安装在iphone上&#xff0c;需要将这个ipa文件上架app store后&#xff0c;才…

linux下实现Qt程序开机自启动

要想实现开机自启动&#xff0c;首先&#xff0c;QT是没有这种实现的&#xff0c;最好是靠电脑开机的启动目录启动软件&#xff0c;下面这个目录 /etc/xdg/autostart 这是操作系统中用于配置启动项的目录&#xff0c;该目录下存放着开机自启动的启动器(.desktop)文件&#xf…

VMD-Attention-LSTM 价格预测实战

VMD-Attention-LSTM时间序列价格预测实战 完整数据代码可直接运行_哔哩哔哩_bilibili 数据展示:数据有几万条 足够的 主要模型代码: import tensorflow as tfdef attention_3d_block(inputs,TIME_STEPS,SINGLE_ATTENTION_VECTOR):# inputs.shape = (batch_size, time_steps,…

水离子水壁炉的科技创新与时尚家居潮流

近年来&#xff0c;水离子水壁炉作为家居装饰的新宠儿&#xff0c;正在以其独特的科技创新和时尚设计引领家居潮流。这一新型壁炉不仅注重外观美感&#xff0c;更借助先进科技实现了温馨的火焰效果&#xff0c;成为现代家居中的独特亮点。 水离子水壁炉的科技创新主要体现在其采…

人工智能在内容相关性Content Relevance方面的应用

许多公司在向客户和潜在客户提供内容服务时犯了一个错误&#xff0c;即定制性不足&#xff0c;内容过于通用&#xff0c;可能与每位目标客户都不相关。谈及内容相关性时&#xff0c;人们希望获得有用的信息和问题解决方法&#xff0c;或具有娱乐性和参与性的内容。 为客户提供…

Ubuntu20.04部署TVM流程及编译优化模型示例

前言&#xff1a;记录自己安装TVM的流程&#xff0c;以及一个简单的利用TVM编译模型并执行的示例。 1&#xff0c;官网下载TVM源码 git clone --recursive https://github.com/apache/tvmgit submodule init git submodule update顺便完成准备工作&#xff0c;比如升级cmake版本…

数据库的重要你了解多少?如何保障数据库的安全?

随着信息技术的快速发展&#xff0c;数据库已经成为企业、组织以及个人日常生活中不可或缺的一部分。然而&#xff0c;随着数据库的广泛应用&#xff0c;其安全性问题也日益凸显。数据库的安全性主要包括数据的完整性、保密性和可用性。本文将探讨数据库安全性的重要性、以及如…

户外低功耗太阳能板供电无线RTU数据采集支持定时采集各类485接口传感器数据推送数据到第三方平台远程监测系统搭建方案

户外低功耗太阳能板供电无线RTU数据采集&#xff0c;下行支持定时采集各种485接口传感器&#xff0c;对外输出5V/12V电压&#xff0c;上行支持各物联网云平台接入。

销售手里的找客户神器:天眼销

那些曾经战斗在B端&#xff08;企业&#xff09;销售战线的朋友们&#xff0c;都应该深知其中的苦涩。尤其是那如同大海捞针般的客户搜寻&#xff0c;批量客户的挖掘&#xff0c;更不用说批量精准客户的寻找了。在互联网的海洋里探索线索&#xff0c;既耗时又耗力&#xff0c;还…

去水印软件有哪些?亲测四款好用去水印神器

去水印软件有哪些&#xff1f;随着图片的普及和应用范围不断扩大&#xff0c;我们有时需要对图片进行编辑或修改。然而&#xff0c;有些图片可能会带有水印&#xff0c;这会降低图片的美观度和应用效果。作为一名自媒体打工人&#xff0c;经过多番对比&#xff0c;整理了四款好…

硬核实力,闪耀羊城!第23届广州车展完美收官,大运乘用车尽显品牌魅力

11月26日&#xff0c;第23届广州国际车展在广州圆满闭幕。作为各大车展的老朋友&#xff0c;本届广交会大运乘用车携旗下潮玩纯电越野小钢炮悦虎及大7座智能豪华纯电MPV远志M1两大明星车型闪耀全场&#xff0c;再次揽收空前关注。 当下以85、90、00后为主的年轻群体看中新能源汽…

基于SpringBoot+微信小程序汽车服务系统的设计与实现

早晨四点起来&#xff0c;开发个基于SpringBoot微信小程序汽车服务系统。 困死我了。 送完孩子&#xff0c;然后去上班。 昨天有个读者朋友问小孟&#xff1a;程序员之间的差距为何如此之大。 有时候甚至在同一所大学&#xff0c;同一个专业&#xff0c;有的学生大四毕业可…

Linux中的Rust支持步入成熟,得到业界巨头的大力支持

导读Rust在Linux中的支持正在逐步走向成熟&#xff0c;并且得到了思科、三星和Canonical等业界巨头的积极支持。尽管Rust不可能完全取代C语言在Linux内核中的地位&#xff0c;但其必将成为Linux开发的重要语言。 Rust语言的安全性和性能优势为其在Linux开发中的应用打开了大门…

Jupyter Markdown 插入图片

首先截图 注意 这一步是关键的&#xff01;&#xff01; 它需要使用电脑自带的截图&#xff0c;用qq啊vx啊美图秀秀那些都不行哦。 截图之后复制&#xff1a; 然后快捷键粘贴到jupyter里面&#xff0c;它会生成一段代码&#xff08;没有代码就是说截图形式不对&#xff09;&a…

如何在数字营销中增强客户体验和参与度

不久前&#xff0c;许多人还把身临其境技术与科幻小说联系在一起&#xff0c;而最近&#xff0c;这种技术又与游戏联系在了一起。如今&#xff0c;许多组织都认识到了采用增强现实和虚拟现实技术改善运营的优势。增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&a…

MySQL系列 - 数据类型

MySQL是一种常用的关系型数据库管理系统&#xff0c;它支持多种数据类型&#xff0c;包括整数、浮点数、字符串、日期和时间等。在本文中&#xff0c;我们将介绍MySQL中常用的数据类型及其用法。 MySQL数据类型介绍&#xff1a; 1、整数类型&#xff1a; MySQL提供了多种整数…

【面试心经】——上海广升智能科技有限公司

介绍 本文记录的是2018.5月份应聘上海广升linux 开发岗位的经历。 福利待遇&#xff1a; BOSS 岗位薪资&#xff1a;15K ~25K。 每月一天带薪病假或事假。 国家规定外有额外4天年假。 每年两次旅游&#xff0c;上半年国外&#xff0c;下半年国内。 每年两次调薪机会&…

南大通用 GBase 8s数据库级别权限

对于所有有权使用指定数据库的用户都必须赋予其数据库级别的用户权限。在GBase 8s 中&#xff0c;数据库级别的用户权限有三种&#xff0c;按权限从低到高排列依次为&#xff1a;CONNECT、RESOURCE、DBA。 1. CONNECT 这是级别最低的一种数据库级别用户权限。拥有该权限的用户…

H3C堆叠和聚合配置

因ensp做不了堆叠&#xff0c;所以用了华三的模拟器HCL&#xff0c;下载地址&#xff1a;H3C网络设备模拟器官方免费下载-新华三集团-H3C 拓朴如下&#xff1a; 1、堆叠配置步骤如下&#xff1a; 1、S1和S2配置堆叠过程&#xff1a; [S1] irf domain 1 irf member 1 priority …

人工智能驱动的医疗辅助:陪诊系统的技术原理与应用

随着人工智能技术的不断发展&#xff0c;医疗领域也迎来了新的可能性。本文将深入探讨陪诊系统的技术原理及其在医疗领域中的应用。我们将重点关注人工智能的核心概念&#xff0c;如自然语言处理、机器学习和语音识别&#xff0c;以解释陪诊系统是如何在医疗环境中发挥作用的。…