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

网站建设 字体版权陕西陕煤建设集团有限公司网站

网站建设 字体版权,陕西陕煤建设集团有限公司网站,金属东莞网站建设技术支持,什么叫网站降权目录 1.数据理解1.1分析数据集的基本结构#xff0c;查询并输出数据的前 10 行和 后 10 行1.2识别并输出所有变量 2.数据清洗2.1输出所有变量折线图2.2缺失值处理2.3异常值处理 3.数据分析3.1寻找相关性3.2划分数据集 4.数据整理4.1数据标准化 5.回归预测分析5.1线性回归… 目录 1.数据理解1.1分析数据集的基本结构查询并输出数据的前 10 行和 后 10 行1.2识别并输出所有变量 2.数据清洗2.1输出所有变量折线图2.2缺失值处理2.3异常值处理 3.数据分析3.1寻找相关性3.2划分数据集 4.数据整理4.1数据标准化 5.回归预测分析5.1线性回归岭回归套索回归 6.可视化6.1均分方差6.2平均绝对误差6.3 所有预测值与真实值对比 1.数据理解 from sklearn import model_selection as ms from sklearn.preprocessing import StandardScaler from sklearn import linear_model from sklearn.metrics import accuracy_score from sklearn.preprocessing import PolynomialFeatures as Poly from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score import pandas as pd import numpy as np import matplotlib.pyplot as pltdatapd.read_excel(台北房产数据集.xlsx)1.1分析数据集的基本结构查询并输出数据的前 10 行和 后 10 行 #前十行 data.head(10)#后十行 data.tail(10)1.2识别并输出所有变量 data.dtypes2.数据清洗 2.1输出所有变量折线图 便于观察观察所有特征的数据。 from pylab import mpl # 设置显示中文字体 mpl.rcParams[font.sans-serif] [SimHei] # 绘制直方图 data.hist(bins50, figsize(20,15))2.2缺失值处理 查看每一列的缺失值 #查看每一列的缺失值 data.isnull().sum()由于缺失值较少删除具有缺失值的行不会对数据有太大改变。 #删除具有空值的行 datadata.dropna() data.shape #(412, 8)2.3异常值处理 在上面的直方图中我们可以看到有部分数值是与之前的数值格格不入的 比如附近便利店的数量达到70多个、单位房价值异常高 我们把这些异常值的行取平均数填入 先找到数量异常的行再计算该列的平均值最后将该行个数替换为列的平均 #在上面的直方图中我们可以看到有部分数值是与之前的数值格格不入的 #比如附近便利店的数量达到70多个、单位房价值异常高 #我们把这些异常值的行取平均数填入#先找到便利店数量异常的行 data.loc[data[X4 附近便利店家数]50] print(异常行的数量,data.loc[data[X4 附近便利店家数]50].shape[0])#将该行便利店个数替换为列的平均值#先计算该列的平均值 shop_avg(int)(data[X4 附近便利店家数].mean()) print(附近便利店家数的平均值为,shop_avg) data[X4 附近便利店家数]data[X4 附近便利店家数].replace({70:shop_avg}) print(异常行的数量,data.loc[data[X4 附近便利店家数]50].shape[0])#先找到单位面积房价异常的行 data.loc[data[Y 单位面积房价]100] # print(异常行的数量,data.loc[data[Y 单位面积房价]100].shape[0])#将该行单位房价替换为列的平均值#先计算该列的平均值 shop_avg(int)(data[Y 单位面积房价].mean()) print(单位面积房价的平均值为,shop_avg) data[Y 单位面积房价]data[Y 单位面积房价].replace({117.5:shop_avg}) print(异常行的数量,data.loc[data[Y 单位面积房价]100].shape[0])3.数据分析 3.1寻找相关性 由于有些特征可能对房价起不到太大作用还有可能与目标标签是负相关的关系放到训练集里面既是浪费算力也会减少模型的准确性。 我们数据分析的第一步就是寻找相关性相关系数范围 [-1, 1] 越接近 1 表示有越强的正相关越接近 -1 表示有越强的负相关 #寻找相关性相关系数范围 [-1, 1] 越接近 1 表示有越强的正相关越接近 -1 表示有越强的负相关 corr_matrix data.corr() corr_matrix #具体看每个属性与单位面积房价的相关性 corr_matrix[Y 单位面积房价].sort_values(ascendingFalse)由上面相关性可知便利店家数与经纬度的相关性较高而交易年月虽是正相关但趋近于零而负相关的变量我们就不考虑了。 #定义散点图函数 def scatter_figure(th1,th2):data.plot(kindscatter, xth1, yth2)plt.xlabel(th1)plt.ylabel(th2)data.plot(kindscatter, xth1, yth2, alpha0.3)plt.xlabel(th1)plt.ylabel(th2)# 经度和单位房价的散点图与高密度点 scatter_figure(X6 经度,Y 单位面积房价)# 纬度和单位房价的散点图与高密度点 scatter_figure(X5 纬度,Y 单位面积房价)# 经度和纬度的散点图查看在哪个区域的房价高低与高密度点 scatter_figure(X6 经度,X5 纬度)3.2划分数据集 我们把数据集按照训练集测试集为73进行划分。 而特征值采用附近便利店数与经纬度这三列数据。 #划分数据集 ydata[[Y 单位面积房价]] xdata[[X4 附近便利店家数,X5 纬度,X6 经度]] x_train, x_test, y_train, y_test ms.train_test_split(x, y, random_state1, test_size0.3) x_train.head()4.数据整理 4.1数据标准化 #标准化 std StandardScaler() x_train_std std.fit_transform(x_train) x_test_std std.fit_transform(x_test) print(标准化之前\n,x_test) print(标准化之后\n,x_test_std)标准化之前 标准化之后 5.回归预测分析 5.1线性回归岭回归套索回归 回归预测这一部分我们采用了三种回归模型来训练与预测。 三种模型得分 #初始化训练器 line linear_model.LinearRegression() ridgelinear_model.Ridge() lassolinear_model.Lasso()nums[1,2,3] for num in nums:#用于生成多项式特征即将输入数据的特征进行组合生成新的特征poly Poly(num) x_train_poly poly.fit_transform(x_train_std)x_test_poly poly.transform(x_test_std)line.fit(x_train_poly,y_train)ridge.fit(x_train_poly,y_train)lasso.fit(x_train_poly,y_train)# print(预测值为,y_pred)# print(模型预测的均方误差,mean_squared_error(y_test,y_test_pred))print(第{}轮训练结果.format(num))print(线性回归模型得分,line.score(x_test_poly,y_test))print(岭回归模型得分,ridge.score(x_test_poly,y_test))print(套索回归模型得分,lasso.score(x_test_poly,y_test))print(------------------------------------------------------)#预测 y_test_line_predline.predict(x_test_poly) y_test_ridge_predridge.predict(x_test_poly) y_test_lasso_predlasso.predict(x_test_poly)从得分中我们可以看出来线性回归与岭回归模型得分几乎相等而套索回归模型稍逊色些。 部分预测值与实际值对比 x[] for a in range(60):x.append([a20]) # print(x) y_test2y_test[20:80] y_line_predy_test_line_pred[20:80] y_ridge_predy_test_ridge_pred[20:80] y_lasso_predy_test_lasso_pred[20:80] #设置图形 plt.figure(figsize(20,8),dpi80) #画图,zoder是控制画图流程的属性其值越大则表示画图的时间越晚 plt.plot(x,y_test2,colortomato,linestyle--,label准确值,markero) plt.plot(x,y_line_pred,colororange,label线性回归预测值) plt.plot(x,y_ridge_pred,colordeepskyblue,label岭回归回归预测值) plt.plot(x,y_lasso_pred,colorseagreen,label套索回归预测值)plt.xlabel(个数)#给x轴起名字 plt.ylabel(对比)#给y轴起名字 plt.grid() # 设置网格模式 plt.title(部分预测值与实际值对比图) plt.legend() #设置每个点上的数值 #展示 plt.show()6.可视化 # 计算均分方差 train_MSE_line [mean_squared_error(y_test, [np.mean(y_test)] * len(y_test)),mean_squared_error(y_test, y_test_line_pred)] train_MSE_ridge [mean_squared_error(y_test, [np.mean(y_test)] * len(y_test)),mean_squared_error(y_test, y_test_ridge_pred)] train_MSE_lasso [mean_squared_error(y_test, [np.mean(y_test)] * len(y_test)),mean_squared_error(y_test, y_test_lasso_pred)]#计算平均绝对误差 train_MAE_line [mean_absolute_error(y_test, [np.mean(y_test)] * len(y_test)),mean_absolute_error(y_test, y_test_line_pred)] train_MAE_ridge [mean_absolute_error(y_test, [np.mean(y_test)] * len(y_test)),mean_absolute_error(y_test, y_test_ridge_pred)] train_MAE_lasso [mean_absolute_error(y_test, [np.mean(y_test)] * len(y_test)),mean_absolute_error(y_test, y_test_lasso_pred)]# 绘图函数 def figure(title, *datalist):print(datalist)plt.figure(facecolorgray, figsize[16, 8])for v in datalist:plt.plot(v[0], -, labelv[1], linewidth2)plt.plot(v[0], o)plt.grid()plt.title(title, fontsize20)plt.legend(fontsize16)plt.show()6.1均分方差 # 绘制误差图 #figure( 均分方差 %.4f % (train_MSE_line[-1]), [train_MSE_line, MSE]) figure(line均分方差%.4f ridge均分方差%.4f lasso均分方差%.4f % (train_MSE_line[-1],train_MSE_ridge[-1],train_MSE_lasso[-1]),[train_MSE_line, 线性回归MSE],[train_MSE_ridge, 岭回归MSE],[train_MSE_lasso, 套索MSE])6.2平均绝对误差 figure(line平均绝对误差%.4f ridge平均绝对误差%.4f lasso平均绝对误差%.4f % (train_MAE_line[-1],train_MAE_ridge[-1],train_MAE_lasso[-1]),[train_MAE_line, 线性回归MAE],[train_MAE_ridge, 岭回归MAE],[train_MAE_lasso, 套索MAE])6.3 所有预测值与真实值对比 x[] for a in range(124):x.append([a]) #设置图形 plt.figure(figsize(20,8),dpi80) #画图,zoder是控制画图流程的属性其值越大则表示画图的时间越晚 plt.plot(x,y_test,colortomato,linestyle--,label准确值,markero) plt.plot(x,y_test_line_pred,colororange,label线性回归预测值) plt.plot(x,y_test_ridge_pred,colorcornflowerblue,label岭回归回归预测值) plt.plot(x,y_test_lasso_pred,colormediumseagreen,label套索回归预测值)plt.xlabel(个数)#给x轴起名字 plt.ylabel(对比)#给y轴起名字 plt.grid() # 设置网格模式 plt.title(预测值与实际值对比图) plt.legend() #设置每个点上的数值 #展示 plt.show()
http://www.hkea.cn/news/14464413/

相关文章:

  • 房屋自建设计哪个网站好株洲企业网站建设工作
  • 做a图片网站如何在网站页面添加代码
  • 网站建设经济可行性seo网站怎么搭建
  • 企业网站联系我们欢迎你的加入
  • 视频网站建设要多少钱学做php网站
  • 设计师自己做网站安徽网站建设推荐-晨飞网络
  • 菜鸟如何做网站网站怎么做引流呢
  • dedecms 做门户网站做网站 小程序前景
  • 广州网站开发学校客户管理软件免费版哪个好用
  • 公司软件网站建设wordpress 用户组权限
  • 国外优秀的设计网站网站关键词优化的步骤
  • 南京旅游网站建设公司wordpress 早期
  • 装修公司 网站模板河南网站建设外贸
  • 嘉兴seo网站建设费用编写微信小程序用什么软件
  • mysql asp网站网页管理平台
  • 优秀的网站建设对电子商务网站建设与管理的心得
  • 韶关市住房和城乡建设部网站网站构建是什么
  • 中铁建设集团有限公司中标项目seo优化招聘
  • 呼和浩特做网站的wordpress釆集插件破解
  • 长沙核酸检测点黄埔网站建设优化seo
  • 沧州网站制作费用青岛专业网站排名推广
  • 在网站建设中要注意的问题做企业网站哪家公司好
  • 站长域名查询三 网站开发使用软件环境
  • 用织梦做网站费用做电商网站价格
  • 江津做网站摩托车专业网站
  • 浏览器广告投放直通车关键词优化口诀
  • 旅游网站建站目的做外贸网站商城
  • 微商城网站建设怎么样建设一个网站要多
  • 被网站管理员设置拦截网站建设管理工作情况报告
  • 网站建设合同协议WordPress一键安装安全