人工智能开发框架应用 课后练习题及答案 项目4_第1页
人工智能开发框架应用 课后练习题及答案 项目4_第2页
人工智能开发框架应用 课后练习题及答案 项目4_第3页
人工智能开发框架应用 课后练习题及答案 项目4_第4页
全文预览已结束

付费下载

下载本文档

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

文档简介

项目4基于线性回归网络实现房价预测一、简答题1.简述单层感知机和多层感知机的区别。2.简述深度学习工作流程。1)数据加载:深度学习模型训练需要依赖于大量数据,可使用框架自带数据集或是文件数据集。2)数据预处理:由于原始数据集的数据可能不一定规范和完整,需要对数据进行初步分析或探索,然后根据探索结果与问题目标,确定数据预处理方案。3)构建神经网络:根据问题的需要,选择神经网络结构,搭建神经网络。4)训练配置:设置损失函数和优化器等相关参数才可以输入训练数据,进行网络训练。5)训练网络:将数据样本传入网络,对于网络进行训练。在训练网络过程中,可通过调整迭代次数、批大小等参数的值,对网络训练过程进行优化。6)模型评估:网络训练完毕后,需要利用测试集来评估训练的效果如何,所得到的模型指标是否达标。7)模型保存与调用 为了方便使用通常将训练好的神经网络模型以文件形式保存,使用时直接加载保存的模型模型保存的方式分为两种保存模型参数和保存整个模型两种方式。二、实操题1.Linear网络模型,实现线性回归模型的搭建和训练。4.1、4.2、4.3,核心实现代码:importpandasaspdimportmatplotlib.pyplotaspltimportseabornassns #导入Seaborn库fromsklearn.datasetsimportfetch_california_housing #导入数据集importtorchfromtorchimportnnfromsklearn.metricsimportr2_scorehousing=fetch_california_housing()#以data属性为数据、feature_names属性为标题,创建DataFrame对象df=pd.DataFrame(data=housing['data'],columns=housing['feature_names'])#将target属性列作为新增列加到df最后一列df['MedHouseVal']=housing['target']#语句1定义图形窗口,设置其宽和高均为12,分辨率为300,#返回3x3的子图坐标数组对象axsfig,axs=plt.subplots(3,3,figsize=(12,12),dpi=300)#语句2将axs展开为1维数组axs=axs.flatten()#遍历数据集中所有属性列fori,colinenumerate(df.columns[:-1]):#绘制第i个散点子图,描述第col个属性列与房价中位数的关系axs[i].scatter(df[col],df['MedHouseVal'],s=1)#设置x轴axs[i].set_xlabel(col)#设置y轴axs[i].set_ylabel('MedHouseVal')#调整子图,以填充整个图形窗口plt.tight_layout()#保存所绘制的图形plt.savefig('../tmp/加州房价数据集各属性与目标属性的关系.jpg')#显示图形plt.show()#定义去除异常值函数defremove_outliers(data,col,threshold=3):"""去除指定列中的异常值,使用3sigma原则。参数:data:pandas.DataFrame,数据集。col:str,需要去除异常值的列名。threshold:int,标准差的阈值,默认为3。返回值:pandas.DataFrame,去除异常值后的数据集。"""#计算指定列的均值和标准差mean=data[col].mean()std=data[col].std()#计算异常值的阈值范围lower=mean-threshold*stdupper=mean+threshold*std#去除异常值data=data[(data[col]>=lower)&(data[col]<=upper)]returndata#去除异常值处理clean_list=['AveRooms','AveBedrms','Population','AveOccup']df_new=df#遍历clean_list数组foriinclean_list:#调用remove_outliers函数,对第i个特征属性进行异常值去除处理df_new=remove_outliers(df_new,i,3)#计算数据集中各属性间的相关性,返回矩阵结果集corr_matrix=df_new.corr()#定义图形窗口,设置宽和高均为8plt.figure(figsize=(8,8))#对ormaixcmap选用“coolam#设置annot为True,每个单元格写入相关性的值,#设置square为True,x、y轴方向设置相等,使得每个单元格为方形sns.heatmap(corr_matrix,cmap='coolwarm',annot=True,square=True)#设置图形的标题plt.title('CorrelationbetweenfeaturesandMedHouseVal')#显示图形plt.show()#获取各属性与MedHouseVal属性的相关性系数tmp=corr_matrix['MedHouseVal']#选择相关系数绝对值大于0.1的特征属性tmp=tmp[abs(tmp)>0.1]#获取相关系数绝对值大于0.1的特征属性的标题titles=tmp.index[:-1]#从数据集中获取相关系数绝对值大于0.1的特征属性x=df_new[titles]#从数据集中获取房价中位数属性y=df_new['MedHouseVal'].values#导入Sklearn库train_test_split函数fromsklearn.model_selectionimporttrain_test_split#划分训练集和测试集,其中测试集占比为20%,随机数种子为42X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=42)#导入Sklearn库StandardScaler函数fromsklearn.preprocessingimportStandardScaler#定义标准缩放器对象scaler=StandardScaler()#找出X_train的均值和标准差,并基于此将数据进行标准化X_train=scaler.fit_transform(X_train)#对于X_test进行标准化处理X_test=scaler.transform(X_test)#1X_trainfloat32X_traintorch.tensor(X_train).float()#2y_train1float32y_train=torch.tensor(y_train.reshape(-11)).float()X_test=torch.tensor(X_test).float()y_test=torch.tensor(y_test.reshape(-1,1)).float()#语句1定义网络model=nn.Linear(X_train.shape[1],1)#定义损失函数criterion=nn.MSELoss()#定义优化器optimizer=torch.optim.Adam(model.parameters(),lr=0.05)#定义批次数n_epochs=100#在训练数据集上进行n_epochs次训练forepochinrange(n_epochs):#前向传播,在训练集上进行预测y_pred=model(X_train)#根据预测结果计算损失loss=criterion(y_pred,y_train)#语句1将参数梯度置零optimizer.zero_grad()#反向传播,求解参数梯度loss.backward()#更新模型参数optimiz

温馨提示

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

评论

0/150

提交评论