• 机器学习 线性回归:正规方程与梯度下降


     正规方程:

    1. import pandas as pd
    2. import numpy as np
    3. from sklearn.datasets import load_diabetes#导入数据集
    4. from sklearn.model_selection import train_test_split #划分数据集
    5. # sklearn.model_selection.train_test_split 是 scikit-learn 中的一个函数,
    6. # 用于将数据集划分为训练集和测试集。
    7. # 使用 train_test_split 函数可以将原始数据集划分为训练集和测试集,
    8. # 以便进行模型的训练和评估。
    9. from sklearn.preprocessing import StandardScaler#标准化处理
    10. from sklearn.linear_model import LinearRegression#预估器
    11. from sklearn.metrics import mean_squared_error#模型评估:均方误差
    12. # 正规方程的优化方法对数据进行预测
    13. # 1)获取数据
    14. # boston=pd.read_csv('house_data.csv')
    15. diab=load_diabetes()
    16. # 2)划分数据集
    17. # x=boston.drop('target',axis=1)
    18. # y=boston['target']
    19. x_train,x_test,y_train,y_test=train_test_split(diab.data,diab.target,random_state=22)
    20. # print('标准化前',x_train)
    21. # 3)标准化
    22. transfer=StandardScaler()
    23. x_train=transfer.fit_transform(x_train)
    24. x_test=transfer.transform(x_test)
    25. # print('标准化后',x_train)
    26. # 4)预估器
    27. estimatar=LinearRegression()
    28. estimatar.fit(x_train,y_train)
    29. # 5)得出模型
    30. print('正规方程权重系数为:',estimatar.coef_)
    31. print('正规方程偏置为:',estimatar.intercept_)
    32. # 6)模型评估
    33. y_predict=estimatar.predict(x_test)
    34. print('预测值',y_predict)
    35. error=mean_squared_error(y_test,y_predict)
    36. print('正规方程的均方误差:',error)

     梯度下降:

    1. import pandas as pd
    2. import numpy as np
    3. from sklearn.datasets import load_diabetes#导入波士顿房价数据集
    4. from sklearn.model_selection import train_test_split #划分数据集
    5. # sklearn.model_selection.train_test_split 是 scikit-learn 中的一个函数,
    6. # 用于将数据集划分为训练集和测试集。
    7. # 使用 train_test_split 函数可以将原始数据集划分为训练集和测试集,
    8. # 以便进行模型的训练和评估。
    9. from sklearn.preprocessing import StandardScaler
    10. from sklearn.linear_model import LinearRegression,SGDRegressor
    11. from sklearn.metrics import mean_squared_error
    12. # 梯度下降的优化方法对数据进行预测
    13. # 1)获取数据
    14. # boston=pd.read_csv('house_data.csv')
    15. diab=load_diabetes()
    16. # 2)划分数据集
    17. # x=boston.drop('target',axis=1)
    18. # y=boston['target']
    19. x_train,x_test,y_train,y_test=train_test_split(diab.data,diab.target,random_state=22)
    20. # print('标准化前',x_train)
    21. # 3)标准化
    22. transfer=StandardScaler()
    23. x_train=transfer.fit_transform(x_train)
    24. x_test=transfer.transform(x_test)
    25. # print('标准化后',x_train)
    26. # 4)预估器
    27. estimatar=SGDRegressor()
    28. estimatar.fit(x_train,y_train)
    29. # 5)得出模型
    30. print('梯度下降权重系数为:',estimatar.coef_)
    31. print('梯度下降偏置为:',estimatar.intercept_)
    32. # 6)模型评估
    33. y_predict=estimatar.predict(x_test)
    34. print('预测值',y_predict)
    35. error=mean_squared_error(y_test,y_predict)
    36. print('梯度下降的均方误差:',error)

  • 相关阅读:
    cadence SPB17.4 S032 - 使用room来放置元件
    mybatis与spring集成和分页插件应用
    Leetcode 23.旋转排序数组
    四种Python逐行读取文件内容的方法
    Open3D 网格体素化(C++版本)
    KeeWiDB的高性能修炼之路:架构篇
    读书笔记:软件工程(11) - 传统方法学 - 软件需求分析
    Java开发面试越来越难,很多Java程序员因为...这份神级《Java面试突击手册》让你面试成功率高达百分之95%!
    深入源码剖析ThreadPoolExecutor的工作原理
    eclipse svn插件安装
  • 原文地址:https://blog.csdn.net/qq_46103282/article/details/133042882