国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python特征生成作用和生成的方法

數據分析與開發 ? 來源:CSDN ? 作者:python阿喵 ? 2021-03-10 15:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

創造新的特征是一件十分困難的事情,需要豐富的專業知識和大量的時間。機器學習應用的本質基本上就是特征工程。——Andrew Ng

業內常說數據決定了模型效果上限,而機器學習算法是通過數據特征做出預測的,好的特征可以顯著地提升模型效果。這意味著通過特征生成(即從數據設計加工出模型可用特征),是特征工程相當關鍵的一步。

本文從特征生成作用、特征生成的方法(人工設計、自動化特征生成)展開闡述并附上代碼。

1 特征生成的作用

特征生成是特征提取中的重要一步,作用在于:

增加特征的表達能力,提升模型效果;(如體重除以身高就是表達健康情況的重要特征,而單純看身高或體重,對健康情況表達就有限。)

可以融入業務上的理解設計特征,增加模型的可解釋性;

2 一鍵數據情況分析

本文示例的數據集是客戶的資金變動情況,如下數據字典:

cust_no:客戶編號;I1 :性別;I2:年齡;E1:開戶日期; B6 :近期轉賬日期;C1 (后綴_fir表示上個月):存款;C2:存款產品數; X1:理財存款;X2:結構性存款; label:資金情況上升下降情況。

75030a1c-7efa-11eb-8b86-12bb97331649.png

這里安利一個超實用Python庫,可以一鍵數據分析(數據概況、缺失、相關性、異常值等等),方便結合數據分析報告做特征生成。

#一鍵數據分析 importpandas_profiling pandas_profiling.ProfileReport(df)

3 特征生成方法(手動)

特征生成方法可以分為兩類:聚合方式、轉換方式。

3.1 聚合方式

聚合方式是指對存在一對多的字段,將其對應多條記錄分組聚合后統計平均值、計數、最大值等數據特征。如以上述數據集,同一cust_no對應多條記錄,通過對cust_no(客戶編號)做分組聚合,統計C1字段個數、唯一數、平均值、中位數、標準差、總和、最大、最小值,最終得到按每個cust_no統計的C1平均值、最大值等特征。

#以cust_no做聚合,C1字段統計個數、唯一數、平均值、中位數、標準差、總和、最大、最小值 df.groupby('cust_no').C1.agg(['count','nunique','mean','median','std','sum','max','min'])

此外還可以pandas自定義聚合函數生成特征,比如加工聚合元素的平方和:

#自定義分組聚合統計函數 defx2_sum(group): returnsum(group**2) df.groupby('cust_no').C1.apply(x2_sum)

3.2 轉換方式

轉換方式是指對字段間做加減乘除等運算生成數據特征的過程,對不同字段類型有不同轉換方式。

3.2.1 數值類型

加減乘除多個字段做運算生成新的特征,這通常需要結合業務層面的理解以及數據分布的情況,以生成較優的特征集。

importnumpyasnp #前后兩個月資金和 df['C1+C1_fir']=df['C1']+df['C1_fir'] #前后兩個月資金差異 df['C1-C1_fir']=df['C1']-df['C1_fir'] #產品數*資金 df['C1*C2']=df['C1']*df['C2'] #前后兩個月資金變化率 df['C1/C1_fir']=df['C1']/df['C1_fir']-1 df.head()

多個列統計直接用聚合函數統計多列的方差、均值等

764b13ce-7efa-11eb-8b86-12bb97331649.png

importnumpyasnp df['C1_sum']=np.sum(df[['C1_fir','C1']],axis=1) df['C1_var']=np.var(df[['C1_fir','C1']],axis=1) df['C1_max']=np.max(df[['C1_fir','C1']],axis=1) df['C1_min']=np.min(df[['C1_fir','C1']],axis=1) df['C1-C1_fir_abs']=np.abs(df['C1-C1_fir']) df.head()

排名編碼特征按特征值對全體樣本進行排序,以排序序號作為特征值。這種特征對異常點不敏感,也不容易導致特征值沖突。

#排序特征 df['C1_rank']=df['C1'].rank(ascending=0,method='dense') df.head()76778a26-7efa-11eb-8b86-12bb97331649.png

3.2.2 字符類型

截取當字符類型的值過多,通常可對字符類型變量做截取,以減少模型過擬合。如具體的家庭住址,可以截取字符串到城市級的粒度。

字符長度統計字符串長度。如轉賬場景中,轉賬留言的字數某些程度可以刻畫這筆轉賬的類型。

頻次通過統計字符出現頻次。如欺詐場景中地址出現次數越多,越有可能是團伙欺詐。

#字符特征 #由于沒有合適的例子,這邊只是用代碼實現邏輯,加工的字段并無含義。 #截取第一位字符串 df['I1_0']=df['I1'].map(lambdax:str(x)[:1]) #字符長度 df['I1_len']=df['I1'].apply(lambdax:len(str(x))) display(df.head()) #字符串頻次 df['I1'].value_counts()

3.2.3 日期類型

常用的有計算日期間隔、周幾、幾點等等。

76965c9e-7efa-11eb-8b86-12bb97331649.png

#日期類型 df['E1_B6_interval']=(df.E1.astype('datetime64[ns]')-df.B6.astype('datetime64[ns]')).map(lambdax:x.days) df['E1_is_month_end']=pd.to_datetime(df.E1).map(lambdax:x.is_month_end) df['E1_dayofweek']=df.E1.astype('datetime64[ns]').dt.dayofweek df['B6_hour']=df.B6.astype('datetime64[ns]').dt.hour df.head()

4 特征生成方法(自動化)

傳統的特征工程方法通過人工構建特征,這是一個繁瑣、耗時且容易出錯的過程。自動化特征工程是通過Fearturetools等工具,從一組相關數據表中自動生成有用的特征的過程。對比人工生成特征會更為高效,可重復性更高,能夠更快地構建模型。

4.1 FeatureTools上手

Featuretools是一個用于執行自動化特征工程的開源庫,它有基本的3個概念:1)Feature Primitives(特征基元):生成特征的常用方法,分為聚合(agg_primitives)、轉換(trans_primitives)的方式。可通過如下代碼列出featuretools的特征加工方法及簡介。

importfeaturetoolsasft ft.list_primitives()

771610b0-7efa-11eb-8b86-12bb97331649.png

2)Entity(實體)可以被看作類似Pandas DataFrame, 多個實體的集合稱為Entityset。實體間可以根據關聯鍵添加關聯關系Relationship。

#df1為原始的特征數據 df1=df.drop('label',axis=1) #df2為客戶清單(cust_no唯一值) df2=df[['cust_no']].drop_duplicates() df2.head() #定義數據集 es=ft.EntitySet(id='dfs') #增加一個df1數據框實體 es.entity_from_dataframe(entity_id='df1', dataframe=df1, index='id', make_index=True) #增加一個df2數據實體 es.entity_from_dataframe(entity_id='df2', dataframe=df2, index='cust_no') #添加實體間關系:通過 cust_no鍵關聯 df_1 和 df 2實體 relation1=ft.Relationship(es['df2']['cust_no'],es['df1']['cust_no']) es=es.add_relationship(relation1)

3)dfs(深度特征合成):是從多個數據集創建新特征的過程,可以通過設置搜索的最大深度(max_depth)來控制所特征生成的復雜性

##運行DFS特征衍生 features_matrix,feature_names=ft.dfs(entityset=es, target_entity='df2', relationships=[relation1], trans_primitives=['divide_numeric','multiply_numeric','subtract_numeric'], agg_primitives=['sum'], max_depth=2,n_jobs=1,verbose=-1)

4.2 FeatureTools問題點

4.2.1 內存溢出問題Fearturetools是通過工程層面暴力生成所有特征的過程,當數據量大的時候,容易造成內存溢出。解決這個問題除了升級服務器內存,減少njobs,還有一個常用的是通過只選擇重要的特征進行暴力衍生特征。

4.2.2 特征維度爆炸當原始特征數量多,或max_depth、特征基元的種類設定較大,Fearturetools生成的特征數量巨大,容易維度爆炸。這是就需要考慮到特征選擇、特征降維。

原文標題:一文歸納Python特征生成方法(全)

文章出處:【微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7335

    瀏覽量

    94755
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136928
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90024

原文標題:一文歸納Python特征生成方法(全)

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    自動駕駛場景生成方法及優選方案:康謀aiSim 3DGS方案重塑行業標準

    在自動駕駛技術飛速發展的當下,仿真測試的重要性愈發凸顯,而 自動駕駛場景生成 作為仿真測試的核心環節,其技術水平直接決定了測試的效率與可靠性。面對傳統場景生成方式的諸多痛點,基于生成式AI的4D場景
    的頭像 發表于 02-02 17:39 ?346次閱讀

    數字標準單元庫的工藝設計套件生成步驟

    本文將詳細介紹數字標準單元庫的工藝設計套件(PDK)生成步驟。
    的頭像 發表于 02-02 16:14 ?259次閱讀
    數字標準單元庫的工藝設計套件<b class='flag-5'>生成</b>步驟

    京東零售廣告創意:統一的布局生成和評估模型

    至關重要的作用。當前的布局生成方法在能力上具有任務特定性,并且評估標準與人類感知不一致,導致其應用范圍有限且評估效果不佳。為了解決這些問題,Uni-Layout實現了統一生成、模擬人類的評估以及二者之間的對齊。針對通用
    的頭像 發表于 01-13 16:18 ?1016次閱讀
    京東零售廣告創意:統一的布局<b class='flag-5'>生成</b>和評估模型

    大模型支撐后勤保障方案生成系統:功能特點與平臺架構解析

    ? ? 大模型支撐后勤保障方案生成系統:功能特點與平臺架構解析 ? ?大模型支撐后勤保障方案生成系統憑借智能預測、動態調度、路徑優化、庫存管理及可視化展示等核心能力,為后勤保障方案生成系統提供關鍵
    的頭像 發表于 12-17 15:49 ?307次閱讀

    不只有AI協作編程(Vibe Coding):生成式系統級芯片(GenSoC)將如何把生成式設計推向硬件層面

    但是否能將這種生成式的、目標驅動的方法從軟件層向下延伸呢?這一理念是否可以直接應用于硬件本身呢?通過GenSoC,開發者可用自然語言或高級模型描述系統行為,XMOS的工具鏈將自動生成確定的、實時的、可重構的SoC,并可即刻直接部
    的頭像 發表于 11-07 14:04 ?532次閱讀

    語法糾錯和testbench的自動生成

    ,回到寫好的Verilog代碼,按住ctrl+shift+p,在彈出的搜索框里輸入testbench。 點擊后會自動將當前模塊的testbench生成在終端框內。 當然,本質上該插件還是通過python來實現的,因此要實現自動
    發表于 10-27 07:07

    如何通過地址生成器實現神經網絡特征圖的padding?

    ,從而使卷積輸出特征圖結果滿足我們的需求,這種補零的操作稱之為padding,如下圖所示。 關于padding的實現,一般有兩種操作,第一種是使用稀疏地址生成器,尋找padding數據地址的規律,當
    發表于 10-22 08:15

    探索無限可能:生成式推薦的演進、前沿與挑戰

    )的生成式推薦(Generative Recommendations, GRs)正逐步形成一種區別于判別式推薦的新范式,展現出替代依賴復雜手工特征的傳統推薦系統的強大潛力。本文系統全面地介紹了基于LLM的生成式推薦系統(GRs)
    的頭像 發表于 10-20 16:42 ?6366次閱讀
    探索無限可能:<b class='flag-5'>生成</b>式推薦的演進、前沿與挑戰

    如何讓大模型生成你想要的測試用例?

    ,有角色定位,有業務背景,有個人偏好,有目標達成標準,有格式規范要求等,讓智能模板充當你的個人翻譯官,充分發揮每一句設定提示詞的作用和價值,生成屬于你想要風格的測試
    的頭像 發表于 09-26 10:01 ?944次閱讀
    如何讓大模型<b class='flag-5'>生成</b>你想要的測試用例?

    上海控安:基于模型的測試用例生成

    在當今復雜多變的軟件開發環境中,軟件系統的規模和復雜度不斷攀升,傳統測試方法面臨著諸多挑戰。如何高效、準確地生成測試用例,以確保軟件系統的質量和可靠性,成為軟件測試領域的關鍵問題之一。而基于模型
    的頭像 發表于 08-28 14:30 ?841次閱讀
    上海控安:基于模型的測試用例<b class='flag-5'>生成</b>

    智能體化AI和生成式AI的區別

    生成式 AI 的核心是“生成內容” —— 比如用大模型寫報告,是對輸入指令的被動響應。而智能體化 AI(Agentic AI)的關鍵是 “自主決策”:它像一個有經驗的助理,能感知環境、記憶習慣、規劃
    的頭像 發表于 08-25 17:24 ?1625次閱讀

    生成式 AI 重塑自動駕駛仿真:4D 場景生成技術的突破與實踐

    生成式AI驅動的4D場景技術正解決傳統方法效率低、覆蓋不足等痛點,如何通過NeRF、3D高斯潑濺等技術實現高保真動態建模?高效生成極端天氣等長尾場景?本文為您系統梳理AI驅動的4D場景生成
    的頭像 發表于 08-06 11:20 ?5144次閱讀
    <b class='flag-5'>生成</b>式 AI 重塑自動駕駛仿真:4D 場景<b class='flag-5'>生成</b>技術的突破與實踐

    Copilot操作指南(一):使用圖片生成原理圖符號、PCB封裝

    的操作方法。? ” ? 圖片生成原理圖符號(Symbol) Copilot 支持圖片生成原理圖符號功能,支持原理圖編輯器與符號編輯器兩種場景。只需在 Copilot 中? @圖片生成
    的頭像 發表于 07-15 11:14 ?4614次閱讀
    Copilot操作指南(一):使用圖片<b class='flag-5'>生成</b>原理圖符號、PCB封裝

    利用NVIDIA 3D引導生成式AI Blueprint控制圖像生成

    AI 賦能的圖像生成技術突飛猛進,從早期模型會生成手指過多的人類圖像,到現在能創造出令人驚嘆的逼真視覺效果。即使取得了如此飛躍,仍然存在一個挑戰:實現創意掌控。
    的頭像 發表于 06-05 09:24 ?890次閱讀

    ?Diffusion生成式動作引擎技術解析

    Diffusion生成式動作引擎 Diffusion生成式動作引擎是一種基于擴散模型(Diffusion Models)的生成式人工智能技術,專注于生成連續、逼真的人類動作或動畫序列。
    的頭像 發表于 03-17 15:14 ?3044次閱讀