监督学习7-回归模型-线性回归器(Linear Regression)

本文探讨了线性回归在回归问题中的应用,解释了模型的目标是最小化预测值与真实值的差异,并通过美国波士顿地区房价预测举例说明编程实践。性能测评中,介绍了MAE、MSE和R-squared等评价指标来衡量模型的预测能力。

回归问题和分类问题的区别在于,其待测目标是连续变量,比如:价格、降水量等等。

模型介绍

线性分类器为了便于将原本在实数域上的结果映射到(0,1)区间,引入了逻辑斯蒂函数。而在线性回归问题中,由于预测目标直接是实数域上的数值,因此优化目标就更为简单,即最小化预测结果与真实值之间的差异。

当使用一组mmm个用于训练的特征向量X=&lt;x1,x2,⋅⋅⋅xm&gt;X=&lt;x^1,x^2,···x^m&gt;X=<x1,x2,xm>和其对应的回归目标y=&lt;y1,y2,⋅⋅⋅ym&gt;y=&lt;y^1,y^2,···y^m&gt;y=<y1,y2,ym>时,我们希望线性回归模型可以最小二乘(Generalized Least Squares)预测的损失L(w,b)L(w,b)L(w,b),这样一来,线性回归器的常见优化目标如式(13)所示。
argmin⁡w,bL(w,b)=argmin⁡w,b∑mk−1(f(w,x,b)−yk)2(13) \underset{w, b}{\operatorname{argmin}} L(w, b)=\underset{w, b}{\operatorname{argmin}} \sum_{m}^{k-1}\left(f(w, x, b)-y^{k}\right)^{2} \qquad (13) w,bargminL(w,b)=w,bargminmk1(f(w,x,b)yk)2(13)
同样,为了学习到决定模型的参数,即系数www和截距bbb,仍然可以使用一种精确计算的解析算法和一种快速的随机梯度下降估算方法(Stochastic Gradient Descend)

编程实践

美国波士顿地区房价预测

# 从sklearn.datasets导入波士顿房价数据读取器。
from sklearn.datasets import load_boston
# 从读取房价数据存储在变量boston中。
boston = load_boston()
# 输出数据描述。
print boston.DESCR

Boston House Prices dataset

Notes
------
Data Set Characteristics:  

    :Number of Instances: 506 

    :Number of Attributes: 13 numeric/categorical predictive
    
    :Median Value (attribute 14) is usually the target

    :Attribute Information (in order):
        - CRIM     per capita crime rate by town
        - ZN       proportion of residential land zoned for lots over 25,000 sq.ft.
        - INDUS    proportion of non-retail business acres per town
        - CHAS     Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)
        - NOX      nitric oxides concentration (parts per 10 million)
        - RM       average number of rooms per dwelling
        - AGE      proportion of owner-occupied units built prior to 1940
        - DIS      weighted distances to five Boston employment centres
        - RAD      index of accessibility to radial highways
        - TAX      full-value property-tax rate per $10,000
        - PTRATIO  pupil-teacher ratio by town
        - B        1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town
        - LSTAT    % lower status of the population
        - MEDV     Median value of owner-occupied homes in $1000's

    :Missing Attribute Values: None

    :Creator: Harrison, D. and Rubinfeld, D.L.

This is a copy of UCI ML housing dataset.
http://archive.ics.uci.edu/ml/datasets/Housing


This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.

The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic
prices and the demand for clean air', J. Environ. Economics & Management,
vol.5, 81-102, 1978.   Used in Belsley, Kuh & Welsch, 'Regression diagnostics
...', Wiley, 1980.   N.B. Various transformations are used in the table on
pages 244-261 of the latter.

The Boston house-price data has been used in many machine learning papers that address regression
problems.   
     
**References**

   - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.
   - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.
   - many more! (see http://archive.ics.uci.edu/ml/datasets/Housing)

# 从sklearn.cross_validation导入数据分割器。
from sklearn.cross_validation import train_test_split

# 导入numpy并重命名为np。
import numpy as np

X = boston.data
y = boston.target

# 随机采样25%的数据构建测试样本,其余作为训练样本。
X_train, X_test, y_train, y_test = train_test_split(X, y
<think>首先,用户的问题是关于机学习中的线性回归模型。用户问:“ml-regression-simple-linear是否能处理多元线性回归系数?” 用户指的是一个特定的模型或库,叫做“ml-regression-simple-linear”,但从上下文看,这可能是一个误解或打字错误。 回顾引用: - 引用[1]:讨论多元线性回归(multivariable linear regression)。 - 引用[2]:提到简单线性回归(Simple Linear Regression)和性能指标如R-squared。 - 引用[3]:也讨论多元线性回归,包括特征选择和多项式回归。 用户的问题中提到了“ml-regression-simple-linear”,这听起来像是来自scikit-learn库中的一个类。在scikit-learn中,线性回归模型是通过`sklearn.linear_model.LinearRegression`实现的,这个模型可以处理多元线性回归。 具体来说: - 简单线性回归(simple linear regression)处理一个自变量(特征)和一个因变量。 - 多元线性回归(multiple linear regression)处理多个自变量和一个因变量。 在scikit-learn中,`LinearRegression`类可以处理多个特征,因此它支持多元线性回归。用户提到的“ml-regression-simple-linear”可能是一个误解;或许用户指的是`sklearn.linear_model.LinearRegression`,或者是一个特定的函数。 从引用[2]中,我们看到代码使用了`from sklearn.metrics import r2_score`和`regressor.predict(X_test)`,这表明使用了scikit-learn的回归模型。 所以,关键点是:scikit-learn的LinearRegression模型可以处理多元线性回归系数。 现在,基于系统指令: - 我必须使用中文回答。 - 行内数学表达式用$...$,例如 $y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \epsilon$。 - 独立公式用$$...$$,单独成段。 - LaTeX语法正确。 - 生成相关问题。 - 引用末尾添加引用标识。 - 回答结构清晰,逐步解决问题。 组织回答: 1. **澄清问题**:解释“ml-regression-simple-linear”可能指的是scikit-learn的LinearRegression模型。 2. **直接回答**:是的,它可以处理多元线性回归系数。 3. **解释原因**:描述多元线性回归模型和LinearRegression的实现。 4. **提供数学背景**:使用数学表达式展示多元线性回归公式。 5. **引用支持**:基于提供的引用,引用[1]和[3]讨论了多元线性回归。 6. **生成相关问题**:在末尾添加相关问题。 回答结构: - 开头:直接回答问题。 - 主体:解释多元线性回归模型,使用数学公式。 - 结尾:确认模型能力。 - 然后:添加相关问题。 确保LaTeX正确: - 行内:$y = \beta_0 + \beta_1 x_1 + \beta_2 x_2$ - 独立: $$ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \epsilon $$ 生成相关问题:基于主题,如: - 多元线性回归的假设是什么? - 如何解释多元线性回归的系数? - scikit-learn中如何使用LinearRegression模型? 引用末尾添加标识:[^1], [^2], [^3] 基于引用内容。 最后,确认回答可靠:基于标准机学习知识。 </think>基于您的查询和提供的引用,我将逐步解释“ml-regression-simple-linear”是否能处理多元线性回归系数。首先澄清关键概念: - **简单线性回归(Simple Linear Regression)**:处理一个自变量(特征)和一个因变量,模型形式为 $y = \beta_0 + \beta_1 x$,其中 $\beta_0$ 是截距,$\beta_1$ 是斜率系数。 - **多元线性回归(Multivariable Linear Regression)**:处理多个自变量(特征)和一个因变量,模型形式为: $$ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_n x_n + \epsilon $$ 其中 $\beta_0, \beta_1, \ldots, \beta_n$ 是回归系数,$\epsilon$ 是误差项[^1][^3]。 ### 回答您的核心问题 **是的,“ml-regression-simple-linear”通常可以处理多元线性回归系数。** 具体说明如下: 1. **模型名称澄清**: - “ml-regression-simple-linear”听起来像是指 scikit-learn(Python 机学习库)中的 `LinearRegression` 类(通常在代码中导入为 `from sklearn.linear_model import LinearRegression`)。 - 虽然名称包含 “simple”,但 scikit-learn 的实现支持多元回归。在训练时,如果输入特征矩阵 $X$ 有多个列(即多个特征),模型会自动估计多元回归系数 $\beta_0, \beta_1, \ldots, \beta_n$[^2][^3]。 2. **技术细节**: - scikit-learn 的 `LinearRegression` 使用梯度下降或正规方程(normal equation)求解多元系数,目标是最小化代价函数(cost function): $$ J(\beta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\beta(x^{(i)}) - y^{(i)})^2 $$ 其中 $m$ 是样本数,$h_\beta(x)$ 是假设函数,对应多元模型[^1]。 - 在代码中(如引用[2]所示),当使用 `regressor.predict(X_test)` 时,`X_test` 可以包含多个特征列,模型会输出基于多元系数的预测值。 3. **验证示例**: - 假设您有数据集包含两个特征 $x_1$ 和 $x_2$,模型训练后会返回系数 $\beta_0$(截距)、$\beta_1$(对应 $x_1$)、$\beta_2$(对应 $x_2$)。 - 在 scikit-learn 中,系数可通过 `model.coef_` 属性获取,例如: ```python from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(X_train, y_train) # X_train 有多个特征列 print(model.coef_) # 输出多元系数数组,例如 [β1, β2, ...] ``` 这证明它能处理多元场景[^2][^3]。 4. **限制与注意**: - 如果模型名称严格指代“一元线性回归”(只一个特征),则不能处理多元系数。但在实践中,库的实现通常是通用的。 - 多元回归需满足假设(如线性、独立同分布误差),否则系数估计可能不准确[^1][^3]。 总之,基于 scikit-learn 的标准实现,“ml-regression-simple-linear” 能有效处理多元线性回归系数。更多细节可参考官方文档或引用资源[^1][^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值