机器学习(新手入门)-线性回归 #房价预测

题目:给定数据集dataSet,每一行代表一组数据记录,每组数据记录中,第一个值为房屋面积(单位:平方英尺),第二个值为房屋中的房间数,第三个值为房价(单位:千美元),试用梯度下降法,构造损失函数,在函数gradientDescent中实现房价price关于房屋面积area和房间数rooms的线性回归,返回值为线性方程𝑝𝑟𝑖𝑐𝑒=𝜃0+𝜃1∗𝑎𝑟𝑒𝑎+𝜃2∗𝑟𝑜𝑜𝑚𝑠中系数𝜃𝑖(𝑖=0,1,2)的列表。

%matplotlib inline

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from numpy import genfromtxt
dataPath = r"./Input/data1.csv"
dataSet = pd.read_csv(dataPath,header=None)
print(dataSet)
price = []
rooms = []
area = []
for data in range(0,len(dataSet)):
    area.append(dataSet[0][data])
    rooms.append(dataSet[1][data])
    price.append(dataSet[2][data])
print(area)

执行结果:

def gradientDescent(rooms, price, area):
    epochs = 500
    alpha = 0.00000001
    theta_gradient = [0,0,0]
    const = [1,1,1,1,1]
    theta = [1,2,1]
    loss = []
    
    for i in range(epochs):
        
        theta0 = np.dot(theta[0],const)
        theta1 = np.dot(theta[1],area)
        theat2 = np.dot(theta[2],rooms) 
        predict_tmp = np.add(theta0,theta1)
        predict = np.add(predict_tmp,theat2) 
        loss_ = predict - price
        theta_gradient[0] = (theta_gradient[0] + np.dot(const,loss_.transpose()))/5
        theta_gradient[1] = (theta_gradient[1] + np.dot(area,loss_.transpose()))/5
        theta_gradient[2] = (theta_gradient[2] + np.dot(rooms,loss_.transpose()))/5
        loss_t = np.sum(np.divide(np.square(loss_),2))/5
        if i%50==0:
            print("loss_t:",loss_t)
        loss.append(loss_t)
        theta[0] = theta[0] - alpha * theta_gradient[0]
        theta[1] = theta[1] - alpha * theta_gradient[1]
        theta[2] = theta[2] - alpha * theta_gradient[2]
    plt.plot(loss,c='b')
    plt.show()
    return theta
def demo_GD():
    
    theta_list = gradientDescent(rooms, price, area)
demo_GD()

j结果展示: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/103473.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ai写作创作系统ChatGPT网站源码+图文搭建教程+支持GPT4.0+支持ai绘画(Midjourney)/支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

SpringBoot 实体参数(用于请求参数比较多时使用)

字段必须和传参时一致,否则为null, 使用AITINS可以快速生成,SET GET方法 public class User {//字段必须和传参时一致,否则为nullprivate String user;private String password;public String getUser() {return user;}public vo…

openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户

文章目录 openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户108.1 创建、修改和删除用户108.2 私有用户108.3 永久用户108.4 用户认证优先规则 openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户 使用CREATE USER和ALTER USER可以创建和管理数据…

DLT645转modbus协议网关采集电表的数据方法

DLT645有两个版本分别是DLT645-97和DLT645-07,该协议主要用于电表抄表,采用为主-从结构的半双工通讯模式,硬件接口使用RS-485今天我们来看下,用远创智控YC-645-TCP网关如何采集电表的数据 1,首先,我们需要…

安科瑞余压监控系统

安科瑞 崔丽洁 机械加压送风系统中为什么要设计旁通阀控制加压送风的正压值?火灾发生后,又能起到什么作用呢? 发生火灾时,绝大多数的人员伤亡不是因为火,而是烟气,随着可燃物的燃烧产生大量的高温烟气&…

Java CC 解析 SQL 语法示例

示例:SimpleSelectParser 解析 select 11; 输出 2; 0)总结 编写 JavaCC 模板,*.jj 文件。 编译生成代码文件。 移动代码文件到对应的包下。 调用生成的代码文件。 1)JavaCC 模板 main/javacc/SimpleSelectParse…

vue3根据数据取消el-table选中状态获取到最新数据

原始数据: //el-table点击复选框事件 function getSelected(selection, row){//判断是否是已选过数据 0为没有选,>0有选过if(initial.value>0 ){let isCheck false //是否取消 true取消 false不取消//循环判断已选的数据是否包含当前点击获取到的…

折纸问题

折纸的次数 —— 从上到下的折痕 本质上是中序遍历的问题,因为每一次在已有的折痕后折的时候,当前折痕上的折痕一定为凹,当前折痕下的折痕一定为凸 。实际模拟了一个不存在的二叉树结构的中序遍历。 注:折纸折几次整颗二叉树就有…

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行

文章目录 1. 驱动开发环境搭建2. 驱动开发新建项目及项目属性配置和编译3. 双机调试环境搭建3.1 安装虚拟机VMware3.2 配置Dbgview.exe工具3.3 基于Windbg的双机调试 4. 内核驱动的运行4.1 临时关闭系统驱动签名校验4.2 加载驱动 1. 驱动开发环境搭建 请参考另一篇:https://bl…

rstudio server 服务器卡死了怎么办

欢迎关注weixin:生信小博士 #rstudio 卡死了怎么办 cd ~/.local/share/ ls rm -fr rstudio.old mv ~/.rstudio ~/.rstudio.oldcd ~/.config/ rm -fr .rstudio.old mv ~/.config/rstudio/ ~/.config/rstudio.oldps -ef|grep t040413 |grep rsession |awk {print $2}| xarg…

音乐制作软件 Studio One 6 mac中文版软件特点

Studio One mac是一款专业的音乐制作软件,该软件提供了全面的音频编辑和混音功能,包括录制、编曲、合成、采样等多种工具,可用于制作各种类型的音乐,如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件特点 1. 直观易用的界面&…

开源博客项目Blog .NET Core源码学习(4:生成验证码)

开源博客项目Blog中的后台管理登录界面中支持输入验证码(如下图所示),本文学习并记录项目中验证码的生成及调用方式。   博客项目中调用VerifyCode类生成验证码,该类位于App.Framwork项目中,命名空间为App.Framwork…

算法通过村第十六关-滑动窗口|白银笔记|经典题目讲解

文章目录 前言最长字串专场无重复字符的最长字串至多包含两个不同字串的最长子串至多包含K个不同字串的最长子串 长度最小的子数组盛水最多的容器寻找字串异位词(排序)字符串的排序找到字符串中所有字母异位 总结 前言 提示:所有的话语都颇为类似,而沉默…

36 机器学习(四):异常值检测|线性回归|逻辑回归|聚类算法|集成学习

文章目录 异常值检测箱线图z-score 保存模型 与 使用模型回归的性能评估线性回归正规方程的线性回归梯度下降的线性回归原理介绍L1 和 L2 正则化的介绍api介绍------LinearRegressionapi介绍------SGDRegressor 岭回归 和 Lasso 回归 逻辑回归基本使用原理介绍正向原理介绍损失…

Web前端接入Microsoft Azure AI文本翻译

Azure 文本翻译是 Azure AI 翻译服务的一项基于云的 REST API 功能。 文本翻译 API 支持实时快速准确地进行源到目标文本翻译。 文本翻译软件开发工具包 (SDK) 是一组库和工具,可用于轻松地将文本翻译 REST API 功能集成到应用程序中。 文本翻译 SDK 可跨 C#/.NET、…

大数据Flink(一百零一):SQL 表值函数(Table Function)

文章目录 SQL 表值函数(Table Function) SQL 表值函数(Table Function) Python UDTF,即 Python TableFunction,针对每一条输入数据,Python UDTF 可以产生 0 条、1 条或者多条输出数据,此外,一条输出数据可以包含多个列。比如以下示例,定义了一个名字为 split 的Pyt…

深度学习第四课

第九章 卷积神经网络解读 9.1 计算机视觉 目标分类 目标识别 64x64x312288 1000x1000x33000000 使用传统神经网络处理机器视觉面临的一个挑战是:数据的输入会非常大 一般的神经网络很难处理海量图像数据。解决这一问题的方法就是卷积神经网络 9.2 卷积运算 …

想要实现Email多账号管理,让SaleSmartly来帮你

Email营销是目前出海企业常见的模式,但是邮件信息整理起来确实不容易,选择一个实用的Email管理工具是很有必要的。SaleSmartly作为一个全渠道客户沟通平台,不仅可以聚合多个Email账号,不仅如此还可以聚合在线聊天(Live…

自动驾驶的未来展望和挑战

自动驾驶技术是一项引人瞩目的创新,将在未来交通领域产生深远影响。然而,随着技术的不断演进,自动驾驶也面临着一系列挑战和障碍。本文将探讨自动驾驶的未来发展方向、技术面临的挑战,以及自动驾驶对社会和环境的潜在影响。 自动驾…