当前位置: 首页 > news >正文

机器学习实战--梯度下降法进行波士顿房价预测

前言: Hello大家好,我是Dream。 今天来学习一下如何使用机器学习梯度下降法进行波士顿房价预测,这是简单的一个demo,主要展示的是一些小小的思路~

本文目录:

  • 一、波士顿房价预测
    • 1.全部的数据可视化
    • 2.地理数据可视化
    • 3.房价和人口及位置数据可视化
    • 4.所有相关数据的可视化
    • 5.房价和收入的可视化
    • 6.房价预测的线性回归模型训练
      • 梯度下降法
  • 二、完整代码
    • 1.正规方程
    • 2.梯度下降法
  • 源工程文件

一、波士顿房价预测

sklearn提供给我们两种实现的API, 可以根据选择使用:
正规方程
sklearn.linear_model.LinearRegression()
梯度下降法
sklearn.linear_model.SGDRegressor()

1.全部的数据可视化

data.hist(bins=50, figsize=(20, 15))

在这里插入图片描述

2.地理数据可视化

data.plot(kind="scatter", x="longitude", y="latitude", alpha=0.4);

在这里插入图片描述

3.房价和人口及位置数据可视化

data.plot(kind="scatter", x="longitude", y="latitude", alpha=0.6,s=data["population"]/100, label="population", figsize=(11,8),c="median_house_value", cmap=plt.get_cmap("jet"))

在这里插入图片描述

4.所有相关数据的可视化

features = ["median_house_value", "median_income", "total_rooms", "housing_median_age"]
scatter_matrix(housing[features], figsize=(20, 15));

在这里插入图片描述

预测median_house_value最相关的特征是median_income。

5.房价和收入的可视化

data.plot(kind="scatter", x="median_income", y="median_house_value", alpha=0.4);

最后得到和房价最相关的是收入数据
在这里插入图片描述

6.房价预测的线性回归模型训练

梯度下降法

def test():
m = 10000 
x = np.random.normal(size=m)X = x.reshape(-1, 1)
y = 4. * x + 3. + np.random.normal(0, 3, size=m)X_train, X_test, y_train, y_test = train_test_split(X, y)standardscaler = StandardScaler()standardscaler.fit(X_train)
x_train_standard = standardscaler.transform(X_train)lrg = LinearRegression()# lrg.fit_gd(x_train_standard, y_train, eta=0.001, n_iters=1e6)lrg.fit_sgd(x_train_standard, y_train)

在这里插入图片描述

二、完整代码

1.正规方程

def linear_model1():"""线性回归:正规方程:return:None"""# 1.获取数据data = load_boston()# 2.数据集划分x_train, x_test, y_train, y_test = train_test_split(data.data, data.target, random_state=22)# 3.特征工程-标准化transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.fit_transform(x_test)# 4.机器学习-线性回归(正规方程)estimator = LinearRegression()estimator.fit(x_train, y_train)# 5.模型评估# 5.1 获取系数等值y_predict = estimator.predict(x_test)print("预测值为:\n", y_predict)print("模型中的系数为:\n", estimator.coef_)print("模型中的偏置为:\n", estimator.intercept_)# 5.2 评价# 均方误差error = mean_squared_error(y_test, y_predict)print("误差为:\n", error)return None

2.梯度下降法

def linear_model2():"""线性回归:梯度下降法:return:None"""# 1.获取数据data = load_boston()# 2.数据集划分x_train, x_test, y_train, y_test = train_test_split(data.data, data.target, random_state=22)# 3.特征工程-标准化transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.fit_transform(x_test)# 4.机器学习-线性回归(特征方程)estimator = SGDRegressor(max_iter=1000)estimator.fit(x_train, y_train)# 5.模型评估# 5.1 获取系数等值y_predict = estimator.predict(x_test)print("预测值为:\n", y_predict)print("模型中的系数为:\n", estimator.coef_)print("模型中的偏置为:\n", estimator.intercept_)# 5.2 评价# 均方误差error = mean_squared_error(y_test, y_predict)print("误差为:\n", error)return None

源工程文件

关注此公众号:人生苦短我用Pythons,获取源码,快点击我吧

🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~
在这里插入图片描述
在这里插入图片描述

最后,有任何问题,欢迎关注下面的公众号,获取第一时间消息、作者联系方式及每周抽奖等多重好礼! ↓↓↓

http://www.lryc.cn/news/6014.html

相关文章:

  • 黑马】后台管理-项目优化和上线
  • Web 框架 Flask 快速入门(三)数据库-MySQL
  • 牛客网Python篇数据分析习题(六)
  • Ansible的安装及部署
  • 链表题目总结 -- 递归
  • 重写-linux内存管理-伙伴分配器(一)
  • 为什么要用springboot进行开发呢?
  • 设备树信息解析相关函数
  • LeetCode-1124. 表现良好的最长时间段【哈希表,前缀和,单调栈】
  • vue-router路由配置
  • 中国计算机设计大赛来啦!用飞桨驱动智慧救援机器狗
  • 嘉定区2022年高新技术企业认定资助申报指南
  • 【C++】关键字、命名空间、输入和输出、缺省参数、函数重载
  • 【一道面试题】关于HashMap的一系列问题
  • 论文笔记: Monocular Depth Estimation: a Review of the 2022 State of the Art
  • Springmvc补充配置
  • MySQL 的 datetime等日期和时间处理SQL函数及格式化显示
  • 基于微信云开发的防诈反诈宣传教育答题小程序
  • Map和Set
  • 【位运算问题】Leetcode 136、137、260问题详解及代码实现
  • 同花顺2023届春招内推
  • 深入Kafka核心设计与实践原理读书笔记第三章消费者
  • IDEA 中使用 Git 图文教程详解
  • 【Linux系统】进程概念
  • 上课睡觉(2023寒假每日一题 4)
  • 【Selenium学习】Selenium 中常用的基本方法
  • python练习——简化路径
  • 2023新华为OD机试题 - 火星文计算2(JavaScript) | 刷完必过
  • 前端插件重磅来袭
  • 深入工厂|高精密多层板是如何被智造出来的?