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

农业电商网站建设方案玩具租赁系统网站开发与实现

农业电商网站建设方案,玩具租赁系统网站开发与实现,滨州网站开发,电子网站建文章目录前言一、单变量线性回归1.导入必要的库2.读取数据3.绘制散点图4.划分数据5.定义模型函数6.定义损失函数7.求权重向量w7.1 梯度下降函数7.2 最小二乘法8.训练模型9.绘制预测曲线10.试试正则化11.绘制预测曲线12.试试sklearn库二、多变量线性回归1.导入库2.读取数据3.划分… 文章目录前言一、单变量线性回归1.导入必要的库2.读取数据3.绘制散点图4.划分数据5.定义模型函数6.定义损失函数7.求权重向量w7.1 梯度下降函数7.2 最小二乘法8.训练模型9.绘制预测曲线10.试试正则化11.绘制预测曲线12.试试sklearn库二、多变量线性回归1.导入库2.读取数据3.划分数据4.定义假设函数5.定义损失函数6.定义梯度下降函数7.训练模型8.运用sklearn绘图总结前言 线性回归是一种通过属性的线性组合来进行预测的线性模型 其目的是找到一条直线或者一个平面或者更高维的超平面使得预测值与真实值之间的误差最小化。 一、单变量线性回归 1.导入必要的库 导入pandas、numpy和matplotlib.pyplot库 import pandas as pd #导入pandas库 import numpy as np #导入numpy库 import matplotlib.pyplot as plt #导入matplotlib.pyplot库 plt.rcParams[font.sans-serif][SimHei] #用来正常显示中文标签 plt.rcParams[axes.unicode_minus]False #用来正常显示负号2.读取数据 使用pandas库的read_csv()函数读取数据文件数据文件中包含了人口和收益两列数据 datapd.read_csv(rd:线性回归/regress_data1.csv) #读取数据3.绘制散点图 使用data.plot()函数绘制散点图展示人口与收益之间的关系 data.plot(kindscatter,x人口,y收益) #绘制散点图 plt.xlabel(人口,fontsize10) #横坐标 plt.ylabel(收益,fontsize10) #纵坐标 plt.title(人口与收益之间的关系) #标题 plt.show() #画图4.划分数据 这里是为了方便后面计算将一列全为1的列插入到数据中 将数据分为训练集和测试集这里只使用了训练集 data.insert(0,ones,1) #插入列便于后面计算 col_numdata.shape[1] #训练特征个数 mdata.shape[0] #训练标签个数 Xdata.iloc[:,:col_num-1].values #训练集的特征 ydata.iloc[:,col_num-1].values #训练集的标签 yy.reshape((m,1)) 5.定义模型函数 定义h(X,w)函数用来计算模型预测值这里采用的是线性模型 def h(X,w):return Xw6.定义损失函数 定义cost(X,y,w)函数用来计算模型误差 def cost(X,y,w):return np.sum(np.power(h(X,w)-y,2))/(2*m)7.求权重向量w 7.1 梯度下降函数 定义函数gradient_descent(X,y,w,n,a)用来执行梯度下降算法更新权重向量w并返回最终的权重向量和误差列表 def gradient_descent(X,y,w,n,a):twcost_lst[]for i in range(n):errorh(X,w)-yfor j in range(col_num-1):t[j][0]w[j][0]-((a/m)*np.sum(error.ravel()*X[:,j].ravel()))wtcost_lst.append(cost(X,y,w))return w,cost_lst7.2 最小二乘法 定义函数least_square(X,y)用来执行最小二乘法直接求出权重向量w但是当n10000时由于时间复杂度太大将导致程序运行超时 def least_square(X,y):wnp.linalg.inv(X.TX)X.Tyreturn w8.训练模型 调用gradient_descent()函数训练模型并输出误差随迭代次数变化的图像用来观察模型的学习效果 其中迭代次数越大训练效果越好学习率适中既不可太大也不可过小 n10000 #迭代次数越多越好 a0.003 #学习率适中不能太大也不能太小 wnp.zeros((col_num-1,1)) #初始化权重向量 w,cost_lstgradient_descent(X,y,w,n,a) #调用梯度下降函数 plt.plot(range(n),cost_lst,r-) plt.xlabel(迭代次数) plt.ylabel(误差) plt.show()9.绘制预测曲线 使用训练好的权重向量w绘制预测曲线并将其与原始数据一起绘制在图像上用来观察模型的预测效果 xnp.linspace(data[人口].min(),data[人口].max(),50) #预测特征 y1w[0,0]*1w[1,0]*x #预测标签 plt.scatter(data[人口],data[收益], label训练数据) #训练集 plt.plot(x,y1,r-,label预测线) #预测集 plt.xlabel(人口,fontsize10) plt.ylabel(收益,fontsize10) plt.title(人口与收益之间的关系) plt.show()10.试试正则化 使用L2正则化岭回归防止过拟合 def gradient_descents(X,y,w,n,a,l):twcost_lst[]for i in range(n):errorh(X,w)-yfor j in range(col_num-1):t[j][0]w[j][0]-((a/m)*(np.sum(error.ravel()*X[:,j].ravel())2*l*w[j,0]))wtcost_lst.append(cost(X,y,w))return w,cost_lst n10000 #迭代次数越多越好 a0.003 #学习率适中不能太大也不能太小 l1 #λ wnp.zeros((col_num-1,1)) w,cost_lstgradient_descents(X,y,w,n,a,l) plt.plot(range(n),cost_lst,r-) plt.xlabel(迭代次数) plt.ylabel(误差) plt.show()11.绘制预测曲线 使用训练好的权重向量w绘制预测曲线并将其与原始数据一起绘制在图像上用来观察模型的预测效果 xnp.linspace(data[人口].min(),data[人口].max(),50) y1w[0,0]*1w[1,0]*x plt.scatter(data[人口],data[收益], label训练数据) plt.plot(x,y1,r-,label预测线) plt.xlabel(人口,fontsize10) plt.ylabel(收益,fontsize10) plt.title(人口与收益之间的关系) plt.show()12.试试sklearn库 import pandas as pd #导入pandas库 import numpy as np #导入numpy库 import matplotlib.pyplot as plt #导入matplotlib.pyplot库 import sklearn #导入sklearn库 from sklearn import linear_model plt.rcParams[font.sans-serif][SimHei] #用来正常显示中文标签 plt.rcParams[axes.unicode_minus]False #用来正常显示负号 # 2.读取数据使用pandas库的read_csv()函数读取数据文件。数据文件中包含了人口和收益两列数据。 datapd.read_csv(rd:线性回归/regress_data1.csv) #读取数据 data.insert(0,ones,1) #插入列 col_numdata.shape[1] #列数 mdata.shape[0] #行数 # 5.划分数据将数据分为训练集和测试集这里只使用了训练集。 Xdata.iloc[:,:col_num-1].values #训练集的特征 ydata.iloc[:,col_num-1].values #训练集的标签 y.reshape((m,1)) modlinear_model.LinearRegression() mod.fit(X,y) Ymod.predict(X) plt.scatter(X[:,1],y,markero,colorb) plt.plot(X,Y,marker,colorr) plt.xlabel(人口) plt.ylabel(收益) plt.show()二、多变量线性回归 1.导入库 import pandas as pd #导入pandas库 import numpy as np #导入numpy库 import matplotlib.pyplot as plt #导入matplotlib.pyplot库 plt.rcParams[font.sans-serif][SimHei] #用来正常显示中文标签 plt.rcParams[axes.unicode_minus]False #用来正常显示负号2.读取数据 dataspd.read_csv(rd:/线性回归/regress_data2.csv) #读取数据 datas(datas-datas.mean())/datas.std() #正则化3.划分数据 datas.insert(0,ones,1) #插入列 col_numdatas.shape[1] #训练特征个数 mdatas.shape[0] #训练标签 Xdatas.iloc[:,:col_num-1].values #训练特征 ydatas.iloc[:,col_num-1].values #训练标签 yy.reshape((m,1)) 4.定义假设函数 def h(X,w):return Xw5.定义损失函数 def cost(X,y,w):return np.sum(np.power(h(X,w)-y,2))/(2*m)6.定义梯度下降函数 def gradient_descent(X,y,w,n,a):twcost_lst[]for i in range(n):errorh(X,w)-yfor j in range(col_num-1):t[j,0]w[j,0]-((a/m)*np.sum(error.ravel()*X[:,j].ravel()))wtcost_lst.append(cost(X,y,w))return w,cost_lst7.训练模型 n1000 #迭代次数 a0.01 #学习率 wnp.zeros((col_num-1,1)) #初始化特征向量w w,cost_lstgradient_descent(X,y,w,n,a) plt.plot(range(n),cost_lst,r-) plt.xlabel(迭代次数) plt.ylabel(误差) plt.show()8.运用sklearn绘图 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn import linear_model from sklearn.preprocessing import PolynomialFeatures plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False # 读取数据 datas pd.read_csv(rd:线性回归/regress_data2.csv) datas (datas - datas.mean()) / datas.std() X datas.iloc[:, :-1].values y datas.iloc[:, -1].values.reshape(-1, 1) # 多项式回归 poly PolynomialFeatures(degree2) X_poly poly.fit_transform(X) mod linear_model.LinearRegression() mod.fit(X_poly, y) # 绘制拟合曲线 x1 np.linspace(datas[面积].min(), datas[面积].max(), 50) x2 np.linspace(datas[房间数].min(), datas[房间数].max(), 50) x1, x2 np.meshgrid(x1, x2) X_grid np.column_stack((x1.flatten(), x2.flatten())) X_grid_poly poly.fit_transform(X_grid) y_pred mod.predict(X_grid_poly) figplt.figure() ax fig.add_subplot(projection3d) ax.scatter(X[:,0], X[:,1], y, markero, colorb) ax.plot_surface(x1, x2, y_pred.reshape(x1.shape), cmapcoolwarm) ax.set_title(价格随面积与房间数的变化曲面) ax.set_xlabel(面积) ax.set_ylabel(房间数) ax.set_zlabel(价格) plt.show()总结 线性回归三大要素 假设函数 h(X,w)损失函数 cost(X,y,w)梯度下降/最小二乘函数求解权重向量w的函数 普通线性回归步骤 导入库读取数据划分数据假设函数模型函数损失函数梯度下降/最小二乘训练模型绘图预测 调用sklearn库进行线性回归的步骤 导入库读取数据调用sklearn库绘图
http://www.dnsts.com.cn/news/222506.html

相关文章:

  • 网站建设与管理 市场分析免费下载应用软件
  • 浦东新区手机网站设计优秀购物网站
  • 网站开发案例电子书3d建模设计
  • 什么是网站开发流程导购网站自己做电商
  • 购物网站怎么做有哪些做红色旅游景点的网站
  • 做餐饮的网站建设网站培训学校
  • 质感设计网站空调网站模板
  • 网站设计公司成都销售网站建设公司
  • 手机版网站快照如何做网站建设宀金手指花总十五
  • 一个网站是怎么做出来的尤溪住房和城乡建设局网站
  • 网站的栏目结构简图怎么做新手想开网店怎么开
  • 为什么做动漫短视频网站怎么推广自己做的网站
  • 全运网站的建设合肥网站建站报广告代理
  • 公司网站的建设sirna在线设计网站
  • 哈尔滨seo网站管理wordpress发文章api
  • 网站备案名称重复免费网站服务器2020
  • 网站建设需要提供哪些信息专业制作ppt
  • 网站维护服务费网站备案幕布照片尺寸
  • 北京网站制作网络推广公司wordpress图片实现下一篇文章
  • 做网站素材在哪里找天下网商自助建站系统
  • 六安市建设网站市场信息价在线制作海报网站
  • 江西工程建设信息网站东城网站制作公司
  • 小说网站怎么做防采集net网站开发是什么
  • 广告牌图片100例关键词推广seo
  • 比较好的室内设计网站广东省东莞阳光网
  • 医院网站优化策划网站开发客户提供素材
  • 什么网站可以做任务领赏金怎么用dw做简单网站
  • 免费网站整站模板下载开发人员选项怎么打开
  • 应用宝aso优化seo优化培训
  • 如何做类似优酷的视频网站怎样成立网站