机器学习-《线性回归》

讲解

1.最小二乘法讲解 Least squares

最小二乘法是为了减少损失,而不是用来确定预测是否准确的啊

我们通过下面的例子来分析最小二乘法的应用

  1. 模拟的数据
    图片说明

  2. 通过python画出来的图像

    import pandas as pd
    data = pd.read_excel("C:/Users/cznczai/Desktop/test.xlsx")
    x = data["日均人流量(千人)"].values.reshape(-1,1)  #对数据进行格式修改
    y = data["日均销售收入(千元)"].values.reshape(-1,1)
    
    import matplotlib.pyplot as plt # 作图
    plt.rcParams['font.sans-serif']='SimHei'  
    plt.scatter(x,y)
    plt.xlabel("日均人流量(千人)")
    plt.ylabel("日均销售收入(千元)")
    plt.plot(x,x*15+5)
  3. 求解线性回归方法一 点跟目标直线做垂直线 求解垂直距离 【不推荐 计算极其复杂】
    图片说明

  4. 求解线性回归方法二 点做垂直与x轴相交于目标直线于一点p,求p到点的距离 点点距离,x不变y相减
    图片说明

  5. 在求解过程中使用最小二乘法
    步骤如下:

    平方的意义就是将一次转化为二次,将所有的点相加后我们就可以用一元二次来求最小值,从而得到曲线的斜率
    正如:ax+c = y ==> a^2 * x^2 + 2axc = y^2
    图片说明

  6. 代码

    from sklearn import linear_model
    reg = linear_model.LinearRegression()
    model = reg.fit(x,y)
    c = model.intercept_  #y轴截距
    k = model.coef_  # w 是一个列表
    plt.plot(x,k*x+c)
  7. 预测效果
    图片说明

我们预测后的结果只能说是两个因素存在相关性,而不能说两者是决定性关系

  1. 我们可以通过sklearn库来生成一些数据
    from sklearn import datasets
    import matplotlib.pyplot as plt
    import numpy as np
    x,y = datasets.make_regression(n_samples=250,n_features=1,noise=15,random_state=0,bias=5)
    plt.scatter(x,y,alpha=0.5)
    plt.show()
  1. 对预测模型进行评价

    from sklearn.metrics import mean_squared_error,r2_score
    prediction = model.predict(x) 
    
    #MSE的值
    MSE = mean_squared_error(y,prediction)
    print('mse: ',MSE)
    
    #RMSE
    RMSE = np.sqrt(MSE)
    print('rmse: ',RMSE)
    
    #r2
    r2 = r2_score(y,prediction)
    print('r2: ',r2)`

    图片说明

2.白板推导 参考资料中的视频

  • 推导并插入注解
    w表示每个属性对y值的贡献度
    图片说明
    图片说明

  • 举例运用
    图片说明

3. 注意事项

  • 数据取值需要注意的地方, 例如房价,可以加一个固定值的属性,这样可以避免房价为0。(市区 楼层 ... 固定值)

4. 训练时交叉验证

按照线性模型我们都将所有数据都拿出来拟合了,但是这种做法在针对其他模型的拟合时,效果不是很好。

交叉验证就是在所有已知数据中,我们拿出一部分来调参拟合,另一部分数据用来测试拟合效果是否合适。
大部分都是7.5:2.5划分

多项式拟合

1. 泰勒公式

  • 拟合函数与目标函数各阶导数都是同一个
    用多项式近似代替其他函数
    图片说明

资料

  1. 机器学习第一部分
  2. pandas中文网
  3. 思维导图-Pandas
  4. 白板推导系列(三)-线性回归
  5. 线性模型总结
  6. 妈咪说讲解泰勒
  7. 妈咪说泰勒序级--拉格朗日
Python与机器学习之路 文章被收录于专栏

记录自己所学到的Python学习笔记

全部评论

相关推荐

点赞 评论 收藏
分享
小谷围鸡肉卷阿姨:+1,腾子投完一动不动
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务