# -*- coding: utf-8 -*- #Z为计算得到的十二个指标数据以.npy文件保存读取出来的结果 #对得到的Z进行空值处理 #判断指标之间是否存在较强的相关性 #进行标准化处理标准化 #进行主成分分析处理 #构建多元线性回归模型 #非线性神经网络模型构建任务定价模型 #根据上面的模型计算成本增加额R1和任务完成增加量R2 def return_values(): #根据计算出指标Z,以及构建的定价模型重新对任务重新定价 import pandas as pd #导入pandas库 import numpy as np #导入nmypy库 import math #导入数学函数模 import fun #导入定义的函数 A=pd.read_excel('附件一:已结束项目任务数据.xls') Z=np.load('Z.npy') return(R1,R2) 完整代码
时间: 2025-06-25 21:01:07 浏览: 1
以下是根据您的需求编写的完整代码,涵盖了从数据处理到模型构建的整个流程。代码分为几个部分:空值处理、相关性分析、标准化处理、主成分分析(PCA)、多元线性回归模型构建、非线性神经网络模型构建以及计算成本增加额 $R1$ 和任务完成增加量 $R2$。
```python
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import train_test_split
def return_values():
# 导入数据
A = pd.read_excel('附件一:已结束项目任务数据.xls')
Z = np.load('Z.npy') # 计算得到的十二个指标数据
# 数据预处理
# 空值处理:使用均值填充
Z = pd.DataFrame(Z)
Z.fillna(Z.mean(), inplace=True)
# 判断指标之间是否存在较强的相关性
correlation_matrix = Z.corr()
print("相关性矩阵:")
print(correlation_matrix)
# 标准化处理
scaler = StandardScaler()
Z_scaled = scaler.fit_transform(Z)
# 主成分分析处理
pca = PCA(n_components=0.95) # 保留95%的方差
Z_pca = pca.fit_transform(Z_scaled)
print(f"主成分分析后维度: {Z_pca.shape[1]}")
# 构建多元线性回归模型
X = Z_pca
y = A['目标变量'] # 假设目标变量在A中
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
linear_model = LinearRegression()
linear_model.fit(X_train, y_train)
y_pred_linear = linear_model.predict(X_test)
print("多元线性回归模型预测结果:", y_pred_linear[:5])
# 非线性神经网络模型构建
neural_model = MLPRegressor(hidden_layer_sizes=(64, 32), activation='relu', solver='adam', max_iter=1000)
neural_model.fit(X_train, y_train)
y_pred_neural = neural_model.predict(X_test)
print("非线性神经网络模型预测结果:", y_pred_neural[:5])
# 根据模型计算成本增加额 R1 和任务完成增加量 R2
R1 = np.sum(y_pred_neural - y_test) # 成本增加额
R2 = np.sum(y_pred_neural > y_test) # 任务完成增加量
print(f"成本增加额 R1: {R1}")
print(f"任务完成增加量 R2: {R2}")
# 返回计算结果
return R1, R2
```
### 代码解释
1. **数据导入与预处理**:
- 使用 `pandas` 读取 Excel 文件,并用 `numpy` 加载 `.npy` 文件。
- 对 `Z` 进行空值处理,采用均值填充的方式。
2. **相关性分析**:
- 使用 `pandas.DataFrame.corr()` 方法生成相关性矩阵,判断指标之间的相关性。
3. **标准化处理**:
- 使用 `StandardScaler` 对数据进行标准化,使每个特征的均值为 0,标准差为 1。
4. **主成分分析 (PCA)**:
- 使用 `PCA` 进行降维,保留 95% 的方差信息。
5. **多元线性回归模型**:
- 将数据分为训练集和测试集。
- 使用 `LinearRegression` 拟合模型,并对测试集进行预测。
6. **非线性神经网络模型**:
- 使用 `MLPRegressor` 构建多层感知机回归模型。
- 设置隐藏层结构为 `(64, 32)`,激活函数为 `ReLU`,优化器为 `Adam`。
7. **计算 $R1$ 和 $R2$**:
- $R1$ 表示成本增加额,通过预测值与实际值的差值求和计算。
- $R2$ 表示任务完成增加量,统计预测值大于实际值的数量。
---
###
阅读全文
相关推荐


















