• 吴恩达机器学习 第一课 week2 基于Scikit-Learn的线性回归


    目录

    01 学习目标

    02 实现工具

    03 概念

    04 应用示例

    05 总结


    01 学习目标

           掌握基于Scikit-Learn建立线性回归模型

    02 实现工具

       (1)代码运行环境

                  Python语言,Jupyter notebook平台

       (2)所需模块

                 numpy,matplotlib,lab_utils_multi,sklearn

    03 概念

         (1)解析解&数值解

             数值解是近似解,是通过数值计算方法(如迭代法、逼近法等)来逼近问题的解。 

             解析解是精确解,是根据严格的公式推导,给出任意的自变量就可以求出其因变量的解。

         (2)封闭解

             封闭解是一种特殊的解析解。

             解析解适用于可以通过微积分技巧(如分离变量法)求解的方程。

             封闭解适用于一些简单的方程,这些方程可以通过基本的代数运算直接求解。

         (3)梯度下降法&Scikit-Learn

             基于梯度下降法的回归模型,其参数为近似解。

             基于Scikit-Learn的回归模型,其参数为精确解。

    04 应用示例

           以前文中基于多特征建立房价模型的问题为例,原始数据如下:

           本文采用Scikit-Learn建立线性回归模型,并对刘先生的房子(1200平方英尺、3个卧室、1层、40年房龄)进行估价。

         (1)导入所需模块

    1. import numpy as np
    2. np.set_printoptions(precision=2)
    3. from sklearn.linear_model import LinearRegression, SGDRegressor
    4. from sklearn.preprocessing import StandardScaler
    5. from lab_utils_multi import load_house_data
    6. import matplotlib.pyplot as plt
    7. dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0';
    8. plt.style.use('./deeplearning.mplstyle')

         (2)读取二手房交易数据

    1. # load the dataset
    2. X_train, y_train = load_house_data()
    3. X_features = ['size(sqft)','bedrooms','floors','age']

         (3)创建linear_model类,用于线性回归

    1. linear_model = LinearRegression()
    2. linear_model.fit(X_train, y_train)

         (4)计算模型参数

    1. b = linear_model.intercept_
    2. w = linear_model.coef_
    3. print(f"w = {w:}, b = {b:0.2f}")

           运行以上代码,结果如下:

           w = [0.27 -32.62 -67.25 -1.47], b = 220.42

          (5)房价预测

    1. x_house = np.array([1200, 3,1, 40]).reshape(-1,4)
    2. x_house_predict = linear_model.predict(x_house)[0]
    3. print(f" 刘先生的房子为1200平方英尺、3个卧室、1层、40年房龄,预计可售价为: ${x_house_predict*1000:0.2f}")

            运行以上代码,结果如下:

           刘先生的房子为1200平方英尺、3个卧室、1层、40年房龄,预计可售价为: $318709.09

    05 总结

         (1)基于Scikit-learn建立线性回归模型不需要对特征进行归一化处理。

         (2)Scikit-learn方法计算的模型参数为精确解,不需迭代,计算速度更快。

  • 相关阅读:
    git命令合并某一个分支的某个commit到目标分支
    数据湖存储在大模型中的应用
    R语言深度学习-4-识别异常数据(无监督学习/自动编码器)
    linux-文件权限
    Java优先队列PriorityQueue中的方法和使用细节总结
    西安某1000M3浮顶油罐设计(成品油库1000m³油罐设计与制造工艺)
    正则表达式
    现代循环神经网络 - LSTM
    day10每日3题(3):数组中的字符串匹配
    卡片布局以及鼠标悬浮展示全部
  • 原文地址:https://blog.csdn.net/weixin_43490087/article/details/139393901