线性回归实例

本文详细介绍了线性回归和逻辑回归的区别,以及在波士顿房价预测案例中的应用,包括数据预处理、模型训练和性能评估。结果显示,线性回归在R-squared指标上稍优,但逻辑回归适用于分类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、线性回归(linear Regression)和逻辑回归(logistic Regression)的区别

线性回归主要是用来拟合数据,逻辑回归主要是用来区分数据,找到决策边界。

线性回归的代价函数常用平方误差函数,逻辑回归的代价函数常用交叉熵。

参数优化的方法都是常用梯度下降。

eg:

现有一组面积和房价的数据,现在有个朋友要卖房子,120平方米,大概能卖多少钱?

就可以通过这组数据建立一个线性模型,然后用这组数据去拟合模型,拟合完毕后,输入120,它就会告诉你朋友能卖多少钱。

补充:(这是一个监督学习,且是回归问题,回归问题指的是预测一个具体的数据输出,即房价)

补充2:(监督学习中还有一种分类问题,用来预测离散值输出,如观察肿瘤大小,来判断是良性合适恶性,输出只有两种:【0】良性,【1】恶性)

逻辑回归也被称为对数几率回归,实际上是用线性回归解决分类问题的分类模型(在线性回归的基础上,加了一层sigmoid函数,将线性函数变为非线性函数),sigmoid函数的形状呈‘S’形,它能将任意实数映射到0~1之间的某个概率值上;

线性回归一般用于数据预测,预测结果一般为实数;

逻辑回归一般用户分类预测,预测结果一般为某类可能的概率。

2、波士顿房价线性回归案例:
1)获取数据集:

在sklearn1.2版本之前,可用from sklearn.datasets import load_boston # 从读取房价数据存储在变量 boston 中。 boston = load_boston()

在sklearn1.2版本之后,因为某些原因移除了该数据集,

可用如下代码实现:

#导入波士顿房价,自版本1.2之后移除了该数据集,可以通过如下方法获取
from sklearn.datasets import fetch_openml
data_x,data_y=fetch_openml(name='boston',version=1,as_frame=True,return_X_y=True,parser='pandas')

如果出现证书报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certi,可以加入如下代码:

#全局取消证书验证,使用fetch_opneml下载数据时候避免报错
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2)划分训练集测试集:
#随机采样25%的数据构建测试样本,其余作为训练样本
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(data_x,data_y,random_state=33,test_size=0.25)
#分析回归目标值的差异:
print(np.max(data_y),np.min(data_y),np.mean(data_y))
3)数据标准化:
#先导入数据标准化模块
from sklearn.preprocessing impo
线性回归是一种常用的统计方法,用于分析两个或多个变量之间的关系。在MATLAB中,可以使用内置函数来进行线性回归分析。以下是一个简单的线性回归实例: 1. **生成示例数据**: 首先,我们生成一些示例数据,这些数据符合线性关系 \( y = 2x + 1 \),并添加一些噪声。 ```matlab % 生成示例数据 x = 1:10; y = 2 * x + 1 + randn(1, 10) * 2; % 添加噪声 ``` 2. **绘制数据**: 使用 `scatter` 函数绘制散点图,以便直观地观察数据分布。 ```matlab % 绘制散点图 scatter(x, y, 'filled'); hold on; ``` 3. **进行线性回归**: 使用 `polyfit` 函数进行线性回归,得到回归系数。 ```matlab % 进行线性回归 p = polyfit(x, y, 1); % 1表示线性回归 ``` 4. **绘制回归直线**: 使用 `polyval` 函数根据回归系数计算拟合值,并绘制回归直线。 ```matlab % 计算拟合值 y_fit = polyval(p, x); % 绘制回归直线 plot(x, y_fit, 'r-', 'LineWidth', 2); hold off; % 添加图例和标签 legend('数据点', '回归直线'); xlabel('x'); ylabel('y'); title('线性回归实例'); ``` 5. **显示回归结果**: 显示回归系数和回归方程。 ```matlab % 显示回归结果 fprintf('回归方程: y = %.2fx + %.2f\n', p(1), p(2)); ``` 完整的代码如下: ```matlab % 生成示例数据 x = 1:10; y = 2 * x + 1 + randn(1, 10) * 2; % 添加噪声 % 绘制散点图 scatter(x, y, 'filled'); hold on; % 进行线性回归 p = polyfit(x, y, 1); % 1表示线性回归 % 计算拟合值 y_fit = polyval(p, x); % 绘制回归直线 plot(x, y_fit, 'r-', 'LineWidth', 2); hold off; % 添加图例和标签 legend('数据点', '回归直线'); xlabel('x'); ylabel('y'); title('线性回归实例'); % 显示回归结果 fprintf('回归方程: y = %.2fx + %.2f\n', p(1), p(2)); ``` 通过上述步骤,我们可以在MATLAB中实现线性回归,并绘制出回归直线来拟合数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值