线性回归学习笔记

分类:分类(Classification): Y变量为类别型(categorical variable)。如:颜色类别,电脑品牌,有无信誉

回归:回归(regression) Y变量为连续数值型(continuous numerical variable)。如:房价,人数,降雨量

一、简单线性回归模型

1.1简单线性回归模型:

y = β0+β1x +ε  (β0、β1为参数,ε为偏差)>>>>左右求期望值,其中ε偏差为随机变量,均值为0

>>>>得到简单线性回归方程:E(y) = β0+β1x

 

1.2估计的简单线性回归方程

   ŷ=b0+b1x>>>>>b0和b1是β0和β1的估计值

偏差满足:1.随机变量,均值为0 ;2. ε的方差(variance)对于所有的自变量x是一样的; 3. ε的值是独立的 ;4. ε满足正态分布

 

2.1.如何练处适合简单线性回归模型的最佳回归线?

如何练处适合简单线性回归模型的最佳回归线?

使sum of squares最小

2.2.计算

例子:x:1、3、2、1、3       均值为2

          y:14、24、18、17、27    均值为20

 

得到b1 = 20/4  =5   b0 = 20 - 5*2 = 20 - 10 = 10

 

得到估计的简单线性回归方程  ŷ=b0+b1x=10+5x

2.3. python实现:

 

import numpy as np


def fitslr(x, y):

    n = len(x)
    dinominator = 0;
    numerator = 0

    for i in range(0, n):
        numerator += (x[i] - np.mean(x))* (y[i]  - np.mean(y))
        dinominator += (x[i] - np.mean(x))**2

    print("numrator = %.2f" % numerator)
    print("dimominator = %.2f" % dinominator)
    b1 = numerator / (dinominator)
    b0 = np.mean(y) - b1 * np.mean(x)

    return b0, b1

def predict(x, b0, b1):
    return b0 + x * b1


x = [1, 3, 2, 1, 3]
y = [14, 24, 18, 17, 27]

b0, b1 = fitslr(x, y)

print("intercept =:%.2f slope =: %.2f" %(b0, b1))

x_test = 6
y_test = predict(x_test, b0, b1)
print("y_test:%.2f" % y_test)

 

二、多元线性回归模型(MultipleRegression)

 

1. 多元回归模型
     y=β0+β1*x1+β2*x2+ ... +βp*xp+ε
    其中:β0,β1,β2... βp是参数,ε是误差值

2. 多元回归方程
     E(y)=β0+β1x1+β2x2+ ... +βpxp

3. 估计多元回归方程:
     y_hat=b0+b1*x1+b2*x2+ ... +bp*xp
    一个样本被用来计算β0,β1,β2... βp的点估计b0, b1, b2,..., bp

4. 估计方法

    使sum of squares最小   

 

 

Time = b0+ b1*Miles + b2 * Deliveries

5. Python代码:

from numpy import genfromtxt
import numpy as np
from sklearn import datasets, linear_model

dataPath = r"...\Delivery.csv"
deliveryData = genfromtxt(dataPath, delimiter=',')   # 将以逗号为分隔符的文本文件中导入数据,转化成numpyarray的格式

# print("data\n",deliveryData)

X = deliveryData[:, :-1]        # 前两列
Y = deliveryData[:,2 ]          # 第三列

print("X\n", X)
print("Y\n", Y)

regr = linear_model.LinearRegression()  # 调用sklearn的LinearRegression方法

regr.fit(X, Y)          # 用.fit方法建立模型

print("coefficients: ", regr.coef_)         # b1 b2的估计值
print("intercept: ", regr.intercept_)       # 截距b0的估计值

xPredict = [[102, 6]]

yPredict = regr.predict(xPredict)

print("predicted: ", yPredict)


得到:

coefficients:  [0.0611346  0.92342537]
intercept:  -0.868701466781709
predicted:  [10.90757981]

Time = -0.869 + 0.0611 Miles + 0.923 Deliveries

6. 描述参数含义
     b0: 平均每多运送一英里,运输时间延长0.0611 小时
     b1: 平均每多一次运输,运输时间延长 0.923 小时

     Time = -0.869 +0.0611 *102+ 0.923 * 6
              = 10.9 (小时)

 

7. 误差ε

 误差ε是一个随机变量,均值为0,ε的方差对于所有的自变量来说相等,所有ε的值是独立的,ε满足正态分布,并且通过β0+β1x1+β2x2+ ... +βpxp反映y的期望值。

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习线性回归是一种常见的机器学习算法,用于预测数值型变量的值。下面是一个简单的回归例子,以展示如何使用这个算法。 首先,我们需要准备数据集。假设我们有一个房屋价格的数据集,其中包含了房屋的大小和房价。我们可以使用这个数据集来训练一个线性回归模型,以便预测房价。 在介绍算法之前,我们需要导入必要的库,如numpy和pandas。这些库将帮助我们处理和分析数据。 接下来,我们加载数据集并进行必要的数据清洗。这可能包括去除缺失值、处理异常值等。 然后,我们将数据集分为训练集和测试集。训练集将用于训练模型,而测试集将用于评估模型的性能。 在进行机器学习之前,我们需要对数据进行特征缩放。这可以确保所有特征都具有相同的重要性。 接下来,我们将使用线性回归算法来拟合我们的训练数据。这将生成一个线性模型,该模型可以用于预测房价。 我们可以使用模型的系数和截距来了解每个特征对预测的影响。系数的正负表示了特征影响的方向,而系数的绝对值表示了特征的重要性。 最后,我们可以使用测试集来评估模型的性能。我们可以使用一些常见的性能指标,如均方误差和决定系数来评估我们的模型。 总结一下,这个机器学习线性回归的例子笔记本演示了如何使用线性回归算法来预测房价。它涵盖了数据准备、模型训练、模型评估等步骤,以及一些常用的数据处理和模型评估技术。通过这个例子,我们可以更好地理解和应用机器学习线性回归算法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值