为了账号安全,请及时绑定邮箱和手机立即绑定

Python实现线性回归

难度初级
时长 1小时 5分
学习人数
综合评分8.77
32人评价 查看评价
9.0 内容实用
8.8 简洁易懂
8.5 逻辑清晰
  • 梯度下降的原理

    查看全部
    0 采集 收起 来源:梯度下降

    2018-07-25

  • 梯度下降的直接计算

    查看全部
    0 采集 收起 来源:梯度下降

    2018-07-25

  • 最小二乘法模型

    查看全部
    0 采集 收起 来源:最小二乘法

    2018-07-25

  • 线性回归的数学表示

    查看全部
  • 实际的意义

    查看全部
    0 采集 收起 来源:课程背景

    2018-07-25

  • 技术的背景

    查看全部
    0 采集 收起 来源:课程背景

    2018-07-25

  • 线性回归的课程安排

    查看全部
    0 采集 收起 来源:课程安排

    2018-07-25

  • 同步更新

    for i in range(10000):

        temp[0]=theta[0] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        temp[1]=theta[1] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        temp[2]=theta[2] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        temp[3]=theta[3] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        theta=temp


    查看全部
    0 采集 收起 来源:回归分析实战

    2018-07-24

  • 梯度下降方法(第二种代码)可以很好地解决向量方法(第一种)面对大量计算无法计算的弊端

    而梯度下降更重要的是进行同步更新

    所以需要一个temp来进行缓存

    注意矩阵的形式可能需要变形——

                            reshape( )(如果出错,改成values.reshape( ))


    查看全部
    1 采集 收起 来源:课程总结

    2018-07-24

  • import numpy as np

    from numpy.linalg import inv

    from numpy import dot

    from numpy import mat

    import pandas as pd;


    dataset = pd.read_csv('data.csv')

    #print(dataset)


    temp = dataset.iloc[:,2:5]

    temp['X0']=1    #截距

    X=temp.iloc[:,[3,0,1,2]]    #读取temp的第3,0,1,2列

    #print(X)

    #iloc[m,n]  m-行  n-列

    Y=dataset.iloc[:,1].values.reshape(150,1)

    #print(Y)


    theta = dot(dot(inv(dot(X.T,X)),X.T),Y)

    print(theta)


    theta=np.array([1.,1.,1.,1.]).reshape(4,1)

    alpha=0.1   #学习速率

    X0=X.iloc[:,0].values.reshape(150,1)

    X1=X.iloc[:,1].values.reshape(150,1)

    X2=X.iloc[:,2].values.reshape(150,1)

    X3=X.iloc[:,3].values.reshape(150,1)

    for i in range(10000):

        temp[0]=theta[0] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        temp[1]=theta[1] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        temp[2]=theta[2] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        temp[3]=theta[3] + alpha*np.sum((Y-dot(X,theta))*X0)/150.0

        theta=temp

    print(theta)


    查看全部
    0 采集 收起 来源:回归分析实战

    2018-07-24

  • temp=dataset.iloc[:,2:5]

    读取数据方法——定义了一个函数 iloc()

    temp = dataset.iloc[:,2:5]

    把X读出来

    temp['x0']=1

    偏移

    X=temp.iloc[:,[3,0,1,2]]

    显示顺序  第3列  第0列  第1列  第2列


    查看全部
    0 采集 收起 来源:回归分析实战

    2018-07-24

  • inv 逆

    dot 点乘

    mat 矩阵

    array 数组

    .T  转置

    查看全部
  • 生成‘data.csv’文件的python代码

    import random

    def Y(X1, X2, X3):

     return 0.65 * X1 + 0.70 * X2 - 0.55 * X3 + 1.95

    def Produce():

     filename = 'data.csv'

     with open(filename, 'w') as file:

      file.write('X1,X2,X3,Y\n')

      for i in range(200):

       random.seed()

       x1 = random.random() * 10

       x2 = random.random() * 10

       x3 = random.random() * 10

       y = Y(x1, x2, x3)

       try:

        file.write(str(x1) + ',' + str(x2) + ',' + str(x3) + ',' + str(y) + '\n')

       except Exception as e:

        print ('Write Error')

        print (str(e))

     

    Produce()


    查看全部
    0 采集 收起 来源:回归分析实战

    2018-07-23

  • 在命令行行python文件

    》》》python "D:\Python\demo03.py"

    查看全部
    0 采集 收起 来源:回归分析实战

    2018-07-23

  • >>> import numpy as np

    >>> from numpy.linalg import inv

    >>> from numpy import dot

    >>> from numpy import mat

    >>> import pandas as pd

    >>> dataset=pd.read_csv('data.csv')

    >>> print(dataset)


    查看全部
    0 采集 收起 来源:回归分析实战

    2018-07-23

举报

0/150
提交
取消
课程须知
1、有机器学习基础 2、有一定的python基础
老师告诉你能学到什么?
1、线性回归的概念 2、最小二乘法的python实现 3、梯度下降的python实际 4、编程处理线性回归分析的一般方法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!