机器学习线性回归(一):线性回归的基本概念和案例

LinearRegression(线性回归)

回归是一种解题的方法,或者说是“学习的方法”,也是机器学习中比较重要的概念。 回归一词的英文是Regression,单词原型regress大概的意思是“回退,倒退,退化”。 其实Regression回归分析的意思借用了这么一层含义,是由果索因的过程,是一种归 纳的思想。当看到大量的事实所呈现的状态,推断出原因是如何的;当看到大量的数 字的时候,推断出他们之间的关系是什么样的。

线性回归是利用数理统计中回归分析来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。公式为:
在这里插入图片描述
e为误差服从均值为0 的高斯分布。
现实生活中有很多的东西和线性回归有着密切的关系,在气温预测,台风行径预测,风速预测,贷款金额预测等等。
在这里插入图片描述
在这里插入图片描述
我们经常使用的回归叫做多元一次回归方程:
在这里插入图片描述
其中w,x是一个矩阵:
在这里插入图片描述
用函数分段的方式表示:
在这里插入图片描述
矩阵的表示方式
在这里插入图片描述

回归

人类的生长是一个回归的过程,比如,七坐八趴。

狗,狗到几岁的时候就Over了。

回归分析:Y是因变量,X是解释型的变量

  • 线性回归中,Y是一组连续的数字
  • 预测2020年上海3号线大柏树房价为多少。
  • 信用卡,你的额度是多少。
  • 演员的电影,分析演员具有哪些特质会收到大众的喜爱(比如公益:喜欢指数是多少)。
  • 零一回归中,Y是"是"或"不是"
  • 能不能办理信用卡
  • 定序回归中,Y是"图书"或者"游戏"或者"运动"或者是…
  • 计数回归中,Y是数字,计算你有多少个包,是一个整数
  • 生存回归中,Y是一个范围(70+)

普通线性回归

import numpy as np

以一个具体的例子来看。假设一帮孩子和家长出去旅游,去程坐的是bus,小孩票价为3元,家长票价为3.2元,总价是118.4元;回程坐的是Train,小孩票价为3.5元,家长票价为3.6元,总价是135.2元。问题是分别求小孩和家长的人数。我们就可以用下列矩阵求之。
普通的:

3 x 1 + 3.2 x 2 = 118.4 3x_1 + 3.2x_2 = 118.4 3x1+3.2x2=118

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于机器学习线性回归模型的案例,包含多元线性回归和PCA降维: ## 数据集 我们将使用一个来自UCI Machine Learning Repository的数据集,该数据集包含了波士顿地区不同位置房屋的房价和相关信息。数据集中包含13个特征变量和1个目标变量(房价)。这个数据集是一个经典的回归问题,我们将使用多元线性回归模型来预测房价。 ## 数据预处理 首先,我们需要将数据集读入到程序中,并对数据进行预处理。我们使用pandas库来读取和处理数据: ```python import pandas as pd # 读取数据 df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data', header=None, sep='\s+') df.columns = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV'] # 查看数据 print(df.head()) ``` 我们可以看到,数据集中的每个特征都有不同的取值范围和单位,因此我们需要对数据进行标准化处理。我们使用sklearn库中的StandardScaler类来进行标准化处理: ```python from sklearn.preprocessing import StandardScaler X = df.iloc[:, :-1].values y = df['MEDV'].values # 标准化处理 sc = StandardScaler() X = sc.fit_transform(X) y = sc.fit_transform(y.reshape(-1, 1)) ``` ## 多元线性回归模型 接下来,我们使用多元线性回归模型来训练数据集,并预测房价。我们使用sklearn库中的LinearRegression类来实现多元线性回归模型: ```python from sklearn.linear_model import LinearRegression # 训练模型 regressor = LinearRegression() regressor.fit(X, y) # 预测房价 X_test = sc.transform([[0.03237, 0.0, 2.18, 0, 0.458, 6.998, 45.8, 6.0622, 3, 222, 18.7, 394.63, 2.94]]) y_pred = regressor.predict(X_test) # 将预测结果转换为原始值 y_pred = sc.inverse_transform(y_pred) print('预测房价为:{:.2f}万美元'.format(y_pred[0][0])) ``` ## PCA降维 接下来,我们将使用PCA降维来简化特征空间并提高模型训练的效率。我们使用sklearn库中的PCA类来实现PCA降维: ```python from sklearn.decomposition import PCA # PCA降维 pca = PCA(n_components=2) X_pca = pca.fit_transform(X) # 训练模型 regressor_pca = LinearRegression() regressor_pca.fit(X_pca, y) # 预测房价 X_test_pca = pca.transform([[0.03237, 0.0, 2.18, 0, 0.458, 6.998, 45.8, 6.0622, 3, 222, 18.7, 394.63, 2.94]]) y_pred_pca = regressor_pca.predict(X_test_pca) # 将预测结果转换为原始值 y_pred_pca = sc.inverse_transform(y_pred_pca) print('预测房价为:{:.2f}万美元'.format(y_pred_pca[0][0])) ``` ## 结果分析 接下来,我们将比较使用多元线性回归模型和PCA降维后的多元线性回归模型的预测结果: ```python print('多元线性回归模型预测房价为:{:.2f}万美元'.format(y_pred[0][0])) print('PCA降维后的多元线性回归模型预测房价为:{:.2f}万美元'.format(y_pred_pca[0][0])) ``` 我们可以看到,使用PCA降维后的多元线性回归模型的预测结果与使用多元线性回归模型的预测结果相同,但是PCA降维后的特征空间更简化,模型训练的效率更高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值