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

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

python 复制代码
%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)

执行结果:

python 复制代码
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
python 复制代码
def demo_GD():
    
    theta_list = gradientDescent(rooms, price, area)
demo_GD()

j结果展示:

相关推荐
阿三08122 分钟前
钉钉 AI 深度赋能制造业 LTC 全流程:以钉钉宜搭、Teambition 为例
人工智能·低代码·钉钉·teambition
摩羯座-185690305942 分钟前
京东商品评论接口技术实现:从接口分析到数据挖掘全方案
人工智能·数据挖掘
格调UI成品13 分钟前
智能制造新视角:工业4.0中,数字孪生如何优化产品全生命周期?
人工智能·工业4.0
机器学习之心25 分钟前
PINN物理信息神经网络用于求解二阶常微分方程(ODE)的边值问题,Matlab实现
人工智能·神经网络·matlab·物理信息神经网络·二阶常微分方程
zandy101128 分钟前
LLM与数据工程的融合:衡石Data Agent的语义层与Agent框架设计
大数据·人工智能·算法·ai·智能体
大千AI助手34 分钟前
梯度消失问题:深度学习中的「记忆衰退」困境与解决方案
人工智能·深度学习·神经网络·梯度·梯度消失·链式法则·vanishing
研梦非凡43 分钟前
CVPR 2025|无类别词汇的视觉-语言模型少样本学习
人工智能·深度学习·学习·语言模型·自然语言处理
seegaler1 小时前
WrenAI:开源革命,重塑商业智能未来
人工智能·microsoft·ai
max5006001 小时前
本地部署开源数据生成器项目实战指南
开发语言·人工智能·python·深度学习·算法·开源
他们叫我技术总监1 小时前
【保姆级选型指南】2025年国产开源AI算力平台怎么选?覆盖企业级_制造业_国际化场景
人工智能·开源·算力调度·ai平台·gpu国产化