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

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

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

3天內不再提示

數據挖掘任務最重要的特征抽取

上海磐啟微電子有限公司 ? 來源:數據STUDIO ? 作者:云朵君 ? 2021-09-01 09:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

特征抽取是數據挖掘任務最為重要的一個環節,一般而言,它對最終結果的影響要高過數據挖掘算法本身。

不幸的是,關于怎樣選取好的特征,還沒有嚴格、快捷的規則可循,其實這也是數據挖掘科學更像是一門藝術的所在。

創建好的規則離不開直覺,還需要專業領域知識和數據挖 掘經驗,光有這些還不夠,還得不停地嘗試、摸索,在試錯中前進,有時多少還要靠點運氣。

通常特征數量很多,但我們只想選用其中一小部分。有如下幾個原因。

1、降低復雜度

隨著特征數量的增加,很多數據挖掘算法需要更多的時間和資源。減少特征數量,是提高算法運行速度,減少資源使用的好方法。

2、降低噪音

增加額外特征并不總會提升算法的表現。額外特征可能擾亂算法的正常工作,這些額外特征間的相關性和模式沒有實際應用價值(這種情況在小數據集上很常見)。只選擇合適的特征有助于減少出現沒有實際意義的相關性的幾率。

3、增加模型可讀性

根據成千上萬個特征創建的模型來解答一個問題,對計算機來說很容易,但模型對我們自己來說就晦澀無比。因此,使用更少的特征,創建我們自己可以理解的模型,就很有必要。

有些分類算法確實很強壯,能夠處理噪音問題,特征再多也不在話下,但是選用干凈的數據,選取更具描述性的特征,對算法效果提升很有幫助。

根據特征選擇的形式又可以將特征選擇方法分為三種

Filter:過濾法,按照發散性或者相關性對各個特征進行評分,設定閾值或者待選擇閾值的個數,選擇特征。

Wrapper:包裝法,根據目標函數(通常是預測效果評分),每次選擇若干特征,或者排除若干特征。

Embedded:嵌入法,先使用某些機器學習的算法和模型進行訓練,得到各個特征的權值系數,根據系數從大到小選擇特征。類似于Filter方法,但是是通過訓練來確定特征的優劣。

寫在前面為了幫助更好地理解特征選擇,這里使用我們常用的股市數據作為基礎數據。

由于文章較長,為方便閱讀,我將特征選擇與特征提取總結文章拆分為上下兩篇,上篇(本文)主要內容包括如下圖所示,主要介紹過濾法中常用的幾種特征選擇方法。

導入相關模塊import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import warnings

warnings.filterwarnings(“ignore”)

import yfinance as yf

yf.pdr_override()

獲取數據仍然用騰訊股市數據,輔助理解本文內容。

symbol = ‘TCEHY’

start = ‘2016-01-01’

end = ‘2021-01-01’

df = yf.download(symbol, start, end)

# df = df.reset_index()# View columns

df.head()

特征構造dataset = df.copy()

[‘Increase_Decrease’] = np.where(dataset[‘Volume’].shift(-1) 》 dataset[‘Volume’],1,0)

dataset[‘Buy_Sell_on_Open’] = np.where(dataset[‘Open’].shift(-1) 》 dataset[‘Open’],1,0)

dataset[‘Buy_Sell’] = np.where(dataset[‘Adj Close’].shift(-1) 》 dataset[‘Adj Close’],1,0)

dataset[‘Returns’] = dataset[‘Adj Close’].pct_change()

dataset = dataset.dropna()

dataset.head()

數據準備設定目標標簽為收盤價,研究哪些變量對收盤價影響加大。通過一定對方法剔除幾乎沒有影響的特征,選出影響較多對特征。特征選擇在維度較大時尤為重要。

features = dataset.drop([‘Adj Close’, ‘Close’, ‘Returns’], axis=1)

array = features.values

X = array.astype(int)

Y = dataset[‘Adj Close’].values.astype(int)

過濾法過濾方法通常用作預處理步驟,特征選擇完全獨立于任何機器學習算法。它是根據各種統計檢驗中的分數以及相關性的各項指標來選擇特征。

方差過濾這是通過特征本身的方差來篩選特征的類。比如一個特征本身的方差很小,就表示樣本在這個特征上基本沒有差異,可能特征中的大多數值都一樣,甚至整個特征的取值都相同,那這個特征對于樣本區分沒有什么作用。

scikit-learn中的VarianceThreshold轉換器可用來刪除特征值的方差達不到最低標準的特征。

from sklearn.feature_selection import VarianceThreshold

vt = VarianceThreshold()

vt.fit_transform(X)

var_thd = pd.DataFrame(vt.variances_, columns = [“Variance”], index=features.columns)

var_thd = var_thd.reset_index()

var_thd.sort_values(‘Variance’,ascending=0)

無論什么時候,拿到數據后,先做下類似簡單、直接的分析,對數據集的特點做到心中有數。方差為0的特征不但對數據挖掘沒有絲毫用處,相反還會拖慢算法的運行速度。

單變量選擇單變量的特征選擇是通過基于一些單變量的統計度量方法來選擇最好的特征。屬于過濾法的一種。

scikit-learn提供了幾個用于選擇單變量特征的轉換器,其中SelectKBest返回 個最佳特征,SelectPercentile返回表現最佳的前 個特征。這兩個轉換器都提供計算特征表現的一系列方法。都將得分函數作為輸入,返回單變量的得分和p值。可作為輸入的評分函數有:

對于回歸: f_regression , mutual_info_regression, 互信息

對于分類: chi2 , f_classif , mutual_info_classif, 皮爾森相關系數

SelectKBest 選擇出前k個與標簽最相關的特征,主要有兩個參數:

1、score_func : callable,函數取兩個數組X和y,返回一對數組(scores, pvalues)或一個分數的數組。默認函數為f_classif,默認函數只適用于分類函數。

2、k:int or “all”, optional, default=10。所選擇的topK個特征。“all”選項則繞過選擇,用于參數搜索。

卡方單個特征和某一類別之間相關性的計算方法有很多。最常用的有卡方檢驗。經典的卡方檢驗是檢驗定性自變量對定性因變量的相關性。

卡方過濾是專門針對離散型標簽(即分類問題)的相關性過濾。卡方檢驗類 feature_selection.chi2 計算每個非負特征和標簽之間的卡方統計量,并依照卡方統計量由高到低為特征排名。

再結合 feature_selection.SelectKBest 這個可以輸入”評分標準“來選出前K個分數最高的特征的類,我們可以借此除去最可能獨立于標簽,與我們分類目的無關的特征。

from sklearn.feature_selection import SelectKBest

from sklearn.feature_selection import chi2

# 再使用SelectKBest轉換器類,用卡方函數打分,初始化轉換器。test = SelectKBest(score_func=chi2, k=3)

test.fit(X, Y)

# 得分情況

np.set_printoptions(precision=3)

print(test.scores_)

[6.365e+03 6.416e+03 6.286e+03 8.295e+08

2.949e+01 2.240e+01 3.059e+01]

卡方檢驗的本質是推測兩組數據之間的差異,其檢驗的原假設是”兩組數據是相互獨立的”。卡方檢驗返回卡方值和P值兩個統計量,其中卡方值很難界定有效的范圍,而p值,我們一般使用0.01或0.05作為顯著性水平,即p值判斷的邊界。

從特征工程的角度,我們希望選取卡方值很大,p值小于0.05的特征,即和標簽是相關聯的特征。而調用SelectKBest之前,我們可以直接從chi2實例化后的模型中獲得各個特征所對應的卡方值和P值。

F檢驗另外類似的方法還有F檢驗,又稱ANOVA,方差齊性檢驗,是用來捕捉每個特征與標簽之間的線性關系的過濾方法。它即可以做回歸也可以做分類,因此包含feature_selection.f_classif(F檢驗分類)和feature_selection.f_regression(F檢驗回歸)兩個類。其中F檢驗分類用于標簽是離散型變量的數據,而F檢驗回歸用于標簽是連續型變量的數據。

F檢驗的本質是尋找兩組數據之間的線性關系,其原假設是”數據不存在顯著的線性關系“。它返回F值和p值兩個統 計量。

和卡方過濾一樣,我們希望選取p值小于0.05或0.01的特征,這些特征與標簽時顯著線性相關的,而p值大于 0.05或0.01的特征則被我們認為是和標簽沒有顯著線性關系的特征,應該被刪除。

互信息互信息法是用來捕捉每個特征與標簽之間的任意關系(包括線性和非線性關系)的過濾方法。和F檢驗相似,它既可以做回歸也可以做分類,并且包含兩個類 feature_selection.mutual_info_classif(互信息分類)和feature_selection.mutual_info_regression(互信息回歸)。這兩個類的用法和參數都和F檢驗一模一樣,不過互信息法比F檢驗更加強大,F檢驗只能夠找出線性關系,而互信息法可以找出任意關系。

互信息法不返回p值或F值類似的統計量,它返回“每個特征與目標之間的互信息量的估計”,這個估計量在[0,1]之間取值,為0則表示兩個變量獨立,為1則表示兩個變量完全相關。

關于F檢驗和互信息,可以參見官方例子:Comparison of F-test and mutual information[1]

提取簡化后的特征

# 調用transform()或直接使用fit_transform方法,# 對相同的數據集進行預處理和轉換。

new_features = test.transform(X)

# 打印出特征提取前后特征數print(‘原始特征數:’, X.shape[1])

print(‘簡化的特征數:’, new_features.shape[1])

原始特征數: 7

簡化的特征數: 3

chi_sq = pd.DataFrame(fit.scores_, columns = [“Chi_Square”], index=features.columns)

chi_sq = chi_sq.reset_index()

chi_sq.sort_values(‘Chi_Square’,ascending=0)

皮爾遜相關系數Pearsonr函數的接口幾乎與scikit-learn單變量轉換器接口一致,該函數接收兩個數組 (當前例子中為x和y)作為參數,返回兩個數組:每個特征的皮爾遜相關系數和p值,直接把它傳入到SelectKBest函數中。

SciPy的pearsonr函數參數為兩個數組,但要注意的是第一個參數x為一維數組。我們來實現一個包裝器函數,這樣就能像前面那樣處理多維數組。

from scipy.stats import pearsonr

def multivariate_pearsonr(X, Y):

# 創建scores和pvalues數組,遍歷數據集的每一列。

scores, pvalues = [], []

for column in range(X.shape[1]):

# 只計算該列的皮爾遜相關系數和p值,并將其存儲到相應數組中。

cur_score, cur_p = pearsonr(X[:,column], Y)

scores.append(abs(cur_score))

pvalues.append(cur_p)

#函數最后返回包含皮爾遜相關系數和p值的元組。

return (np.array(scores), np.array(pvalues))

該方法衡量的是變量之間的線性相關性,結果的取值區間為,

-1表示完全的負相關;

+1表示完全的正相關;

0表示沒有線性相關。

現在,就可以像之前那樣使用轉換器類,根據皮爾遜相關系數對特征進行排序。

m_pearsonr = SelectKBest(score_func=multivariate_pearsonr, k=3)

X_pearson = m_pearsonr.fit_transform(X, Y)

print(m_pearsonr.scores_)

[9.989e-01 9.992e-01 9.994e-01 3.903e-01

9.078e-03 9.203e-04 2.001e-02]

pearsonr = pd.DataFrame(m_pearsonr.scores_, columns = [“pearsonr”], index=features.columns)

pearsonr = pearsonr.reset_index()

pearsonr.sort_values(‘pearsonr’,ascending=0)

多重共線性方差膨脹系數方差膨脹系數(variance inflation factor,VIF)是衡量多元線性回歸模型中復 (多重)共線性嚴重程度的一種度量。它表示回歸系數估計量的方差與假設自變量間不線性相關時方差相比的比值。

多重共線性是指自變量之間存在線性相關關系,即一個自變量可以是其他一個或幾個自變量的線性組合。

通常以10作為判斷邊界。

當VIF《10,不存在多重共線性;

當10《=VIF《100,存在較強的多重共線性;

當VIF》=100, 存在嚴重多重共線性。

from statsmodels.stats.outliers_influence import variance_inflation_factor

def calculate_vif(features):

vif = pd.DataFrame()

vif[“index”] = features.columns

vif[“VIF”] = [variance_inflation_factor(features.values, i) for i in range(features.shape[1])]

return(vif)

vif = calculate_vif(features)

while vif[‘VIF’][vif[‘VIF’] 》 10].any():

remove = vif.sort_values(‘VIF’,ascending=0)[‘index’][:1]

features.drop(remove,axis=1,inplace=True)

vif = calculate_vif(features)

vif

過濾法總結

最后用一張表格將過濾法做個總結,方便大家查閱學習。

說明 超參數的選擇
VarianceThreshold 方差過濾,可輸入方差閾值,
返回方差大于閾值的新特征矩陣
看具體數據究竟是含有更多噪聲
還是更多有效特征一般就使用0或1
來篩選也可以畫學習曲線
或取中位數跑模型來幫助確認
SelectKBest 用來選取K個統計量結果最佳的特征,
生成看配合使用的統計量
符合統計量要求的新特征矩陣
看配合使用的統計量
chi2 卡方檢驗,專用于分類算法,捕捉相關性 追求p小于顯著性水平的特征
f_classif F檢驗分類,只能捕捉線性相關性
要求數據服從正態分布
追求p小于顯著性水平的特征
f_regression F檢驗回歸,只能捕捉線性相關性
要求數據服從正態分布
追求p小于顯著性水平的特征
mutual_info_classif 互信息分類,可以捕捉任何相關性
追求互信息估計大于0的特征
不能用于稀疏矩陣
追求互信息估計大于0的特征
mutual_info_regression 互信息回歸,可以捕捉任何相關性
不能用于稀疏矩陣
追求互信息估計大于0的特征
pearsonr 皮爾遜相關系數,只能捕捉線性相關關系 追求p小于顯著性水平的特征

責任編輯:haq

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

    關注

    8

    文章

    7335

    瀏覽量

    94757
  • 模型
    +關注

    關注

    1

    文章

    3752

    瀏覽量

    52101

原文標題:特征選擇與提取最全總結之過濾法

文章出處:【微信號:gh_6a53af9e8109,微信公眾號:上海磐啟微電子有限公司】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    生成式AI賦能工程師挖掘非結構化數據價值

    您是否知道,生成式 AI(GenAI)可以幫助工程師在幾秒鐘內診斷汽車故障,甚至在設備出現問題之前預測潛在失效?GenAI 正在通過加速數據分析和算法開發,讓這些場景從設想走向現實,使工程師能夠充分發揮專業知識,挖掘可執行的洞察。
    的頭像 發表于 02-28 10:24 ?407次閱讀

    進程概念和特征

    。   2. 并發性:指多個進程實體,同存于內存中,能在一段時間內同時運行,并發性是進程的重要特征,同時也是操作系統的重要特征。引入進程的目的就是為了使程序能與其他進程的程序并發執行
    發表于 01-15 06:39

    為什么FPU在MCU中很重要呢?

    甚至上百個周期。 并行處理: 一些高性能 FPU(如 Cortex-M7 的 DPFPU)具有流水線結構,可以并行處理多個操作。 降低 CPU 負載: FPU 承擔了繁重的浮點計算任務,釋放了主 CPU
    發表于 11-18 07:05

    奧松電子協辦第二屆智能計算與數據挖掘國際學術會議

    2025年10月24日至26日,第二屆智能計算與數據挖掘國際學術會議(ICDM 2025)在中國廣州隆重舉行。本次會議由廣州航海學院、汕頭大學、廣東省數智科技研究會聯合主辦,廣州奧松電子股份有限公司作為協辦單位之一,攜手多家產業機構,共同推動智能計算與
    的頭像 發表于 11-03 14:18 ?613次閱讀

    XKCON祥控輸煤皮帶智能機器人巡檢系統對監測數據進行挖掘分析

    XKCON祥控輸煤皮帶智能機器人巡檢系統通過智能機器人在皮帶運行過程中對皮帶的運行狀態和環境狀況進行實時檢測,在應用過程中,不但提升了巡視周期頻次,還通過大數據分析和深度學習算法,對監測數據進行挖掘分析,及時發現設備缺陷故障,為
    的頭像 發表于 09-15 11:22 ?621次閱讀
    XKCON祥控輸煤皮帶智能機器人巡檢系統對監測<b class='flag-5'>數據</b>進行<b class='flag-5'>挖掘</b>分析

    工業相機數據爆炸?ICY DOCK硬盤抽取盒極速存 + 0宕機!

    工業相機在高速圖像采集與毫秒級數據處理中面臨3個核心痛點:TB級數據流迫切需要超高速傳輸接口;嚴苛的工廠環境(震動、粉塵、電磁干擾、溫差)威脅設備穩定運行;系統停機維護成本高昂,迫切需要快速故障定位
    的頭像 發表于 09-05 16:02 ?426次閱讀
    工業相機<b class='flag-5'>數據</b>爆炸?ICY DOCK硬盤<b class='flag-5'>抽取</b>盒極速存 + 0宕機!

    【「DeepSeek 核心技術揭秘」閱讀體驗】+混合專家

    并非在所有任務中都被激活,而是根據輸入數據的特點,由門控網絡精準篩選后參與運算。這就如同一個高效的任務分配系統,讓每個路由專家專注于處理特定類型的輸入或特征。調用最專業的“知識”來進行
    發表于 07-22 22:14

    用樹莓派挖掘5種頂級加密貨幣!

    加密貨幣是用于在線交易的數字貨幣。挖掘這些貨幣通常需要專門的硬件,如ASIC礦機或高性能GPU。然而,有些加密貨幣仍可用樹莓派來挖掘。在本文中,我將為您介紹可在樹莓派上挖掘的最佳加密貨幣。適合用樹莓
    的頭像 發表于 07-21 16:34 ?1446次閱讀
    用樹莓派<b class='flag-5'>挖掘</b>5種頂級加密貨幣!

    【硬盤抽取盒民主實驗】你的真話,決定產品命運!敢說就送!

    這不是一場營銷,而是一次硬盤抽取盒民主實驗。ICYDOCK誠邀敢說真話的你!你的每一條真實反饋,都可能被采納,直接塑造CP138產品的命運!你的聲音,至關重要!CP138核心亮點速覽CP138是專為
    的頭像 發表于 07-18 16:32 ?427次閱讀
    【硬盤<b class='flag-5'>抽取</b>盒民主實驗】你的真話,決定產品命運!敢說就送!

    物聯網感知數據挖掘:賦能萬物智聯的核心引擎

    背后,數據挖掘與分析技術正成為解鎖設備潛能、驅動產業變革的關鍵鑰匙。 一、從數據到洞察:六大核心價值維度 1. 價值轉化器:解鎖設備數據的商業密碼 工業傳感器產生的振動頻譜、智能電表的
    的頭像 發表于 06-17 16:22 ?658次閱讀

    國產操作系統加速崛起——鴻蒙電腦補齊鴻蒙生態最重要拼圖

    國產操作系統加速崛起——鴻蒙電腦補齊鴻蒙生態最重要拼圖 5月19日,首次應用鴻蒙操作系統的個人電腦(PC)在四川成都正式發布。這標志著我國擁有了完全自主可控的電腦操作系統,國產操作系統在個人電腦領域
    的頭像 發表于 05-21 11:41 ?673次閱讀

    ICY DOCK PCIe可拆卸式擴展插槽硬盤抽取盒或轉接器,革新存儲解決方案

    在快節奏的云計算時代,對快速高效的數據存儲解決方案的需求至關重要。從笨重的3.5英寸SATA硬盤過渡到靈活、基于PCIe的高速NVMeSSD,ICYDOCKExpressSlot系列可拆卸式PCIe
    的頭像 發表于 04-18 14:42 ?976次閱讀
    ICY DOCK PCIe可拆卸式擴展插槽硬盤<b class='flag-5'>抽取</b>盒或轉接器,革新存儲解決方案

    特征空間在端側的作用

    解決方案的過程中,算法并不是最重要的因素(雖然是必要的),尤其是對于端側應用。數據才是關鍵,一旦有了數據,真正起決定作用的,其實是隱藏在其中的“特征”(Feature)。
    的頭像 發表于 04-08 09:44 ?856次閱讀
    <b class='flag-5'>特征</b>空間在端側的作用

    三一挖掘機一鍵啟動開關易壞的原因及更換注意事項

    三一挖掘機一鍵啟動開關易壞的原因雖然三一挖掘機的一鍵啟動系統設計旨在提高便利性和安全性,但在實際使用中,可能會出現一些問題導致開關易壞。這些問題可能包括:頻繁使用:挖掘機在施工過程中頻繁啟動和關閉
    發表于 03-12 09:29

    易華錄智慧交管大模型實現交通數據價值的深度挖掘與應用

    易華錄將多年積累的數據治理經驗與DeepSeek卓越的推理能力深度融合,實現了交通數據價值的深度挖掘與應用。“DeepSeek+小易”智能引擎雙驅動,讓交通管控更智能、更高效,讓每一位交警真切感
    的頭像 發表于 03-08 13:48 ?1508次閱讀