当前位置: 首页 > news >正文

免费建网站无广告icp备案 网站首页

免费建网站无广告,icp备案 网站首页,重庆网站设计公司,南宁做网站推广nnsom目录 摘要#xff1a; 一、简单线性回归与多元线性回归 1、简单线性回归 2、多元线性回归 3、残差 二、线性回归的正规方程解 1、线性回归训练流程 2、线性回归的正规方程解 #xff08;1#xff09;适用场景 #xff08;2#xff09;正规方程解的公式 三、衡量…目录 摘要 一、简单线性回归与多元线性回归 1、简单线性回归 2、多元线性回归 3、残差 二、线性回归的正规方程解 1、线性回归训练流程 2、线性回归的正规方程解 1适用场景 2正规方程解的公式 三、衡量线性回归的性能指标 四、scikit-learn线性回归实践 - 波斯顿房价预测 1、数据集介绍 2、LinearRegression 摘要 文章主要介绍了线性回归相关内容包括简单线性回归与多元线性回归的概念及示例阐述了残差的定义、在理想与非理想模型中的情况及意义还讲解了线性回归的正规方程解涵盖其适用场景、公式推导与代码实现提及衡量线性回归性能指标可参考其他文章最后以 scikit-learn 中的 LinearRegression 类为例介绍了其在波士顿房价预测实践中的应用包括数据集情况、类的常用参数及训练、预测函数的使用等。 一、简单线性回归与多元线性回归 1、简单线性回归 在生活中我们常常能碰到这么一种情况一个变量会跟着另一个变量的变化而变化如圆的周长与半径的关系当圆的半径确定了那么周长也就确定了。还有一种情况就是两个变量之间看似存在某种关系但又没那么确定如青少年的身高与体重他们存在一种近似的线性关系 身高/cm 体重/kg 105。         但是并不是每个青少年都符合这个公式只能说每个青少年的身高体重都存在这么一种近似的线性关系。这就是其实就是简单的线性回归那么到底什么是线性回归呢假如我们将青少年的身高和体重值作为坐标不同人的身高体重就会在平面上构成不同的坐标点然后用一条直线尽可能的去拟合这些点这就是简单的线性回归如下图 简单的线性回归模型 其中x表示特征值(如体重值)w表示权重b表示偏置y表示标签(如身高值)。 2、多元线性回归 简单线性回归中一个变量跟另一个变量的变化而变化但是生活中还有很多变量可能由多个变量的变化决定着它的变化比如房价影响它的因素可能有房屋面积、地理位置等等。如果我们要给它们建立出近似的线性关系这就是多元线性回归多元线性回归模型如下 其中表示第n个特征值表示第n个特征对应的权重b表示偏置y表示标签。 3、残差 定义 残差是指在回归分析中观测值与预测值之间的差异即其中是第个观测值是对应的预测值。残差均值就是所有残差的平均值即其中n是样本数量。在理想线性回归模型中的情况 在理想的线性回归模型基于普通最小二乘法估计参数中残差均值为零。这是因为普通最小二乘法的目标是最小化残差平方和。从几何角度看线性回归是在寻找一条直线在简单线性回归中或一个超平面在多元线性回归中使得数据点到该直线或超平面的垂直距离即残差的平方和最小。在这个最优拟合的情况下残差会在零附近分布正残差和负残差相互抵消导致残差均值为零。残差均值不为零的情况及意义 如果残差均值不为零这可能意味着模型存在偏差。例如如果残差均值大于零说明模型整体上低估了观测值如果残差均值小于零则说明模型整体上高估了观测值。这可能是由于模型设定不正确如遗漏了重要的变量、函数形式错误等或者数据存在异常情况如存在离群点等导致的。在实际应用中残差均值是评估模型拟合质量的一个简单指标发现残差均值不为零后需要进一步分析模型和数据以改进模型的拟合效果。 如果线性回归方程有多个解可以如何解决 解决方法包括但不限于 获取更多的训练样本选取样本有效的特征使样本数量大于特征数加入正则化项 二、线性回归的正规方程解 1、线性回归训练流程 以波士顿房价数据集为例该数据集每条数据包括对指定房屋的13项数值型特征和目标房价组成 由数据集可以知道每一个样本有13个特征与目标房价而我们要做的事就是通过这13个特征来预测房价我们可以构建一个多元线性回归模型来对房价进行预测。模型如下 其中表示第n个特征值表示第n个特征对应的权重b表示偏置y表示目标房价。 为了方便我们稍微将模型进行变换下面求解会用到 其中。令其中。 而我们的目的就是找出能够正确预测的多元线性回归模型即找出正确的参数。那么如何寻找呢通常在监督学习里面都会使用这么一个套路构造一个损失函数用来衡量真实值与预测值之间的差异然后将问题转化为最优化损失函数。既然损失函数是用来衡量真实值与预测值之间的差异那么很多人自然而然的想到了用所有真实值与预测值的差的绝对值来表示损失函数。不过带绝对值的函数不容易求导所以我们可以采用采用MSE(均方误差)作为损失函数相关内容可以查看另一篇文章机器学习 ---模型评估、选择与验证(1)公式如下 其中 表示第 i 个样本的真实标签 表示模型对第 i 个样本的预测标签m为样本总个数。最后我们再使用正规方程解来求得我们所需要的参数。线性回归模型训练流程如下 2、线性回归的正规方程解 1适用场景 在数据集规模较小且特征数量不是很多的情况下正规方程解是比较常用的对于其他方法比如梯度下降法等将在之后的文章中提到。例如当我们处理一些简单的实验数据或者小型的商业分析数据集时假设特征数量m较小比如m1000数据样本数量n也不大比如n10000。因为正规方程解的公式在这种情况下计算起来相对简单直接。它不需要像梯度下降法那样进行多次迭代来收敛到最优解只要能够计算矩阵的逆就可以一次性得到参数θ的最优解。例如在一个简单的房价预测模型中我们仅考虑房屋面积、房间数量这两个特征来预测房价。数据集包含 100 套房子的数据通过正规方程解可以快速得到线性回归模型的参数从而构建预测模型。 2正规方程解的公式 对线性回归模型假设训练集中m个训练样本每个训练样本中有n个特征可以使用矩阵的表示方法预测函数可以写为其损失函数可以表示为 其中标签Y为的矩阵训练特征X为的矩阵回归系数θ为的矩阵对θ求导并令其导数等于0可以得到。所以最优解为: 这个就是正规方程解我们可以通过最优方程解直接求得我们所需要的参数。 代码实现 import numpy as np def mse_score(y_predict,y_test):input:y_predict(ndarray):预测值y_test(ndarray):真实值ouput:mse(float):mse损失函数值mse np.mean((y_predict-y_test)**2)return mseclass LinearRegression :def __init__(self):初始化线性回归模型self.theta Nonedef fit_normal(self,train_data,train_label):input:train_data(ndarray):训练样本train_label(ndarray):训练标签# 在训练数据的特征矩阵前面添加一列全为1的列用于表示截距项X np.hstack((np.ones((train_data.shape[0], 1)), train_data))# 根据正规方程公式计算模型参数theta# 先计算X的转置与X的乘积的逆矩阵inverse_term np.linalg.inv(X.T.dot(X))# 再计算X的转置与训练标签的乘积product_term X.T.dot(train_label)# 最后将逆矩阵与上述乘积相乘得到模型参数thetaself.theta inverse_term.dot(product_term)return self.theta 三、衡量线性回归的性能指标 这部分在上面提到的另外一篇文章中有提到过感兴趣的话可以去看一看这里就不再过多赘述。 四、scikit-learn线性回归实践 - 波斯顿房价预测 1、数据集介绍 波斯顿房价数据集共有506条波斯顿房价的数据每条数据包括对指定房屋的13项数值型特征和目标房价组成。用数据集的80%作为训练集数据集的20%作为测试集训练集和测试集中都包括特征和目标房价。 数据集中部分数据与标签如下图所示 2、LinearRegression LinearRegression 是 scikit-learn 库通常简称为sklearn中用于实现线性回归算法的一个类。 LinearRegression的构造函数中有两个常用的参数可以设置 fit_intercept是否有截距如果没有则直线过原点默认为Ture。normalize是否将数据归一化,默认为False。 LinearRegression类中的fit函数用于训练模型fit函数有两个向量输入 X大小为[样本数量,特征数量]的ndarray存放训练样本。Y值为整型大小为[样本数量]的ndarray存放训练样本的标签值。 LinearRegression类中的predict函数用于预测返回预测值predict函数有一个向量输入 X大小为[样本数量,特征数量]的ndarray存放预测样本。 利用LinearRegression进行线性回归代码及相应的注释如下此处仅为一个简单的线性回归的示例 from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import pandas as pd from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 加载波士顿房价数据集 boston load_boston()# 将数据转换为DataFrame格式这里的特征数据 train_data pd.DataFrame(boston.data, columnsboston.feature_names)# 目标数据房价作为训练标签 train_label pd.Series(boston.target)# 划分训练集和测试集测试集占比可自行设置这里设为0.2即20% X_train, X_test, y_train, y_test train_test_split(train_data, train_label, test_size0.2, random_state42)# 创建线性回归模型对象 lr LinearRegression()# 模型训练 lr.fit(X_train, y_train)# 模型预测 pred lr.predict(X_test)# 将预测结果转换为DataFrame pred_df pd.DataFrame({result: pred})# 模型评估 mse mean_squared_error(y_test, pred) mae mean_absolute_error(y_test, pred) r2 r2_score(y_test, pred)print(\n模型评估指标) print(f均方误差MSE: {mse}) print(f平均绝对误差MAE: {mae}) print(f决定系数R²: {r2})
http://www.eeditor.cn/news/124721/

相关文章:

  • 易企网络网站建设互联网站备案手续
  • 大连网络建站模板网站平台延展性
  • 沈阳做网站开发公司网站设计开发维护
  • 网站搭建入门程序制作软件
  • 宁波北仑网站网页建设某公司的网站建设的资金预算书
  • 湖南常德广宇建设网站信誉好的宜昌网站建设
  • 西安网站建设价格旅游网站模板图片
  • 昆明建设银行纪念币预约网站国家建设工程信息网站
  • 网站手机版方案wordpress全部文件夹
  • 极路由4 做网站wordpress 汉化模版
  • 给人建设网站能赚钱吗网站后台不能粘贴文章
  • 免费的行情软件网站在线使用房屋设计公司网站
  • 来个网站吧好人一生平安2021建设手机网站多少钱
  • 做网站需要多少钱知乎遵义网站制作一般多少钱
  • wordpress 文章同步微信常州百度网站排名优化
  • 如何在网站上做抽奖系统国内免费视频素材无水印素材网站
  • 惠州品牌网站建设公司哪里有网站建设中代码
  • 铁岭网站制作nginx wordpress出错
  • 让医院做网站的策划书asp网站管理系统破解版
  • 网站优化怎么做外链郑州做网站hnqfu
  • 无锡做网站设计的企业购买手机网站推荐
  • 免费APP 微信 网站平台阿里巴巴网站开发
  • 网站响应式和电脑手机php订餐网站开发文献
  • 莱芜网站制作公司明星 卡片网站该怎么做
  • 手机推广软文seo推广优化的方法
  • 濮阳做网站设计wordpress 在裁剪您的图像时发生了错误.
  • 大连住建局官网网站福州网站建设设计公司
  • 安卓做视频网站凡科网可以自己做网站吗
  • 什么网站能买建设摩托车贵阳住房和城乡建设局网站
  • 免费英文建设网站怎样申请网站域名