第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 AIF360 計算群體公平性指標(biāo)

使用 AIF360 計算群體公平性指標(biāo)

皈依舞 2023-12-29 15:11:34
我想使用AIF360計算群體公平性指標(biāo)。這是一個示例數(shù)據(jù)集和模型,其中性別是受保護的屬性,收入是目標(biāo)。import pandas as pdfrom sklearn.svm import SVCfrom aif360.sklearn import metricsdf = pd.DataFrame({'gender': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],                  'experience': [0, 0.1, 0.2, 0.4, 0.5, 0.6, 0, 0.1, 0.2, 0.4, 0.5, 0.6],                  'income': [0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1]})clf = SVC(random_state=0).fit(df[['gender', 'experience']], df['income'])y_pred = clf.predict(df[['gender', 'experience']])metrics.statistical_parity_difference(y_true=df['income'], y_pred=y_pred, prot_attr='gender', priv_group=1, pos_label=1)它拋出:---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-7-609692e52b2a> in <module>     11 y_pred = clf.predict(X)     12 ---> 13 metrics.statistical_parity_difference(y_true=df['income'], y_pred=y_pred, prot_attr='gender', priv_group=1, pos_label=1)TypeError: statistical_parity_difference() got an unexpected keyword argument 'y_true'類似的錯誤disparate_impact_ratio。似乎數(shù)據(jù)需要以不同的方式輸入,但我一直無法弄清楚如何輸入。
查看完整描述

3 回答

?
慕娘9325324

TA貢獻1783條經(jīng)驗 獲得超4個贊

這可以通過將數(shù)據(jù)轉(zhuǎn)換為 aStandardDataset然后調(diào)用fair_metrics以下函數(shù)來完成:

from aif360.datasets import StandardDataset

from aif360.metrics import BinaryLabelDatasetMetric, ClassificationMetric


dataset = StandardDataset(df,?

? ? ? ? ? ? ? ? ? ? ? ? ? label_name='income',?

? ? ? ? ? ? ? ? ? ? ? ? ? favorable_classes=[1],?

? ? ? ? ? ? ? ? ? ? ? ? ? protected_attribute_names=['gender'],?

? ? ? ? ? ? ? ? ? ? ? ? ? privileged_classes=[[1]])


def fair_metrics(dataset, y_pred):

? ? dataset_pred = dataset.copy()

? ? dataset_pred.labels = y_pred

? ? ? ??

? ? attr = dataset_pred.protected_attribute_names[0]

? ??

? ? idx = dataset_pred.protected_attribute_names.index(attr)

? ? privileged_groups =? [{attr:dataset_pred.privileged_protected_attributes[idx][0]}]?

? ? unprivileged_groups = [{attr:dataset_pred.unprivileged_protected_attributes[idx][0]}]?


? ? classified_metric = ClassificationMetric(dataset, dataset_pred, unprivileged_groups=unprivileged_groups, privileged_groups=privileged_groups)


? ? metric_pred = BinaryLabelDatasetMetric(dataset_pred, unprivileged_groups=unprivileged_groups, privileged_groups=privileged_groups)


? ? result = {'statistical_parity_difference': metric_pred.statistical_parity_difference(),

? ? ? ? ? ? ?'disparate_impact': metric_pred.disparate_impact(),

? ? ? ? ? ? ?'equal_opportunity_difference': classified_metric.equal_opportunity_difference()}

? ? ? ??

? ? return result



fair_metrics(dataset, y_pred)

它返回正確的結(jié)果(圖像參考):


{'statistical_parity_difference': -0.6666666666666667,

?'disparate_impact': 0.3333333333333333,

?'equal_opportunity_difference': 0.0}

https://img1.sycdn.imooc.com/658e715f0001d3a623251114.jpg

查看完整回答
反對 回復(fù) 2023-12-29
?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

刪除函數(shù)調(diào)用中的y_true=和字符并重試。正如在文檔y_pred=中所看到的,函數(shù)原型中代表任意數(shù)量的參數(shù)。所以這是最符合邏輯的猜測。*y

換句話說,y_truey_pred不是關(guān)鍵字參數(shù)。所以他們不能通過他們的名字來傳遞。**kwargs關(guān)鍵字參數(shù)在函數(shù)原型中表示。


查看完整回答
反對 回復(fù) 2023-12-29
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

我有同樣的問題。y_pred_default是數(shù)組類型,整個數(shù)據(jù)集是Dataframe。但是,如果將 y_pred_default 轉(zhuǎn)換為數(shù)據(jù)幀,您將丟失值的順序,因此它將向新數(shù)據(jù)集顯示 nan 值。所以我將數(shù)據(jù)集轉(zhuǎn)換為 numpy 數(shù)組,然后與 y_pred_default 數(shù)組連接并轉(zhuǎn)換為數(shù)據(jù)幀。此外,您還必須首先更改列名稱,因為現(xiàn)在有數(shù)字。通過這樣做,你就得到了你想要的。包含 x 值和相應(yīng) y 預(yù)測值的數(shù)據(jù)框,用于計算 spd 指標(biāo)。



查看完整回答
反對 回復(fù) 2023-12-29
  • 3 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號