App下載

Python包使用:使用 Faker 生成有意義的模擬數(shù)據(jù)

饕餮少女 2021-09-07 10:25:32 瀏覽數(shù) (3003)
反饋

Faker是一個開源 Python 包,可生成合成數(shù)據(jù),可用于多種用途,例如填充數(shù)據(jù)庫、進(jìn)行負(fù)載測試或匿名化生產(chǎn)數(shù)據(jù)以用于開發(fā)或機(jī)器學(xué)習(xí)。生成完全隨機(jī)的數(shù)據(jù)并不是一個好的選擇:使用 Faker,你可以驅(qū)動生成過程并根據(jù)你的特定需求定制生成的數(shù)據(jù):這是 Faker 提供的最大價值。這個包帶有 23 個內(nèi)置的數(shù)據(jù)提供者,一些其他的提供者可以從社區(qū)獲得。可用的數(shù)據(jù)提供程序涵蓋了大多數(shù)數(shù)據(jù)類型和案例,但通過實現(xiàn)自定義提供程序,可以通過任何方式使生成的數(shù)據(jù)更有意義。

Faker 支持 Python 3.6+,可通過 PyPI 或 Anaconda 安裝。 

下面是一個代碼示例,展示了如何實現(xiàn)自定義提供程序以生成遵循結(jié)構(gòu)和約束的合成數(shù)據(jù),如與具有消費者評級的餐廳數(shù)據(jù)相關(guān)的?Kaggle數(shù)據(jù)集,并將它們保存到 CSV 文件中。

示例數(shù)據(jù)集包含用戶配置文件數(shù)據(jù)并具有 19 個特征。為簡單起見,我將只考慮其中的 10 個:

  • userID:以“U”開頭,后跟 4 位數(shù)字
  • latitude:-90、90度范圍內(nèi)的十進(jìn)制數(shù)
  • longitude:-180、180度范圍內(nèi)的十進(jìn)制數(shù)
  • smoker:可真可假
  • Drink_level: 節(jié)制的、隨意的飲酒者或社交飲酒者
  • dress_preference:無偏好,正式或非正式
  • ambience:孤獨、家人或朋友
  • transport:步行、車主或公眾
  • marital_status:單身、已婚或寡婦
  • hijos:獨立、依賴或孩子

可以為此功能生成模擬數(shù)據(jù)的 Python 代碼如下:

它結(jié)合了一個內(nèi)置的 Faker 提供程序和一個自定義的提供程序。該 Faker 類創(chuàng)建并初始化 Faker 生成器,將數(shù)據(jù)生成委托給提供程序。

以下是執(zhí)行上述代碼后生成的數(shù)據(jù)示例:

Faker 支持本地化(對于同一數(shù)據(jù)生成任務(wù)也有多個語言環(huán)境),并且也可以通過faker命令從命令行執(zhí)行。


0 人點贊