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

网站建设利益分析jsp网站开发框架

网站建设利益分析,jsp网站开发框架,做网站前端后端ui什么意思,要建一个网站该怎么做任务目标 基于给定数据集#xff0c;采用三层bp神经网络方法#xff0c;编写程序并构建分类模型#xff0c;通过给定特征实现预测的书籍评分的模型。 选取数据 在各项指标中#xff0c;我认为书籍的评分和出版社、评论数量还有作者相关#xff0c;和其他属性的关系并大。…任务目标 基于给定数据集采用三层bp神经网络方法编写程序并构建分类模型通过给定特征实现预测的书籍评分的模型。 选取数据 在各项指标中我认为书籍的评分和出版社、评论数量还有作者相关和其他属性的关系并大。所以对于出版社我选取了出版社的平均评分和出版社在这个表格中出现的频率作为出版社的评价指标。对于作者选择了平均评分作为指标。此外选择了前40000条数据作为训练集考虑到运算的时间成本后续只选择了剩下20000条数据中的五千条作为测试集。 数据处理 首先将数据转为tensor格式然后进行归一化操作既Xnormalized​max(X)−min(X)X−min(X) 这样处理便于训练过程的稳定。 模型构建 这里构建三层神经网络中间层设置了64个结点激活函数采用的是ReLu函数。由于数据规模庞大选择在一批数据进行训练得到损失值后再进行一次参数更新每批次选择32个数据。损失函数选择选择均方误差函数并且选择随机梯度下降法进行优化。 绘制出损失值变化的折线图 结果评估 选择5000个数据将他们放入模型中计算出他们与真实结果的偏差的和并求出平均偏差。得到平均的偏差为0.165说明模型可以正确预测出书本评分 完整代码 import torch import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch.optim as optim import warnings warnings.filterwarnings(ignore)# In[30]:features pd.read_csv(book.csv)features[作者][54101]# In[31]:average_ratings_by_author features.groupby(作者)[评分].mean().reset_index() average_ratings_by_publisher features.groupby(出版社)[评分].mean().reset_index() # 打印每位作者的平均评分 print(average_ratings_by_publisher)# In[32]:# specific_author_rating average_ratings_by_author[average_ratings_by_author[作者] name][评分] # a specific_author_rating.tolist()# In[33]:publishers_frequency features[出版社].str.lower().value_counts(normalizeTrue) publishers_frequency# In[34]:# 输入你想要查找频率的出版社名字这里以示例出版社名 某某出版社 为例 publisher_name Harper Collins Publishers # 替换为你要查找频率的出版社名字# 对出版社名字进行预处理删除额外的空格或特殊字符并转换为小写 cleaned_publisher_name publisher_name.strip().lower()# 获取指定出版社的出现频率 cleaned_publishers publishers_frequency.index.str.strip().str.lower()if cleaned_publisher_name in cleaned_publishers:index_of_publisher cleaned_publishers.get_loc(cleaned_publisher_name)frequency publishers_frequency.iloc[index_of_publisher]print(frequency) else:print(f找不到 {publisher_name} 的频率数据)# In[115]:x [] y [] data [] for i in range(0,40000):print(i)data []author_ratings average_ratings_by_author[average_ratings_by_author[作者] features[作者][i]][评分].tolist()if author_ratings:data.append(author_ratings[0])else:# 在未找到匹配项时处理方式例如可以添加默认值或者设置为 Nonedata.append(None) # 或者添加适当的默认值publisher_ratings average_ratings_by_publisher[average_ratings_by_publisher[出版社] features[出版社][i]][评分].tolist()if publisher_ratings:data.append(publisher_ratings[0])else:# 在未找到匹配项时处理方式例如可以添加默认值或者设置为 Nonedata.append(None) # 或者添加适当的默认值publisher_name features[出版社][i] # 替换为你要查找频率的出版社名字# 对出版社名字进行预处理删除额外的空格或特殊字符并转换为小写cleaned_publisher_name publisher_name.strip().lower()# 获取指定出版社的出现频率cleaned_publishers publishers_frequency.index.str.strip().str.lower()if cleaned_publisher_name in cleaned_publishers:index_of_publisher cleaned_publishers.get_loc(cleaned_publisher_name)frequency publishers_frequency.iloc[index_of_publisher]else:print(f找不到 {publisher_name} 的频率数据)data.append(frequency*1000)if features[评论数量][i]None:data.append(0)else:data.append(float(features[评论数量][i]))print(data)print(float(features[评分][i]))x.append(data)y.append(float(features[评分][i]))# In[123]:# 转换格式 datas np.array(x).astype(float)scores np.array(y).astype(float) scores[-1]# In[127]:from sklearn.preprocessing import MinMaxScaler# 创建MinMaxScaler对象 scaler MinMaxScaler()# 将数据进行归一化处理 input_datas scaler.fit_transform(datas) input_datas# In[146]:###### 定义批次大小 batch_size 32# 将数据转换为 Tensor 格式 x torch.tensor(input_datas, dtypetorch.float) y torch.tensor(scores, dtypetorch.float)# 数据总数 total_data x.shape[0]# 定义神经网络结构 input_size x.shape[1] # 输入大小根据你的数据确定 hidden_size 64 # 隐藏层大小 output_size 1 # 输出大小根据你的数据确定 learning_rate 0.01 # 学习率# 初始化权重和偏差 weights1 torch.randn((input_size, hidden_size), dtypetorch.float, requires_gradTrue) bias1 torch.randn(hidden_size, dtypetorch.float, requires_gradTrue) weights2 torch.randn((hidden_size, output_size), dtypetorch.float, requires_gradTrue) bias2 torch.randn(output_size, dtypetorch.float, requires_gradTrue)losses []# 定义优化器 optimizer torch.optim.RMSprop([weights1, bias1, weights2, bias2], lrlearning_rate)for i in range(0, total_data, batch_size):loss 0# 获取当前批次的数据x_batch x[i:i batch_size]y_batch y[i:i batch_size]# 隐层计算hidden x_batch.mm(weights1) bias1# 加入激活函数hidden torch.relu(hidden)# 预测predictions hidden.mm(weights2) bias2# 计算损失criterion torch.nn.MSELoss() # 使用适当的损失函数loss criterion(predictions, y_batch)losses.append(loss.item()) # 保存损失值if i % 100 0:print(fLoss: {loss.item()},Epoch: {i})# 梯度清零optimizer.zero_grad()# 反向传播loss.backward()# 梯度裁剪 # torch.nn.utils.clip_grad_norm_([weights1, bias1, weights2, bias2], max_grad_norm)# 参数更新optimizer.step()# In[147]:import matplotlib.pyplot as plt # 定义可视化函数 def plot_losses(losses):plt.plot(losses, labelTraining Loss)plt.xlabel(Iterations)plt.ylabel(Loss)plt.title(Training Loss over Iterations)plt.legend()plt.show()# 训练过程中损失的记录 plot_losses(losses)# In[149]:x_1 [] y_1 [] data_1 [] for i in range(40000,45000):print(i)data_1 []author_ratings average_ratings_by_author[average_ratings_by_author[作者] features[作者][i]][评分].tolist()if author_ratings:data_1.append(author_ratings[0])else:# 在未找到匹配项时处理方式例如可以添加默认值或者设置为 Nonedata_1.append(None) # 或者添加适当的默认值publisher_ratings average_ratings_by_publisher[average_ratings_by_publisher[出版社] features[出版社][i]][评分].tolist()if publisher_ratings:data_1.append(publisher_ratings[0])else:# 在未找到匹配项时处理方式例如可以添加默认值或者设置为 Nonedata_1.append(None) # 或者添加适当的默认值publisher_name features[出版社][i] # 替换为你要查找频率的出版社名字# 对出版社名字进行预处理删除额外的空格或特殊字符并转换为小写cleaned_publisher_name publisher_name.strip().lower()# 获取指定出版社的出现频率cleaned_publishers publishers_frequency.index.str.strip().str.lower()if cleaned_publisher_name in cleaned_publishers:index_of_publisher cleaned_publishers.get_loc(cleaned_publisher_name)frequency publishers_frequency.iloc[index_of_publisher]else:print(f找不到 {publisher_name} 的频率数据)data_1.append(frequency*1000)if features[评论数量][i]None:data_1.append(0)else:data_1.append(float(features[评论数量][i]))print(data_1)x_1.append(data_1)y_1.append(float(features[评分][i]))x_1,y_1# In[150]:# 转换格式 datas np.array(x_1).astype(float)scores np.array(y_1).astype(float)from sklearn import preprocessing# 特征标准化处理 input_datas preprocessing.StandardScaler().fit_transform(datas) scores# In[152]:import torch import numpy as np from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 将预处理后的特征数据和标签数据转换为 PyTorch 的 Tensor 格式 x_test torch.tensor(input_datas, dtypetorch.float) y_test torch.tensor(scores, dtypetorch.float) total_loss 0for i in range(0, total_data, batch_size):# 获取当前批次的数据x_batch x_test[i:i 1]y_batch y_test[i:i 1]# 隐层计算hidden x_batch.mm(weights1) bias1# 加入激活函数hidden torch.relu(hidden)# 预测predictions hidden.mm(weights2) bias2# 计算损失criterion torch.nn.MSELoss() # 使用适当的损失函数loss criterion(predictions, y_test) # 这里的 predictions 和 labels 是每个批次的预测值和真实标签# 将损失值累积到 total_loss 变量中total_loss loss.item() print(total_loss/5000)本文由博客一文多发平台 OpenWrite 发布
http://www.pierceye.com/news/127708/

相关文章:

  • 专业的微商城网站建设农产品网站建设计划书
  • 软件网站开发公司广告公司创意取名
  • 工业设计东莞网站建设个人网站备案网站名称
  • 网站只能用ip访问网站吗导航网站 win8风格
  • 用ps可以做网站吗制作一个网站流程
  • 做网站支付系统难度做灯笼手工简单做法
  • 合肥珍岛公司做网站推广怎么样用excel做网站
  • 大连网站建设开源广告制作行业
  • 安阳河南网站建设wordpress 建立导航
  • 电子商务网站建设 考卷wordpress替换头像
  • 石家庄的网站的公司手机wordpress加载图片慢
  • 建企业网站教程wordpress网站被黑
  • 饮料网站建设市场分析什么是seo网站优化
  • 滑动网站国家级示范建设网站
  • 做一门户网站价格个人网站制作模板图片
  • 做网站需要审核资质吗wordpress 防恶意注册
  • 怎么不花钱建网站无人售货机
  • 可以做空股票的网站thinkphp网站开发
  • 给别人做网站怎么赚钱吗专业网络推广软件
  • SOHO英文网站制作晋江网站制作
  • 启东住房和城乡建设局网站邢台网站制作报价多少钱
  • 佛山网站建设seo优化做英文的小说网站有哪些
  • 安顺建设局网站官网哪里有响应式网站企业
  • 唯品会一家做特卖的网站国家商标查询官方网站
  • 网站宝搭建网站环境做电商网站一般需要什么流程图
  • 南通网站建设团队wordpress广告产检
  • 做网站刷赞qq怎么赚钱邢台路桥建设总公司没有网站吗
  • 网站仿站教程常用外贸网站
  • 南昌市有帮做网站的吗纵横天下网站开发
  • pc网站直接转换成移动端的网站黑果云免费虚拟主机