'保護個人數據集隱私,怎麼少得了Python和Pandas'

"
全文共2256字,預計學習時長4分鐘
"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

保護個人數據集隱私,怎麼少得了Python和Pandas

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來將進行兩項邏輯迴歸分析,以比較隱私保護的應用會如何影響數據集的分析價值。


首先對原始(初始)數據進行分析:

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來將進行兩項邏輯迴歸分析,以比較隱私保護的應用會如何影響數據集的分析價值。


首先對原始(初始)數據進行分析:

保護個人數據集隱私,怎麼少得了Python和Pandas

最後對隱私保護的數據進行分析:

"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來將進行兩項邏輯迴歸分析,以比較隱私保護的應用會如何影響數據集的分析價值。


首先對原始(初始)數據進行分析:

保護個人數據集隱私,怎麼少得了Python和Pandas

最後對隱私保護的數據進行分析:

保護個人數據集隱私,怎麼少得了Python和Pandas

如圖所示,儘管最後出現了極小的精度損失(0.26%),但潛在數據的隱私得到了保護。


在實踐中,數據集越大性能就越好:觀察結果越多,意味著更多的機會觀察值會被分到等值種類中(k群),因而滿足隱私模型的約束條件也就更容易。這表明,數據集變大,精確度會提高。


"
全文共2256字,預計學習時長4分鐘
保護個人數據集隱私,怎麼少得了Python和Pandas

圖片來源:unsplash.com/@dmey503


工作中處理含敏感信息的數據集是有風險的。一旦這類數據在數據集中出現,數據科學家們應謹慎再謹慎。


人們通常認為,處理敏感信息時,只要刪除姓名、ID及信用卡卡號就能保護個人隱私。這其實是誤解。儘管刪除直接識別信息能起到一定作用,但人們能通過數據集裡很多其他信息來重新識別個體。


比方說,哈佛大學定量社會分析學院(IQSS)數據隱私實驗室的主管娜塔尼亞·斯威尼(Latanya Sweeney)就證實道,87%的美國人身份可通過郵政編碼、性別及出生日期被再次確認。


本文將介紹如何有效降低數據集的隱私風險,並同時維持其分析價值,以開展機器學習。


接下來的例子將使用在數據科學家中備受歡迎的工作平臺Jupyter Notebooks,運用原始數據和隱私保護的數據來預測工薪階層。本文將運用CryptoNumerics的隱私文件庫進行隱私算法,運用sklearn進行迴歸分析。


CryptoNumerics隱私文件庫文獻:https://cryptonumerics.com/cn-protect-for-data-science/?utm_source=DZone


現在來看看例子吧。


首先,輸入文件庫。

保護個人數據集隱私,怎麼少得了Python和Pandas


將數據集讀入Pandas。

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來選擇隱私模型。本案例將使用k匿名(k-anonymity)。如果個體無法被k-1個體識別,那麼該數據集就是k匿名的。換句話說,數據集裡每個數據點都在一個數據組群中,該組群中至少有k個數據點不會被攻擊者識別。現在將k值設為5,但是k值可以根據風險需求進行調整。

保護個人數據集隱私,怎麼少得了Python和Pandas

之後選擇一個質量模型。如果隱私模型被定義為隱私約束條件,鑑於此,質量模型需要進行優化。因而系統默認值為“信息損失”或簡寫為“損失”。基本上質量模型需要涵蓋一個隱私的數據集,且同時將損失的信息減至最少。

保護個人數據集隱私,怎麼少得了Python和Pandas

廣義上,有兩種方式可以修改數據集並保護隱私,但這最終也會引發信息損失:


一般化——每一欄都被替換成更一般化的數據。比如,郵編被泛化後要編輯字符,那麼12345或12346都將被替換成123**。再比如,年齡19、25、26都將換成區間,也就是[10-19]及[20-29]。


抑制——每一行都將從數據集中移除(由空字符*代替)。當某些特殊的數據點難以概括時,抑制是有效的。比如,當僅有一人在[60-80]的年齡區間,且不希望數據點被識別時,與其創造一個更大的年齡區間(假設[40-80]),不如直接將此人從數據集中移除,只保留內容詳實且隱私的信息。


但是實施抑制的過程就如參數一般,是一場交易。人們可以設置抑制的界限,即算法最多可抑制的行數。假設設置界限為0.1,那麼不超過(有可能遠遠小於)10%的行數會被編輯。換句話說,就是將最多10%的行數定為可移除的“異常值”。

保護個人數據集隱私,怎麼少得了Python和Pandas


現在將四種隱私特質分配給數據:


識別性:這類數據,如社會安全號碼,可以憑藉自身輕鬆地對他人進行重新識別。


準識別性:這類數據本身在重新識別方面風險較小。在與其他數據並行時,它們能可靠地連接到公開記錄中的信息。這類數據包括性別、郵編及出生日期。


敏感性:這類數據不會給重新識別帶來風險,但是一旦揭露了個人紀錄,客戶會受到傷害。具體例子如醫療診斷、政治性捐款及網絡瀏覽歷史。


不靈敏性:這類數據點沒有隱私風險。


保護個人數據集隱私,怎麼少得了Python和Pandas


完成數據集隱私保護的最後一個步驟是創造層級。


運用層級是為了讓算法能夠概括列。一個層級可辨別保護隱私的方式,比如,依據不同的概括度,層級可以用以下間隔[10-14]、[10-19]、[0-19]來替換年齡11。


有幾種方式可以自動創造層級,或在DataFrame中手動將層級分類。首先,本文將運用OrderHierarchy自動地創造一個年齡層級。在創造層級的方式中,OrderHierarchy不僅是最簡單的方式之一,且很好地滿足了多種需求。第一個參數“間隔”表明輸出的格式應為[最低-最高]。剩下的參數(用乘法)表明間隔的大小。舉例來說,5,2,2意味著為大小為5,10,20的間隔提供選項。由於OrderHierarchy總是從數據集中最小的元素開始,因此最小的間隔總是像[17-26]這樣的間隔。

保護個人數據集隱私,怎麼少得了Python和Pandas


剩下的層級可以通過.csv文檔中的數據框架進行分類。接下來展示的是教育層級。每一列指定了一種概括程度,第一列包含了所有可能的原始數據值,連續的每一列都代表更深入的概括程度。最後一個級別表示列的完全移除。請注意,本文用括號註明了何種程度的概括曾被使用,在實踐中無需如此。

保護個人數據集隱私,怎麼少得了Python和Pandas


所有參數都已設置完畢,現在將運用保護目標上的protect()進行轉化。結果顯示了符合隱私模型標準的匿名數據框架(只要數據框架尚存的話)。要注意的是,其形狀仍與原本的一樣,因為被移除或被概括的單元格均直接用*表示。

保護個人數據集隱私,怎麼少得了Python和Pandas


再看看一些重要數據:


信息損失表明被編輯信息的比重,這是經過優化的值。


最高風險指的是數據集的隱私風險。數據集裡一個個體被重新識別的可能性為20%。


最小種類大小即k值。本文早些時候將其設為5.

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

保護個人數據集隱私,怎麼少得了Python和Pandas

接下來將進行兩項邏輯迴歸分析,以比較隱私保護的應用會如何影響數據集的分析價值。


首先對原始(初始)數據進行分析:

保護個人數據集隱私,怎麼少得了Python和Pandas

最後對隱私保護的數據進行分析:

保護個人數據集隱私,怎麼少得了Python和Pandas

如圖所示,儘管最後出現了極小的精度損失(0.26%),但潛在數據的隱私得到了保護。


在實踐中,數據集越大性能就越好:觀察結果越多,意味著更多的機會觀察值會被分到等值種類中(k群),因而滿足隱私模型的約束條件也就更容易。這表明,數據集變大,精確度會提高。


保護個人數據集隱私,怎麼少得了Python和Pandas

留言 點贊 關注

我們一起分享AI學習與發展的乾貨

"

相關推薦

推薦中...