人工智能导论综合设计实验_第1页
人工智能导论综合设计实验_第2页
人工智能导论综合设计实验_第3页
人工智能导论综合设计实验_第4页
人工智能导论综合设计实验_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广州大学学生实验报告开课学院及实验室:计算机科学与工程实验室2020年12月30日学院计算机科学与网络工程学院年级/专业/班姓名学号实验课程名称人工智能导论实验成绩实验项目名称人工智能导论综合设计实验指导老师范立生(***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***)实验内容选择具体实际应用和公用数据(爬取或下载),应用人工智能算法,挖掘有趣知识模式或实现特定模型。二、实验设备1.实验设备:计算机;2.平台:Windows操作系统,VisualC++6.0/PythonAnaconda三、实验步骤1.爬取网络上白云区机场路小区的房价数据2.使用梯度下降算法预测房价3.画出房价预测模型四、分析说明(包括核心代码及解释)使用梯度下降算法预测房价自变量为房子面积和楼层高低,预设高楼层值为3,中楼层值为2,低楼层值为1.因变量为房子价格将爬取的数据进行数据清洗后可得第一行数据为房子面积第二行数据为楼层高低,第三行为房子价格源代码:##多特征线性回归的房价预测importnumpyasnpfrommatplotlibimportpyplotaspltnp.set_printoptions(suppress=True)#禁止科学计数法plt.rcParams['font.sans-serif']=['SimHei']#允许画图中中文出现plt.rcParams['axes.unicode_minus']=False#解决画图中出现负数刻度显示异常的情况itersNum=1000#迭代次数learnRate=0.01#学习率#1、首先读取文件中的数据defloadFile(path):returnnp.loadtxt(path,dtype=np.float64,delimiter=',')#2、定义一个线性回归函数deflinerRegression():data=loadFile('baiyun_jichanglu_clean.csv')#读取文件数据x_data=np.array(data[:,0:-1])y_data=np.array(data[:,-1]).reshape(-1,1)x_data=meanNormalization(x_data)plotMeanNormalization(x_data)x_data=np.hstack((np.ones((len(y_data),1)),x_data))#插入一列为1的数组colNmus=x_data.shape[1]#计算出行数,以便确定所求参数个数theta=np.zeros((colNmus,1))#构建一个参数向量theta,costAll=gradientDescent(x_data,y_data,theta)plotCostCurve(costAll)plotLinearRegression(x_data,theta,y_data)returntheta#3、均值归一化函数defmeanNormalization(x_data):columnsMean=np.mean(x_data,0)#求出每一列的均值,0表示求列的均值,1表示求行的均值columnsStd=np.std(x_data,0)#求出每一类的标准差,0表示求列的标准差,1表示求行的标准差foriinrange(x_data.shape[1]):#归一化每一列的中的值减去均值,然后除去标准差shape[0]输出行数,shape[1]输出列数x_data[:,i]=(x_data[:,i]-columnsMean[i])/columnsStd[i]returnx_data#4、显示均值归一化的效果,也就是散点图defplotMeanNormalization(x_data):plt.scatter(x_data[:,0],x_data[:,1])plt.title('数据均值归一化效果')plt.savefig('均值归一化效果.png')#保存拟合图片plt.show()#5、核心算法,开始进行迭代,进行梯度下降defgradientDescent(x_data,y_data,theta):theta_num=len(theta)theta_temp=np.matrix(np.zeros((theta_num,itersNum)))#为了同步更新权重用,保存每一次迭代的结果costAll=np.zeros((itersNum,1))#保存代价foriinrange(itersNum):hypothesis=np.dot(x_data,theta)theta_temp[:,i]=theta-(learnRate/len(y_data))*(np.dot(np.transpose(x_data),hypothesis-y_data))theta=theta_temp[:,i]costAll[i]=costFunction(x_data,y_data,theta)returntheta,costAll#6、计算代价函数defcostFunction(x_data,y_data,theta):returnnp.sum(np.power(np.dot(x_data,theta)-y_data,2))/(2*len(y_data))#7、为了检验算法能否正确执行,现在将代价以图像的形式展现出来defplotCostCurve(costAll):x=np.arange(0,itersNum)plt.plot(x,costAll)plt.xlabel('迭代次数')plt.ylabel('代价值')plt.title('代价随迭代次数变化曲线')plt.savefig('CostCurve.png')plt.show()#8、将拟合的过程以3D立体图像形式展现出来defplotLinearRegression(x_data,theta,y_data):plt.figure(figsize=(8,10))x=x_data[:,1]y=x_data[:,2]theta=theta.flatten()z=theta[0,0]+(theta[0,1]*x)+(theta[0,2]*y)ax=plt.subplot(211,projection='3d')ax.plot_trisurf(x,y,z)ax.scatter(x_data[:,1],x_data[:,2],y_data,label='实际数据')ax.set_xlabel('房屋大小')ax.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论