失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Pandas数据分析33——数据多条件筛选(点估计和区间估计评价指标)

Pandas数据分析33——数据多条件筛选(点估计和区间估计评价指标)

时间:2020-02-08 04:07:29

相关推荐

Pandas数据分析33——数据多条件筛选(点估计和区间估计评价指标)

本次是写论文代码区间估计评价指标有感.....

数据框有两列的时候,我们想筛选A列大于B列的样本出来时,只需要用布尔值索引就行:

df[df['A']>df['B]]

可是多条件的筛选的时候怎么办,比如我需要A大于B列,还有A小于C列。

可以写多条件的索引:

df[(df['actual']>df['Low']) &(df['actual']<df['Upper'])]

在做区间估计的评价指标的时候,我想找出预测的真实值小于最大值和大于最小值的情况的个数,可以用上面的方法,还可以用一个更加简单的方法:

df.query('Low<actual<Upper')

也可以复杂点,用新增列布尔值去逻辑运算,多条件判断,找到不符合情况的样本的布尔值,然后去索引。

df[df.assign(up=df.Upper<df.actual).assign(lo=df.Low>df.actual).assign(bo=lambda d:d[['up','lo']].any(axis=1))['bo']]

区间估计指标

这里给出论文里面的四个区间估计的评价指标公式:

PICP:

PINAW:

CWC:

还有一个新指标PIEE:

他们各有各的优缺点,要结合起来看,

下面给出他们的计算代码函数:

import numpy as npimport pandas as pddef PICP(df_alltau,y_test,u=0.9):df=pd.DataFrame()df['Low']=np.array(df_alltau.T.min())df['Upper']=np.array(df_alltau.T.max())df['actual']=np.array(y_test)picp=len(df.query('Low<actual<Upper'))/len(y_test)df['inter']=df['Upper']-df['Low']rax=df['actual'].max()-df['actual'].min()pinaw=df['inter'].mean()/raxgama=np.greater(0,(picp-u))*1#print(gama)cwc=pinaw*(1+gama*np.exp(-(picp-u)))eup=df[df.assign(up=df.Upper<df.actual).up].assign(inter2=df.actual-df.Upper)['inter2'].sum()elo=df[df.assign(up=df.Low>df.actual).up].assign(inter2=df.Low-df.actual)['inter2'].sum()piee=(eup+elo)/(len(y_test)*rax)return picp,pinaw,cwc,piee

df_alltau就是预测的区间估计值(对一个y预测了很多可能性),y_test就是测试集数据。

u是CWC的PICP阈值,这里取了0.9。 aita为了方便取1了。

最难整的就是PIEE,我筛选了很久.....

点估计评价指标

回归问题的点估计评价指标很常用,通常是MAE,RMSE,MAPE,r/R^{2}等,给出他们四个的计算代码:

import numpy as npimport pandas as pdfrom sklearn.metrics import mean_absolute_errorfrom sklearn.metrics import mean_squared_error,r2_scoredef evaluation(y_test, y_predict):y_test=np.array(y_test);y_predict=np.array(y_predict)mae = mean_absolute_error(y_test, y_predict)mse = mean_squared_error(y_test, y_predict)rmse = np.sqrt(mean_squared_error(y_test, y_predict))mape=(abs(y_predict -y_test)/ y_test).mean()r_2=r2_score(y_test, y_predict)return mae, rmse, mape,r_2

如果觉得《Pandas数据分析33——数据多条件筛选(点估计和区间估计评价指标)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。