这是我去年选修数据科学时候的作业二,当时是肖若秀老师教的,但听说我们这届之后计科和物联信安一个难度授课了这篇文章可能也就只是自己记录帮不上学弟学妹了,但当时我上数据科学时候肖老师不签到老好了最后四个作业完成之后就有个还不错的分数虽然不出国选修课分数也无所谓就是了。

前文链接:

数据科学作业1


目录

前文链接:

一、作业描述

二、作业过程

1.导入相关的库

2.读取数据

3.特征缩放

4.梯度下降线性回归

5.均方误差评价模型

6.绘图

7.输出

二、公式推导

三、源代码附上

三、心得体会


一、作业描述

在本作业中,提供美国房屋交易价格的数据1套,数据为data2.CSV,包括10000条记录,14个字段,主要字段说明如下:

第一列“销售日期”:2014年5月到2015年5月房屋出售时的日期

第二列“销售价格”:房屋交易价格,单位为美元,是目标预测值

第三列“卧室数”:房屋中的卧室数目

第四列“浴室数”:房屋中的浴室数目

第五列“房屋面积”:房屋里的生活面积

第六列“停车面积”:停车坪的面积

第七列“楼层数”:房屋的楼层数

第八列“房屋评分”:King County房屋评分系统对房屋的总体评分

第九列“建筑面积”:除了地下室之外的房屋建筑面积

第十列“地下室面积”:地下室的面积

第十一列“建筑年份”:房屋建成的年份

第十二列“修复年份”:房屋上次修复的年份

第十三列"纬度":房屋所在纬度

第十四列“经度”:房屋所在经度

本次作业旨在通过对房屋的实用性和舒适性等多维度分析,实现对房价的精准预测,主要考察学生对于回归算法的理解和应用。

具体要求:

(1)从给定的房屋基本信息以及房屋销售信息等,建立一个回归模型预测房屋的销售价格,可以选定一个、多个或全部特征。

(3)对数据进行合理的划分(训练集,验证集和测试集等),选定合理的评价指标,分析所获得的回归模型的效果。

二、作业过程

1.导入相关的库

# 导入相关python库
import os
import numpy as np
import pandas as pd#设定随机数种子
np.random.seed(36)#使用matplotlib库画图
import matplotlib
import seaborn
import matplotlib.pyplot as plotfrom sklearn import datasets

2.读取数据

housing = pd.read_csv('kc_train.csv')target=pd.read_csv('kc_train2.csv')  #销售价格t=pd.read_csv('kc_test.csv')         #测试数据

3.特征缩放

from sklearn.preprocessing import MinMaxScalerminmax_scaler=MinMaxScaler()minmax_scaler.fit(housing)   #进行内部拟合,内部参数会发生变化scaler_housing=minmax_scaler.transform(housing)scaler_housing=pd.DataFrame(scaler_housing,columns=housing.columns)mm=MinMaxScaler()mm.fit(t)scaler_t=mm.transform(t)scaler_t=pd.DataFrame(scaler_t,columns=t.columns)

4.梯度下降线性回归

from sklearn.linear_model import LinearRegressionLR_reg=LinearRegression()#进行拟合LR_reg.fit(scaler_housing,target)

5.均方误差评价模型

from sklearn.metrics import mean_squared_errorpreds=LR_reg.predict(scaler_housing)   #输入数据进行预测得到结果mse=mean_squared_error(preds,target)   #使用均方误差来评价模型好坏,可以输出mse进行查看评价值

6.绘图

plot.figure(figsize=(10,7))       #画布大小num=100x=np.arange(1,num+1)              #取100个点进行比较plot.plot(x,target[:num],label='target')      #目标取值plot.plot(x,preds[:num],label='preds')        #预测取值plot.legend(loc='upper right')  #线条显示位置plot.show()

7.输出

result=LR_reg.predict(scaler_t)df_result=pd.DataFrame(result)df_result.to_csv("result.csv")

二、公式推导

通过构建损失函数,来求解损失函数最小时的参数w和b:

y^为预测值,自变量x和因变量y是已知的,而我们想实现的是预测新增一个x,其对应的y是多少。因此,为了构建这个函数关系,目标是通过已知数据点,求解线性模型中w和b两个参数。

求解最佳参数,需要一个标准来对结果进行衡量,为此我们需要定量化一个目标函数式,使得计算机可以在求解过程中不断地优化。

针对任何模型求解问题,都是最终都是可以得到一组预测值y^ ,对比已有的真实值 y ,数据行数为 n ,可以将损失函数定义如下:

即预测值与真实值之间的平均的平方距离,统计中一般称其为MAE(mean square error)均方误差。把之前的函数式代入损失函数,并且将需要求解的参数w和b看做是函数L的自变量,可得:

梯度下降核心内容是对自变量进行不断的更新(针对w和b求偏导),使得目标函数不断逼近最小值的过程:

三、可视化结果

三、源代码附上:

'''
在本作业中,提供美国房屋交易价格的数据1套,数据为data2.CSV,包括10000条记录,14个字段,主要字段说明如下:
第一列“销售日期”:2014年5月到2015年5月房屋出售时的日期
第二列“销售价格”:房屋交易价格,单位为美元,是目标预测值
第三列“卧室数”:房屋中的卧室数目
第四列“浴室数”:房屋中的浴室数目
第五列“房屋面积”:房屋里的生活面积
第六列“停车面积”:停车坪的面积
第七列“楼层数”:房屋的楼层数
第八列“房屋评分”:King County房屋评分系统对房屋的总体评分
第九列“建筑面积”:除了地下室之外的房屋建筑面积
第十列“地下室面积”:地下室的面积
第十一列“建筑年份”:房屋建成的年份
第十二列“修复年份”:房屋上次修复的年份
第十三列"纬度":房屋所在纬度
第十四列“经度”:房屋所在经度本次作业旨在通过对房屋的实用性和舒适性等多维度分析,实现对房价的精准预测,主要考察学生对于回归算法的理解和应用。
具体要求:
(1)从给定的房屋基本信息以及房屋销售信息等,建立一个回归模型预测房屋的销售价格,可以选定一个、多个或全部特征。
(2)【可选:加分项】仅使用Numpy和pandas等基础数学库,实现上述回归模型的梯度下降优化代码,并分析步长对收敛速度的影响。
(3)对数据进行合理的划分(训练集,验证集和测试集等),选定合理的评价指标,分析所获得的回归模型的效果。
提交方式:压缩格式,文件后缀为ZIP。其中:
(1)压缩文件根目录包含pdf文件,名称为“学号-姓名-作业2.pdf”,为作业的文档,内容包括作业过程、公式推导、代码说明、模型训练过程和结果、可视化图表等。
(2)压缩文件包含src子目录,其中包含所有的相关代码等。原始数据无需放置在压缩包内。
'''from __future__ import print_function# 导入相关python库
import os
import numpy as np
import pandas as pd#设定随机数种子
np.random.seed(36)#使用matplotlib库画图
import matplotlib
import seaborn
import matplotlib.pyplot as plotfrom sklearn import datasets#读取数据
housing = pd.read_csv('kc_train.csv')
target=pd.read_csv('kc_train2.csv')  #销售价格
t=pd.read_csv('kc_test.csv')         #测试数据#数据预处理
#housing.info()    #查看是否有缺失值#特征缩放
from sklearn.preprocessing import MinMaxScaler
minmax_scaler=MinMaxScaler()
minmax_scaler.fit(housing)   #进行内部拟合,内部参数会发生变化
scaler_housing=minmax_scaler.transform(housing)
scaler_housing=pd.DataFrame(scaler_housing,columns=housing.columns)mm=MinMaxScaler()
mm.fit(t)
scaler_t=mm.transform(t)
scaler_t=pd.DataFrame(scaler_t,columns=t.columns)#选择基于梯度下降的线性回归模型
from sklearn.linear_model import LinearRegression
LR_reg=LinearRegression()
#进行拟合
LR_reg.fit(scaler_housing,target)#使用均方误差用于评价模型好坏
from sklearn.metrics import mean_squared_error
preds=LR_reg.predict(scaler_housing)   #输入数据进行预测得到结果
mse=mean_squared_error(preds,target)   #使用均方误差来评价模型好坏,可以输出mse进行查看评价值#绘图进行比较
plot.figure(figsize=(10,7))       #画布大小
num=100
x=np.arange(1,num+1)              #取100个点进行比较
plot.plot(x,target[:num],label='target')      #目标取值
plot.plot(x,preds[:num],label='preds')        #预测取值
plot.legend(loc='upper right')  #线条显示位置
plot.show()#输出测试数据
result=LR_reg.predict(scaler_t)
df_result=pd.DataFrame(result)
df_result.to_csv("result.csv")

三、心得体会

通过梯度下降算法,对房价进行了预估,对回归模型有了新的认识,收获了很多。

数据科学作业2_房屋交易价格预测相关推荐

  1. 数据科学作业3_鸢尾花分类

    这是我去年选修数据科学时候的作业三,当时是肖若秀老师教的,但听说我们这届之后计科和物联信安一个难度授课了这篇文章可能也就只是自己记录帮不上学弟学妹了,但当时我上数据科学时候肖老师不签到老好了最后四个作 ...

  2. 二手车交易价格预测:数据的探索性分析

    二手车交易价格预测:数据的探索性分析 1.EDA目标 EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用. 当了解了数据集之后我们下 ...

  3. 【直播】王茂霖:二手车交易价格预测-千变万化特征工程(河北高校数据挖掘邀请赛)

    二手车交易价格预测-千变万化特征工程 目前 河北高校数据挖掘邀请赛 正在如火如荼的进行中.为了大家更好的参赛,王茂霖分享了 从0梳理1场数据挖掘赛事!,完整梳理了从环境准备.数据读取.数据分析.特征工 ...

  4. 【算法竞赛学习】二手车交易价格预测-Task2数据分析

    二手车交易价格预测-Task2 数据分析 二. EDA-数据探索性分析 Tip:此部分为零基础入门数据挖掘的 Task2 EDA-数据探索性分析 部分,带你来了解数据,熟悉数据,和数据做朋友,欢迎大家 ...

  5. 【算法竞赛学习】二手车交易价格预测-Task1赛题理解

    二手车交易价格预测-Task1 赛题理解 一. 赛题理解 Tip:此部分为零基础入门数据挖掘的 Task1 赛题理解 部分,为大家入门数据挖掘比赛提供一个基本的赛题入门讲解,欢迎后续大家多多交流. 赛 ...

  6. 阿里天池二手车交易价格预测(一)——EDA

    阿里天池二手车交易价格预测(一)--EDA Exploratory Data Analysis是数据科学领取理解和分析数据的方法,通过不断的收集.分析和假设验证,以取得对数据的深入理解. EDA的价值 ...

  7. 【二手车交易价格预测】赛题理解

    一.赛题背景 本次新人赛是Datawhale与天池联合发起的0基础入门系列赛事第一场 -- 零基础入门数据挖掘之二手车交易价格预测大赛. 赛题以二手车市场为背景,要求选手预测二手汽车的交易价格,这是一 ...

  8. 第一次认真的二手车交易价格预测--赛题分析

    二手车交易价格预测--赛题分析 数据比赛步骤 一. 赛题分析 1.1 学习目标 1.2 了解赛题 1.2.1 赛题概况 1.2.2 数据概况 train.csv 1.2.3 预测指标 一般问题评价指标 ...

  9. 二手车交易价格预测-task2

    数据挖掘入门- 二手车交易价格预测-task2 EDA(Exploratory Data Analysis)-数据探索性分析 2.1 EDA目标 2.2 内容介绍 2.3 经验总结 EDA(Explo ...

最新文章

  1. FPGA之道(27)VHDL的操作符号
  2. 计算机开始按钮作用,Win8.1的12个变化:开始按钮回归功能不再
  3. 两个列表合并去重_花生AI论文去重V1.4更新合并查同义词功能
  4. ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on yo
  5. 深度学习修炼(二)——数据集的加载
  6. Visual Studio的下载安装
  7. permutation 2(HDU-6630)
  8. Tuscany SCA 发布Web Service
  9. mongodb连接认证失败
  10. js方法点击复制文本
  11. USE_DB_RECOVERY_FILE_DEST的使用详解(转载)
  12. VB6.0软件安装包(永久),适用于Windows各系统附安装教程
  13. OptiStruct 11.0有限元优化分析视频教程
  14. QT 5.9.0下载安装及配置教程
  15. 一种改进的樽海鞘群算法-附代码
  16. itunes没法ipa_解决 iTunes 12.7 无法下载 AppStore应用的IPA包问题
  17. iPhone OS 4发布:支持多任务
  18. vue+vant 移动端国际区号组件封装
  19. Linux系统的介绍及安装
  20. php根据IP获取省份

热门文章

  1. ubuntu 12.10 显卡问题和解决 Failed to build fglrx-8.961 with DKMS
  2. 二叉查找树的原理及实现
  3. 用docker容器来制作nginx镜像
  4. Android Fragment---管理Fragment
  5. 卷积神经网络CNN里经典网络模型之 AlexNet全网最详解(理论篇)
  6. 2021-08-01 去除桔梗导航搜索页面
  7. 计算机系统盘涨满怎么办,系统盘满了怎么办?
  8. opencv--拍大头贴程序
  9. 抓取近千分领英资料后,我们发现了数据科学家的秘密……
  10. Android.Settings类设置默认输入法