特征工程

1、特征工程

1.1相關(guān)定義

1.1.1 數(shù)據(jù)集

數(shù)據(jù)集的構(gòu)成:特征值+目標(biāo)值(有些數(shù)據(jù)集是可以沒(méi)有目標(biāo)值的)

機(jī)器學(xué)習(xí)開發(fā)流程:1)獲取數(shù)據(jù)2)數(shù)據(jù)處理3)特征工程4)機(jī)器學(xué)習(xí)算法訓(xùn)練-得到模型

5)模型評(píng)估6)應(yīng)用

數(shù)據(jù)集分為訓(xùn)練集個(gè)測(cè)試集

1.1.2特征工程介紹

特征工程是使用專業(yè)背景知識(shí)和技巧處理數(shù)據(jù),使得特征能在機(jī)器學(xué)習(xí)算法上發(fā)揮更好的作用的過(guò)程。特征工程包括:

1)特征抽取/特征提取

2)特征預(yù)處理

3)特征降維

1.2特征抽取

1.2.1定義

特征提取就是把任意數(shù)據(jù)轉(zhuǎn)化為可用于機(jī)器學(xué)習(xí)的數(shù)據(jù)特征,特征值能夠更好的理解數(shù)據(jù),特征提取包括:字典特征提取(特征離散化)、文本特征提取、圖像特征提取

通俗的理解就是將我們所輸入的信息生成一個(gè)的向量數(shù)據(jù),從而使的機(jī)器能夠更好的理解數(shù)據(jù)。

特征提取的語(yǔ)句為:sklearn.feature_extraction

1.2.2字典特征提取

對(duì)字典數(shù)據(jù)進(jìn)行特征值化。語(yǔ)句為:sklearn.feature_extraction.DictVectorizer(sparse=True, …)

DictVectorizer.fit_transform(X), X:字典或者包含字典的迭代器返回值,返回sparse矩陣

DictVectorizer.inverse_transform(X), X:array數(shù)組或者sparse矩陣 返回值:轉(zhuǎn)換之前數(shù)據(jù)格式;DictVectorizer.get_feature_names():返回類別名稱

DictVectorizer是字典體征提取的方法

sparse矩陣為稀疏矩陣,指的是在數(shù)值分析中絕大多數(shù)數(shù)值為零的矩陣,能夠降低內(nèi)存

輸出結(jié)果為:

1.2.3文本特征提取

即對(duì)文本數(shù)據(jù)進(jìn)行特征值化,基本語(yǔ)句為:

sklearn.feature_extraction.text.CountVectorizer(stop_words=[]):

CountVectorizer是屬于常見的特征數(shù)值計(jì)算類,是一個(gè)文本特征提取方法

(1)處理英文

輸出結(jié)果為:

需要注意的點(diǎn)有:

1)導(dǎo)入的庫(kù)是sklearn.feature_extraction.text,而不是sklearn.feature_extraction

2)fit_transform會(huì)自動(dòng)去除單個(gè)詞,因此輸出的結(jié)果中是沒(méi)有i的

3)toarray是將特征值轉(zhuǎn)換為二維數(shù)組

(2)處理中文

輸出結(jié)果為:

(3)停用詞:stop_words=[ ]

輸出結(jié)果為:

即,stop_words中的詞不會(huì)再出現(xiàn)在特征名字中。

1.3特征預(yù)處理

就是通過(guò)一些轉(zhuǎn)換函數(shù),將特征數(shù)據(jù)轉(zhuǎn)化為更適合算法模型的特征數(shù)據(jù)的過(guò)。由于特征單位相差較大,很多時(shí)候不是同一個(gè)量級(jí),所以需要對(duì)數(shù)據(jù)進(jìn)行無(wú)量綱化處理,即歸一化和標(biāo)準(zhǔn)化

1.3.1 歸一化

將原始數(shù)據(jù)進(jìn)行變化將數(shù)據(jù)映射到[0,1]之間(默認(rèn)是0,1)公式為

基本語(yǔ)句為:sklearn.preprocessing.MinMaxScaler(feature_range=(0,1)…)

處理數(shù)據(jù)時(shí)的代碼表達(dá)如下:

import pandas as pd

from sklearn.preprocessing import MinMaxScaler

def minmax_demo():

data = pd.read_csv(‘具體數(shù)據(jù)’)

? ? print("data:\n", data)

? ? transform = MinMaxScaler()

? ? data_new = transform.fit_transform(data)

? ? print("data_new:\n", data_new)

? ? return None

if __name__ == "__main__":

? ? minmax_demo()

由于一組數(shù)據(jù)之中最大值和最小值很容易收到異常值的影響,從而使得歸一化的結(jié)果不大穩(wěn)定,實(shí)際中可以用經(jīng)驗(yàn)常量來(lái)代替最大最小值。在不涉及距離度量、協(xié)方差計(jì)算、數(shù)據(jù)不大符合正態(tài)分布的時(shí)候,可以使用歸一化法。

1.3.2 標(biāo)準(zhǔn)化法

將數(shù)據(jù)變換為均值為0方差為1范圍內(nèi)的數(shù)據(jù),公式為:,在分類、聚類算法中,需要使用距離來(lái)度量相似性的時(shí)候,適合使用標(biāo)準(zhǔn)化法

基本語(yǔ)句為:sklearn.perprocessing.StandradScaler()

處理數(shù)據(jù)時(shí)的格式為:

from sklearn.preprocessing import MinMaxScaler, StandardScaler

def stand_demo():

? ? data = pd.read_csv('數(shù)據(jù)')

? ? print("data:\n", data)

? ? transform = StandardScaler()

? ? data_new = transform.fit_transform(data)

? ? print("data_new:\n", data_new)

? ? return None

if __name__ == "__main__":

stand_demo()

標(biāo)準(zhǔn)化數(shù)據(jù)處理在已有樣本足夠多的情況下比較穩(wěn)定。

1.4特征降維

降維是指在某些限定條件下,降低隨機(jī)變量(特征)個(gè)數(shù),得到一組“不相關(guān)”主變量的過(guò)程。通俗的理解就是,通過(guò)一些方法提取出一些較具有代表性的隨機(jī)變量,從而減少數(shù)據(jù)個(gè)數(shù),提升效率的同時(shí)又減少信息的損耗量。

特征降維的方法包括特征選擇和主成分分析。

1.4.1 特征選擇

特征選擇的目標(biāo)就是從原有特征中找到主要特征。主要包含以下方法:

Filter過(guò)濾式:主要探究特征本身特點(diǎn)、特征與特征和目標(biāo)值之間關(guān)聯(lián)

a.方差選擇法:低方差特征過(guò)濾

b.相關(guān)系數(shù):特征與特征之間的相關(guān)程度

Embedded嵌入式:算法自動(dòng)選擇特征(特征與目標(biāo)值之間的關(guān)聯(lián))

a.決策樹:信息熵、信息增益

b.正則化:L1,L2

c.深度學(xué)習(xí):卷積等

基本語(yǔ)句為:sklearn.feature_selection

1.4.2 過(guò)濾式

低方差過(guò)濾的基本語(yǔ)句為:from sklearn.feature_selection import VarianceThreshold

1.4.3 相關(guān)系數(shù)法

通過(guò)計(jì)算皮爾遜相關(guān)系數(shù)反應(yīng)變量之間的密切程度,所以基本語(yǔ)句為:

from scipy.stats import pearsonr

1.5主成分分析

主成分分析就是利用原始變量的線性組合形成幾個(gè)綜合指標(biāo)(主成分),從而在保留原始變量絕大多數(shù)信息的情況下達(dá)到降維的目的,從而簡(jiǎn)化問(wèn)題的復(fù)雜性,抓住主要矛盾。

基本語(yǔ)句為:sklearn.decomposition.PCA(n_components=None)

需要注意的點(diǎn)有:(1)n_components,后面對(duì)應(yīng)的是整數(shù)時(shí),就是減少到多少特征,如果是小數(shù)就是保留百分之多少的信息

(2)PCA.fit_transform(X),X:numpy array格式的數(shù)據(jù)[N_samples, n_features],返回值:轉(zhuǎn)換后指定維度的array

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.Scikit-learn與特征工程 1.1 數(shù)據(jù)來(lái)源與類型 大部分的數(shù)據(jù)都來(lái)數(shù)據(jù)庫(kù)或者爬蟲以及平時(shí)的記錄等。 ...
    隕星落云閱讀 1,025評(píng)論 0 2
  • 特征工程(feature engineering):利用領(lǐng)域知識(shí)和現(xiàn)有數(shù)據(jù),創(chuàng)造出新的特征,用于機(jī)器學(xué)習(xí)算法;可以...
    rowcolumn閱讀 827評(píng)論 2 1
  • 大部分上傳的截圖都掛了,大家見諒吧,也不影響學(xué)習(xí)的 什么是特征工程 書接上文,前文我們看到鳶尾花數(shù)據(jù)集張什么樣子:...
    前行的烏龜閱讀 718評(píng)論 0 2
  • http://www.cnblogs.com/jasonfreak/p/5448462.html 目錄 1 使用s...
    Helen_Cat閱讀 3,020評(píng)論 0 7
  • 機(jī)器學(xué)習(xí)概述 機(jī)器學(xué)習(xí)是從數(shù)據(jù)中自動(dòng)分析獲得規(guī)律(模型),并利用規(guī)律對(duì)未知數(shù)據(jù)進(jìn)行預(yù)測(cè)。 數(shù)據(jù)集的組成 機(jī)器學(xué)習(xí)的...
    xinmin閱讀 475評(píng)論 0 0

友情鏈接更多精彩內(nèi)容