韦奕帆 2019-12-07 17:11 采纳率: 0%
浏览 5919
已结题

就剩这个问题没解决了:TypeError: 'function' object is not subscriptable拜托请教大家!

图片说明图片说明
import pandas as pd
import numpy as np
from GM11 import GM11 # 引入自己编写的灰色预测函数
data = pd.read_csv('D:\软件\python\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\'
'《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\数据及代码\chapter13\test\data\data1.csv',engine='python')
data.index = range(1994,2014)
data
data.loc[2014] = None
data.loc[2015] = None
h = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']
P = []
C = []
for i in h:
gm = GM11(data[i][:-2].values)[0] # 利用返回的灰色预测函数,仅和对对应期数及位置有关
f = gm([0] ) ##获得灰色预测函数
P = gm[-1] # 获得小残差概率
C = gm[-2] # 获得后验比差值
data[i][2014] = f(len(data) - 1)
data[i][2015] = f(len(data))
data[i] = data[i].round(2)
if (C < 0.35 and P > 0.95): # 评测后验差判别
print( '对于模型%s,该模型精度为---好' % i)
elif (C < 0.5 and P > 0.8):
print('对于模型%s,该模型精度为---合格' % i)
elif (C < 0.65 and P > 0.7):
print('对于模型%s,该模型精度为---勉强合格' % i)
else:
print('对于模型%s,该模型精度为---不合格' % i)
data[h + ['y']].to_excel('D:\软件\python\《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\'
'《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码\数据及代码\chapter13\test\data\2_1_2_1greyPredict(最新5).xlsx')

补充:
gm为自定义函数:
def GM11(x0): #自定义灰色预测函数
import numpy as np
x1 = x0.cumsum() #1-AGO序列
z1 = (x1[:len(x1)-1] + x1[1:])/2.0 #紧邻均值(MEAN)生成序列
z1 = z1.reshape((len(z1),1))
B = np.append(-z1, np.ones_like(z1), axis = 1)
Yn = x0[1:].reshape((len(x0)-1, 1))
[[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn) #计算参数
f = lambda k: (x0[0]-b/a)*np.exp(-a*(k-1))-(x0[0]-b/a)*np.exp(-a*(k-2)) #还原值
delta = np.abs(x0 - np.array([f(i) for i in range(1,len(x0)+1)]))
C = delta.std()/x0.std()
P = 1.0*(np.abs(delta - delta.mean()) < 0.6745*x0.std()).sum()/len(x0)
return f, a, b, x0[0], C, P #返回灰色预测函数、a、b、首项、方差比、小残差概率

  • 写回答

3条回答 默认 最新

  • weixin_42062762 2019-12-07 17:32
    关注

    对你这个是个函数 传参数怎么是中括号?把中括号去掉 改成小括号试试 不清楚 你这个方法参数到底是什么

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料