Rockhurst大学BIA6303预测模型资源站点

需积分: 9 0 下载量 162 浏览量 更新于2024-12-01 收藏 37.73MB ZIP 举报
资源摘要信息:"Rockhurst大学BIA6303预测模型是一个涉及数据科学、机器学习和统计预测的课程材料集合,主要面向高等教育环境中的学生和教师。从文件描述中可以得知,该资源位于Rockhurst大学,并专门服务于BIA6303课程,即预测模型课程。提供的材料包括了代码和数据,它们被组织在一个名为‘Pred_Models_git’的Git仓库中,为了方便访问,还特别强调了需要定期检查该站点以获取最新的更新信息。 标题中的‘Pred_Models_git:BIA6303预测模型的材料’意味着访问者可以通过Git仓库来下载或查看课程所需的预测模型相关的材料,例如Jupyter Notebook文件、数据集、Python代码以及其他可能与课程项目或作业相关的资源。由于涉及到了Git,这表明了材料的版本控制和管理是通过这个广泛使用的分布式版本控制系统来执行的。 描述部分透露了几个重要信息点。首先,这个资源是为Rockhurst大学的学生和教师准备的,说明它是专为特定教育机构设计的教学支持材料。其次,提到需要每周检查更新,说明材料可能会随着课程的进展或教学需求的变化而持续更新和改进。 标签‘JupyterNotebook’表明了该课程材料的一个重要组成部分是Jupyter Notebook。Jupyter Notebook是一种交互式计算环境,它支持一系列的编程语言,包括但不限于Python、R、Julia等。它特别适合数据科学和机器学习领域,因为其支持可执行代码和实时文本说明的交互,以及富文本格式的输出。Jupyter Notebook允许用户编写和执行代码块,展示结果,并附加解释性的说明或图表,非常适合教育和研究。 至于‘压缩包子文件的文件名称列表’中的‘Pred_Models_git-master’,这意味着资源库的主分支名为‘master’,用户通过该分支可以获取最新的课程材料。一般情况下,Git的默认分支名为‘master’,虽然在一些组织中现在可能会使用‘main’作为默认分支名,来避免使用‘master’可能带来的负面含义。 综上所述,该资源库中可能包含以下知识点: 1. Git版本控制的使用,特别是对于代码和数据管理的重要性。 2. Jupyter Notebook的使用和优势,尤其在数据科学和机器学习中的应用。 3. 定期检查课程材料的重要性,以及如何根据课程更新保持同步。 4. 针对BIA6303课程的预测模型开发,可能涉及的统计方法和机器学习算法。 5. 整合和处理数据集,以及如何将数据转换为有效的预测模型输入。 6. 可能包含的Python编程知识,尤其是与数据分析和机器学习相关的库如Pandas、NumPy、Scikit-learn等。 这些知识点不仅对Rockhurst大学的学生和教师有帮助,也对任何对预测模型、数据科学和机器学习有兴趣的IT专业人士具有参考价值。"

import pandas as pd import numpy as np from keras.models import load_model # 加载已经训练好的kerasBP模型 model = load_model('D://model.h5') # 读取Excel文件中的数据 data = pd.read_excel('D://数据1.xlsx', sheet_name='4') # 对数据进行预处理,使其符合模型的输入要求# 假设模型的输入是一个包含4个特征的向量# 需要将Excel中的数据转换成一个(n, 4)的二维数组 X = data[['A', 'B', 'C', 'D']].values # 使用模型进行预测 y_pred = model.predict(X) # 对预测结果进行反归一化 y_pred_int = scaler_y.inverse_transform(y_pred).round().astype(int) # 构建带有概率的预测结果 y_pred_prob = pd.DataFrame(y_pred_int, columns=data.columns[:4]) mse = ((y_test - y_pred) ** 2).mean(axis=None) y_pred_prob['Probability'] = 1 / (1 + mse - ((y_pred_int - y_test) ** 2).mean(axis=None)) # 过滤掉和值超过6或小于6的预测值 y_pred_filtered = y_pred_prob[(y_pred_prob.iloc[:, :4].sum(axis=1) == 6)] # 去除重复的行 y_pred_filtered = y_pred_filtered.drop_duplicates() # 重新计算低于1.2的 Probability 值 low_prob_indices = y_pred_filtered[y_pred_filtered['Probability'] < 1.5].index for i in low_prob_indices: y_pred_int_i = y_pred_int[i] y_test_i = y_test[i] mse_i = ((y_test_i - y_pred_int_i) ** 2).mean(axis=None) new_prob_i = 1 / (1 + mse_i - ((y_pred_int_i - y_test_i) ** 2).mean(axis=None)) y_pred_filtered.at[i, 'Probability'] = new_prob_i # 打印带有概率的预测结果 print('Predicted values with probabilities:') print(y_pred_filtered)

2023-05-28 上传

import pandas as pd from keras.models import load_model from sklearn.preprocessing import MinMaxScaler # 加载已经训练好的kerasBP模型 model = load_model('D://model.h5') # 读取Excel文件中的数据 data = pd.read_excel('D://数据1.xlsx', sheet_name='4') # 对数据进行预处理,使其符合模型的输入要求 # 假设模型的输入是一个包含4个特征的向量 # 需要将Excel中的数据转换成一个(n, 4)的二维数组 X = data[['A', 'B', 'C', 'D']].values # 使用模型进行预测 y_pred = model.predict(X) scaler_y = MinMaxScaler(feature_range=(0, 4)) # 对预测结果进行反归一化 y_pred_int = scaler_y.inverse_transform(y_pred).round().astype(int) # 构建带有概率的预测结果 y_pred_prob = pd.DataFrame(y_pred_int, columns=data.columns[:4]) # 计算 mse y_test = data['y_true'].values mse = ((y_test - y_pred) ** 2).mean(axis=None) # 计算每个预测结果的概率并添加到 y_pred_prob 中 y_pred_prob['Probability'] = 1 / (1 + mse - ((y_pred_int - y_test) ** 2).mean(axis=None)) # 过滤掉和值超过6或小于6的预测值 y_pred_filtered = y_pred_prob[(y_pred_prob.iloc[:, :4].sum(axis=1) == 6)] # 去除重复的行 y_pred_filtered = y_pred_filtered.drop_duplicates() # 重新计算低于1.5的 Probability 值 low_prob_indices = y_pred_filtered[y_pred_filtered['Probability'] < 1.5].index for i in low_prob_indices: y_pred_int_i = y_pred_int[i] y_test_i = y_test[i] mse_i = ((y_test_i - y_pred_int_i) ** 2).mean(axis=None) new_prob_i = 1 / (1 + mse_i - ((y_pred_int_i - y_test_i) ** 2).mean(axis=None)) y_pred_filtered.at[i, 'Probability'] = new_prob_i # 打印带有概率的预测结果 print('Predicted values with probabilities:') print(y_pred_filtered)这段程序中错误是由于使用了尚未拟合的MinMaxScaler实例导致的。在使用scikit-learn中的任何转换器之前,都需要先使用fit方法进行拟合,以便转换器可以学习数据的范围和分布。你需要在调用inverse_transform方法之前使用fit方法对MinMaxScaler进行拟合,代码怎么修改

2023-05-28 上传