亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

數據分桶在聯邦學習中的應用

2023-09-22 06:17:55
24
0

數據分桶是一種數據預處理技術,是一種將多個連續值分組為較少數量的“桶”的方法。

基于數據分桶的聯邦學習模型訓練方法,該方法通過將參與方的本地數據分為多個子數據集,使每個子數據集可以在本地進行模型訓練,以降低計算負載和通信開銷。同時,通過基于加密技術的模型聚合,保護數據隱私和模型安全。本發明主要應用于數據隱私敏感、計算負載大的場景,如醫療、金融等行業。

數據分桶 參與方將本地數據按照特定的規則進行分類分桶,得到多個子數據集。具體地,可以采用哈希函數、聚類等方式對數據進行分桶。在分桶的過程中,需要充分考慮到計算資源限制、數據隱私和通信效率等因素。

1、什么情況下需要數據分桶處理

數據量分布范圍廣,數據量大,這些數據可能包含各種類型的特征值,有些特征值分布不均,影響模型效果,分桶有利于提高后續交互壓力,提高計算性能

2、數據分桶原理

數據分桶的原理很簡單,就是將連續型特征的取值范圍劃分成若干個區間,并將每個數據點映射到對應的區間中。這樣,連續型特征就被轉換為了離散的類別。常見的數據分桶方法有等寬分桶和等頻分桶

2.1等寬分桶

1.確定分桶量

2.確定分桶寬度

3.根據分桶寬度將對應的數據分配到相應的分桶中

2.2等頻分桶

1.確定分桶數量

2.根據分桶數量將數據排序

3.將排序后的數據均勻分到每個分桶中

3、分桶在聯邦學習中的應用

全量imei預計在5億左右,單個文件比較大,上傳慢,客戶有15億左右的數據,雙方需要在fate平臺上完成psi,如果數據不提前預處理,開銷非常大,故采用分桶方式,大大提高效率

 

客戶雙方約定以下方式

 加密方式:
    - 手機號->md5->加鹽->sha256
    - 鹽值稍后郵件發送
分桶方式:
    - table['bucket_id'] = table[hash_key].apply(lambda x: mmh3.hash(x, 42) % n_bucket)  # 42 is random seed
    - 分50個桶, n_bucket = 50
    - namespace: aaaa
    - table_name: bbbbbbbbbb_$n, $n = 0 to 49 to do

具體可以參考以下py腳本

import pandas as pd 
import mmh3
 
# 讀數據到pandas dataframe
df = pd.read_csv('test.txt')
 
def hash_bucket_only_id(table, n_bucket, hash_key):
 
# 每條數據assign一個bucket_id
    table['bucket_id'] = table[hash_key].apply(lambda x: mmh3.hash(x, 42) % n_bucket)  # 42 is random seed
    for i in range(n_bucket):
        table[table['bucket_id'] == i][[hash_key]].to_csv('imei_hash/imei_' + hash_key + '_for_psi_hash_bucket_' + str(i) + '.csv',
                                                     header=True, index=False)
    return
 
# 一共分成50桶
n_bucket = 50
 
# 執行hash分桶
hash_bucket_only_id(df, n_bucket, 'hash_id')

 

三、總結

數據分桶是一種常見的數據預處理方法,在實際應用種,我們可以根據具體的需求選擇合適的數據分桶方法,以達到更好的效果。

0條評論
0 / 1000
jie潔杰
4文章數
0粉絲數
jie潔杰
4 文章 | 0 粉絲
jie潔杰
4文章數
0粉絲數
jie潔杰
4 文章 | 0 粉絲
原創

數據分桶在聯邦學習中的應用

2023-09-22 06:17:55
24
0

數據分桶是一種數據預處理技術,是一種將多個連續值分組為較少數量的“桶”的方法。

基于數據分桶的聯邦學習模型訓練方法,該方法通過將參與方的本地數據分為多個子數據集,使每個子數據集可以在本地進行模型訓練,以降低計算負載和通信開銷。同時,通過基于加密技術的模型聚合,保護數據隱私和模型安全。本發明主要應用于數據隱私敏感、計算負載大的場景,如醫療、金融等行業。

數據分桶 參與方將本地數據按照特定的規則進行分類分桶,得到多個子數據集。具體地,可以采用哈希函數、聚類等方式對數據進行分桶。在分桶的過程中,需要充分考慮到計算資源限制、數據隱私和通信效率等因素。

1、什么情況下需要數據分桶處理

數據量分布范圍廣,數據量大,這些數據可能包含各種類型的特征值,有些特征值分布不均,影響模型效果,分桶有利于提高后續交互壓力,提高計算性能

2、數據分桶原理

數據分桶的原理很簡單,就是將連續型特征的取值范圍劃分成若干個區間,并將每個數據點映射到對應的區間中。這樣,連續型特征就被轉換為了離散的類別。常見的數據分桶方法有等寬分桶和等頻分桶

2.1等寬分桶

1.確定分桶量

2.確定分桶寬度

3.根據分桶寬度將對應的數據分配到相應的分桶中

2.2等頻分桶

1.確定分桶數量

2.根據分桶數量將數據排序

3.將排序后的數據均勻分到每個分桶中

3、分桶在聯邦學習中的應用

全量imei預計在5億左右,單個文件比較大,上傳慢,客戶有15億左右的數據,雙方需要在fate平臺上完成psi,如果數據不提前預處理,開銷非常大,故采用分桶方式,大大提高效率

 

客戶雙方約定以下方式

 加密方式:
    - 手機號->md5->加鹽->sha256
    - 鹽值稍后郵件發送
分桶方式:
    - table['bucket_id'] = table[hash_key].apply(lambda x: mmh3.hash(x, 42) % n_bucket)  # 42 is random seed
    - 分50個桶, n_bucket = 50
    - namespace: aaaa
    - table_name: bbbbbbbbbb_$n, $n = 0 to 49 to do

具體可以參考以下py腳本

import pandas as pd 
import mmh3
 
# 讀數據到pandas dataframe
df = pd.read_csv('test.txt')
 
def hash_bucket_only_id(table, n_bucket, hash_key):
 
# 每條數據assign一個bucket_id
    table['bucket_id'] = table[hash_key].apply(lambda x: mmh3.hash(x, 42) % n_bucket)  # 42 is random seed
    for i in range(n_bucket):
        table[table['bucket_id'] == i][[hash_key]].to_csv('imei_hash/imei_' + hash_key + '_for_psi_hash_bucket_' + str(i) + '.csv',
                                                     header=True, index=False)
    return
 
# 一共分成50桶
n_bucket = 50
 
# 執行hash分桶
hash_bucket_only_id(df, n_bucket, 'hash_id')

 

三、總結

數據分桶是一種常見的數據預處理方法,在實際應用種,我們可以根據具體的需求選擇合適的數據分桶方法,以達到更好的效果。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0