成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python中rfe函數(shù) rf調(diào)用python函數(shù)

C語言編程出現(xiàn)錯(cuò)誤,'main' : not in formal parameter list

第二行應(yīng)該是#includecmath

創(chuàng)新互聯(lián)公司專注于內(nèi)江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供內(nèi)江營銷型網(wǎng)站建設(shè),內(nèi)江網(wǎng)站制作、內(nèi)江網(wǎng)頁設(shè)計(jì)、內(nèi)江網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造內(nèi)江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供內(nèi)江網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

然后void main 后面應(yīng)該是加(),而不是 ;

因?yàn)檫@個(gè)錯(cuò)誤是指“main函數(shù)未在正式的參數(shù)列表”

你重新調(diào)試一下吧,希望能幫到你

遞歸特征消除(RFE)+ 交叉驗(yàn)證

遞歸特征消除(Recursive feature elimination)

遞歸特征消除的主要思想是反復(fù)構(gòu)建模型,然后選出最好的(或者最差的)特征(根據(jù)系數(shù)來選),把選出來的特征放到一邊,然后在剩余的特征上重復(fù)這個(gè)過程,直到遍歷了所有的特征。在這個(gè)過程中被消除的次序就是特征的排序。

RFE的穩(wěn)定性很大程度上取決于迭代時(shí),底層用的哪種模型。比如RFE采用的是普通的回歸(LR),沒有經(jīng)過正則化的回歸是不穩(wěn)定的,那么RFE就是不穩(wěn)定的。假如采用的是Lasso/Ridge,正則化的回歸是穩(wěn)定的,那么RFE就是穩(wěn)定的。

from sklearn.feature_selection import RFE

from sklearn.feature_selection import RFECV

from sklearn.linear_model import LinearRegression,Ridge,Lasso

from pandas import read_csv

import numpy as np

from scipy.stats import pearsonr

from sklearn.model_selection import StratifiedKFold

from sklearn.ensemble import RandomForestClassifier

import csv

tps = read_csv('E:\workfile\data\trade\tps.csv', header=0)

label = np.array(tps)[:, 0]

feature = np.array(tps)[:, 1:]

def RFErfe():

看一下RFE的輸入?yún)?shù):

estimator:估計(jì)函數(shù),底層的回歸模型。一個(gè)監(jiān)督學(xué)習(xí)的估計(jì)函數(shù),有fit方法,fit方法,通過 coef_ 屬性或者 feature_importances_ 屬性來提供feature重要性的信息。

n_features_to_select : int or None (default=None)選擇(最優(yōu))feature的數(shù)量,超出的部分按照關(guān)聯(lián)性排序。如果選擇 None , 就選擇一半的feature。

step:int or float, 可選(default=1)如果大于等于1,step對應(yīng)于迭代過程中每次移除的屬性的數(shù)量(integer)。如果是(0.0,1.0),就對應(yīng)于每次移除的特征的比例,四舍五入。

可以調(diào)用的屬性:

n_features_ : int所選特征的數(shù)量。

這是n_features_to_select=2時(shí)候的運(yùn)行結(jié)果,可以看出來,兩個(gè)部分的屬性應(yīng)該是最好的,超過的部分按照屬性相關(guān)的強(qiáng)弱一次排序。

support_ : array of shape [n_features],[n_features]大小的array,所選特征的一種模糊的表示,可以看出來,打印結(jié)果就是true和false,最優(yōu)的是true,別的是false。

ranking_ : array of shape [n_features],[n_features]大小的array,特征的排序,比如 ranking_[i] 表示的就是第i個(gè)特征的排名位置。估計(jì)最佳的屬性被排為1.

tps = read_csv('E:\workfile\data\trade\tps.csv', header=0)

label = np.array(tps)[:, 0]

feature = np.array(tps)[:, 1:]

這是運(yùn)行結(jié)果。

按照慣例跟進(jìn)去看一下源碼。

傳入?yún)?shù):

estimator:和上面的一樣。

step:和上面的一樣。

cv:int,交叉驗(yàn)證的生成器或者迭代器??蛇x。

cv可選擇的輸入為:

-None,使用默認(rèn)的3折交叉驗(yàn)證。

-integer,指定交叉驗(yàn)證的折數(shù)。

-一個(gè)object用作交叉驗(yàn)證的生成器。

-一種迭代的訓(xùn)練/測試集的分割。

對于None或者integer的輸入。如果“y”是二分類或者多分類,就要用

class: sklearn.model_selection.StratifiedKFold

如果估計(jì)函數(shù)是一個(gè)分類器,或者“y”不是二分類也不是多分類,就要用

class: sklearn.model_selection.KFold

這里可以使用多種交叉驗(yàn)證的方法。

我這里使用的是回歸的數(shù)據(jù),因此可以知道使用的是KFold。

跟進(jìn)去看一下KFold的源碼。

n_splits : int, default=3,交叉驗(yàn)證的折數(shù),默認(rèn)3,最少是2。

shuffle : boolean, optional,可選。是否在分割成若干批次之前對數(shù)據(jù)進(jìn)行洗牌。

random_state : int, RandomState 實(shí)例,或者None, optional, 可選default=None默認(rèn)None。

如果是int, random_state是隨機(jī)數(shù)生成器的種子。(指定一個(gè),不指定的話每次結(jié)果都會(huì)不一樣)

如果是RandomState 實(shí)例, random_state是隨機(jī)數(shù)生成器。

如果是None,隨機(jī)數(shù)是通過 RandomState 實(shí)例 np.random 生成的。此時(shí) shuffle == True.

scoring : string, callable(可調(diào)用的) or None, optional,可選的 default: None,默認(rèn):None,評分標(biāo)準(zhǔn)。一個(gè)string型(參考model evaluation documentation模型評估文檔)或者一個(gè)可以調(diào)用的評分object/function

with signature scorer(estimator, X, y) .

可調(diào)用的屬性:

n_features_ : int,通過交叉驗(yàn)證得到的特征選擇的數(shù)量。

support_:和上面一樣。

ranking_:和上面一樣。

grid_scores_:array of shape [n_subsets_of_features],交叉驗(yàn)證的分?jǐn)?shù),比如 grid_scores_[i] 第i個(gè)特征子集的CV分?jǐn)?shù)。 grid_scores_ is equal to ceil((n_features - 1) / step) + 1,

estimator_ :和上面一樣。

誰動(dòng)了我的VS

誰動(dòng)了我的特征1為什么要記錄特征轉(zhuǎn)換行為?使用機(jī)器學(xué)習(xí)算法和模型進(jìn)行數(shù)據(jù)挖掘,有時(shí)難免事與愿違:我們依仗對業(yè)務(wù)的理解,對數(shù)據(jù)的分析,以及工作經(jīng)驗(yàn)提出了一些特征,但是在模型訓(xùn)練完成后,某些特征可能“身微言輕”——我們認(rèn)為相關(guān)性高的特征并不重要,這時(shí)我們便要反思這樣的特征提出是否合理;某些特征甚至“南轅北轍”——我們認(rèn)為正相關(guān)的特征結(jié)果變成了負(fù)相關(guān),造成這種情況很有可能是抽樣與整體不相符,模型過于復(fù)雜,導(dǎo)致了過擬合。然而,我們怎么判斷先前的假設(shè)和最后的結(jié)果之間的差異呢?線性模型通常有含有屬性coef_,當(dāng)系數(shù)值大于0時(shí)為正相關(guān),當(dāng)系數(shù)值小于0時(shí)為負(fù)相關(guān);另外一些模型含有屬性feature_importances_,顧名思義,表示特征的重要性。根據(jù)以上兩個(gè)屬性,便可以與先前假設(shè)中的特征的相關(guān)性(或重要性)進(jìn)行對比了。但是,理想是豐滿的,現(xiàn)實(shí)是骨感的。經(jīng)過復(fù)雜的特征轉(zhuǎn)換之后,特征矩陣X已不再是原來的樣子:啞變量使特征變多了,特征選擇使特征變少了,降維使特征映射到另一個(gè)維度中。累覺不愛了嗎?如果,我們能夠?qū)⒆詈蟮奶卣髋c原特征對應(yīng)起來,那么分析特征的系數(shù)和重要性又有了意義了。所以,在訓(xùn)練過程(或者轉(zhuǎn)換過程)中,記錄下所有特征轉(zhuǎn)換行為是一個(gè)有意義的工作??上?,sklearn暫時(shí)并沒有提供這樣的功能。在這篇博文中,我們嘗試對一些常見的轉(zhuǎn)換功能進(jìn)行行為記錄,讀者可以在此基礎(chǔ)進(jìn)行進(jìn)一步的拓展。2有哪些特征轉(zhuǎn)換的方式?《使用sklearn做單機(jī)特征工程》一文概括了若干常見的轉(zhuǎn)換功能:類名功能說明StandardScaler數(shù)據(jù)預(yù)處理(無量綱化)標(biāo)準(zhǔn)化,基于特征矩陣的列,將特征值轉(zhuǎn)換至服從標(biāo)準(zhǔn)正態(tài)分布MinMaxScaler數(shù)據(jù)預(yù)處理(無量綱化)區(qū)間縮放,基于最大最小值,將特征值轉(zhuǎn)換到[0,1]區(qū)間上Normalizer數(shù)據(jù)預(yù)處理(歸一化)基于特征矩陣的行,將樣本向量轉(zhuǎn)換為“單位向量”Binarizer數(shù)據(jù)預(yù)處理(二值化)基于給定閾值,將定量特征按閾值劃分OneHotEncoder數(shù)據(jù)預(yù)處理(啞編碼)將定性數(shù)據(jù)編碼為定量數(shù)據(jù)Imputer數(shù)據(jù)預(yù)處理(缺失值計(jì)算)計(jì)算缺失值,缺失值可填充為均值等PolynomialFeatures數(shù)據(jù)預(yù)處理(多項(xiàng)式數(shù)據(jù)轉(zhuǎn)換)多項(xiàng)式數(shù)據(jù)轉(zhuǎn)換FunctionTransformer數(shù)據(jù)預(yù)處理(自定義單元數(shù)據(jù)轉(zhuǎn)換)使用單變元的函數(shù)來轉(zhuǎn)換數(shù)據(jù)VarianceThreshold特征選擇(Filter)方差選擇法SelectKBest特征選擇(Filter)可選關(guān)聯(lián)系數(shù)、卡方校驗(yàn)、最大信息系數(shù)作為得分計(jì)算的方法RFE特征選擇(Wrapper)遞歸地訓(xùn)練基模型,將權(quán)值系數(shù)較小的特征從特征集合中消除SelectFromModel特征選擇(Embedded)訓(xùn)練基模型,選擇權(quán)值系數(shù)較高的特征PCA降維(無監(jiān)督)主成分分析法LDA降維(有監(jiān)督)線性判別分析法按照特征數(shù)量是否發(fā)生變化,這些轉(zhuǎn)換類可分為:無變化:StandardScaler,MinMaxScaler,Normalizer,Binarizer,Imputer,F(xiàn)unctionTransformer*有變化:OneHotEncoder,PolynomialFeatures,VarianceThreshold,SelectKBest,RFE,SelectFromModel,PCA,LDAFunctionTransformer*:自定義的轉(zhuǎn)換函數(shù)通常不會(huì)使特征數(shù)量發(fā)生變化對于不造成特征數(shù)量變化的轉(zhuǎn)換類,我們只需要保持特征不變即可。在此,我們主要研究那些有變化的轉(zhuǎn)換類,其他轉(zhuǎn)換類都默認(rèn)為無變化。按照映射的形式,可將以上有變化的轉(zhuǎn)換類可分為:一對一:VarianceThreshold,SelectKBest,RFE,SelectFromModel一對多:OneHotEncoder多對多:PolynomialFeatures,PCA,LDA原特征與新特征為一對一映射通常發(fā)生在特征選擇時(shí),若原特征被選擇則直接變成新特征,否則拋棄。啞編碼為典型的一對多映射,需要啞編碼的原特征將會(huì)轉(zhuǎn)換為多個(gè)新特征。多對多的映射中PolynomialFeatures并不要求每一個(gè)新特征都與原特征建立映射關(guān)系,例如階為2的多項(xiàng)式轉(zhuǎn)換,第一個(gè)新特征只由第一個(gè)原特征生成(平方)。降維的本質(zhì)在于將原特征矩陣X映射到維度更低的空間中,使用的技術(shù)通常是矩陣乘法,所以它既要求每一個(gè)原特征映射到所有新特征,同時(shí)也要求每一個(gè)新特征被所有原特征映射。3特征轉(zhuǎn)換的組合在《使用sklearn優(yōu)雅地進(jìn)行數(shù)據(jù)挖掘》一文中,我們看到一個(gè)基本的數(shù)據(jù)挖掘場景:特征轉(zhuǎn)換行為通常是流水線型和并行型結(jié)合的。所以,我們考慮重新設(shè)計(jì)流水線處理類Pipeline和并行處理類FeatureUnion,使其能夠根據(jù)不同的特征轉(zhuǎn)換類,記錄下轉(zhuǎn)換行為“日志”?!叭罩尽钡谋硎拘问揭彩侵匾?,由上圖可知,集成后的特征轉(zhuǎn)換過程呈現(xiàn)無環(huán)網(wǎng)狀,故使用網(wǎng)絡(luò)來描述“日志”是合適的。在網(wǎng)絡(luò)中,節(jié)點(diǎn)表示特征,有向連線表示特征轉(zhuǎn)換。為此,我們新增兩個(gè)類型Feature和Transfrom來構(gòu)造網(wǎng)絡(luò)結(jié)構(gòu),F(xiàn)eature類型表示網(wǎng)絡(luò)中的節(jié)點(diǎn),Transform表示網(wǎng)絡(luò)中的有向邊。python的networkx庫可以很好地表述網(wǎng)絡(luò)和操作網(wǎng)絡(luò),我這是要重新造輪子嗎?其實(shí)并不是,現(xiàn)在考慮代表新特征的節(jié)點(diǎn)怎么命名的問題,顯然,不能與網(wǎng)絡(luò)中任意節(jié)點(diǎn)同名,否則會(huì)發(fā)生混淆。然而,由于sklearn的訓(xùn)練過程存在并行過程(線程),直接使用network來構(gòu)造網(wǎng)絡(luò)的話,將難以處理節(jié)點(diǎn)重復(fù)命名的問題。所以,我才新增兩個(gè)新的類型來描述網(wǎng)絡(luò)結(jié)構(gòu),這時(shí)網(wǎng)絡(luò)中的節(jié)點(diǎn)名是可以重復(fù)的。最后,對這網(wǎng)絡(luò)進(jìn)行廣度遍歷,生成基于networkx庫的網(wǎng)絡(luò),因?yàn)檫@個(gè)過程是串行的,故可以使用“當(dāng)前節(jié)點(diǎn)數(shù)”作為新增節(jié)點(diǎn)的序號(hào)了。

vlookup函數(shù)rfe怎么回事

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

VLOOKUP 函數(shù)語法具有下列參數(shù) (參數(shù):為操作、事件、方法、屬性、函數(shù)或過程提供信息的值。):

lookup_value 必需。要在表格或區(qū)域的第一列中搜索的值。lookup_value 參數(shù)可以是值或引用。如果為 lookup_value

參數(shù)提供的值小于 table_array 參數(shù)第一列中的最小值,則 VLOOKUP

將返回錯(cuò)誤值 #N/A。

table_array 必需。包含數(shù)據(jù)的單元格區(qū)域??梢允褂脤^(qū)域(例如,A2:D8)或區(qū)域名稱的引用。table_array 第一列中的值是由 lookup_value 搜索的值。這些值可以是文本、數(shù)字或邏輯值。文本不區(qū)分大小寫。

col_index_num 必需。table_array

參數(shù)中必須返回的匹配值的列號(hào)。col_index_num 參數(shù)為 1 時(shí),返回 table_array 第一列中的值;col_index_num 為 2 時(shí),返回 table_array 第二列中的值,依此類推。

如果 col_index_num 參數(shù):

小于 1,則 VLOOKUP 返回錯(cuò)誤值 #VALUE!。

大于 table_array 的列數(shù),則 VLOOKUP 返回錯(cuò)誤值

#REF!。

range_lookup 可選。一個(gè)邏輯值,指定希望 VLOOKUP 查找精確匹配值還是近似匹配值:

如果 range_lookup 為 TRUE

或被省略,則返回精確匹配值或近似匹配值。如果找不到精確匹配值,則返回小于 lookup_value 的最大值。

要點(diǎn) 如果 range_lookup 為 TRUE

或被省略,則必須按升序排列 table_array 第一列中的值;否則,VLOOKUP 可能無法返回正確的值。

有關(guān)詳細(xì)信息,請參閱對區(qū)域或表中的數(shù)據(jù)進(jìn)行排序。

如果 range_lookup 為 FALSE,則不需要對 table_array 第一列中的值進(jìn)行排序。

如果 range_lookup 參數(shù)為 FALSE,VLOOKUP

將只查找精確匹配值。如果 table_array 的第一列中有兩個(gè)或更多值與 lookup_value 匹配,則使用第一個(gè)找到的值。如果找不到精確匹配值,則返回錯(cuò)誤值

#N/A。

注解

在 table_array 的第一列中搜索文本值時(shí),請確保 table_array 第一列中的數(shù)據(jù)不包含前導(dǎo)空格、尾部空格、非打印字符或者未使用不一致的直引號(hào)(' 或 ")與彎引號(hào)(‘ 或

“)。否則,VLOOKUP 可能返回不正確或意外的值。

有關(guān)詳細(xì)信息,請參閱 CLEAN 函數(shù)和 TRIM 函數(shù)。

在搜索數(shù)字或日期值時(shí),請確保 table_array 第一列中的數(shù)據(jù)未存儲(chǔ)為文本值。否則,VLOOKUP 可能返回不正確或意外的值。

如果 range_lookup 為 FALSE 且 lookup_value 為文本,則可以在 lookup_value 中使用通配符 - 問號(hào) (?) 和星號(hào)

(*)。問號(hào)匹配任意單個(gè)字符;星號(hào)匹配任意字符序列。如果要查找實(shí)際的問號(hào)或星號(hào),請?jiān)谧址版I入波形符 (~)。

特征工程:特征處理方法

如果不同特征的數(shù)量級不在一個(gè)等級,模型就不是碗形,而是長條形,難收斂。如果是邏輯回歸、線性回歸,一定要做幅度調(diào)整,如果用樹模型,就不需要幅度調(diào)整。因?yàn)闃淠P褪菍Ω鱾€(gè)特征一個(gè)一個(gè)做的,幅度差異不影響。

可以把不同特征調(diào)整到[0,1]范圍內(nèi),(x-min)/(max-min),適用于非高斯分布,可以保留數(shù)值大部分信息,但易受到異常值影響。

或者使用standard scaler, ,適用于高斯分布。優(yōu)點(diǎn)是處理后的數(shù)據(jù)更加正態(tài)化,但是缺點(diǎn)是對分布要求嚴(yán)格。

樹模型(決策樹、隨機(jī)森林、GBDT)不需要做數(shù)值的縮放,線性模型、SVM、神經(jīng)網(wǎng)絡(luò)、KNN、PCA降維都是需要做數(shù)值縮放的。

1)加減平均:商品價(jià)格高于平均價(jià)格多少,用戶在某個(gè)品類下消費(fèi)超過平均用戶多少,用戶連續(xù)登錄天數(shù)超過平均多少。。。

2)分位線:商品屬于售出商品價(jià)格的多少分位線處。

3)次序型:排在第幾位

4)比例類:電商中,好/中/差評 比例,你已超過全國百分之多少的同學(xué)。

比如年齡,是一個(gè)連續(xù)值。如果要通過邏輯回歸來判斷是否要讓座,要同時(shí)顧及“尊老”“愛幼”。而激活函數(shù)sigmoid函數(shù)是 ,如果 是正數(shù),函數(shù)是單調(diào)增,年齡越大讓座可能越大,但是小孩子就不讓座了,如果 是負(fù)數(shù),函數(shù)單調(diào)減,只能滿足愛幼,不能尊老了。所以,將年齡字段分成[0,6],[7,59],[60,120]三段,變成三個(gè)字段,對應(yīng)就會(huì)有三個(gè) 來判別,是否應(yīng)該讓座,就可以同時(shí)實(shí)現(xiàn)尊老和愛幼。

1)等距切分。pd.cut()

2)等頻切分,按照分位數(shù)切分。pd.qcut()

如果是用邏輯回歸模型,就要做離散化,如果使用樹模型,如決策樹、隨機(jī)森林,就不一定要做離散化,因?yàn)槟P捅旧頃?huì)給你做離散化。

口紅色號(hào),衣服尺碼等等

red:---1

blue:---2

yellow:---3

如果用以上的編碼方式,不同顏色之間存在了大小關(guān)系,而應(yīng)該是等價(jià)的。

red:--1,0,0

blue:--0,1,0

yellow:--0,0,1

拆分成三列,“是否是red”、"是否是blue"、“是否是yellow”。

操作:pd.get_dummies()

啞變量和one hot其實(shí)是一件事,就像奇異果和獼猴桃。

相當(dāng)于multi-hot,有多個(gè)1。

比如,我可以建一個(gè)詞庫,一句話里如果含有單詞apple,那就在apple這列打1,含有多少單詞就打多少個(gè)1。但是這種方法比較稀疏,詞庫太大了。

改進(jìn)方法:比如我對于每一個(gè)領(lǐng)域都有一個(gè)詞表,比如財(cái)經(jīng)類詞表,體育類詞表。。。然后有一篇文章,我要對他進(jìn)行分類,就可以看這篇文章里有多少個(gè)詞是財(cái)經(jīng)詞表里的,有多少詞是體育詞表里面的。

比如:

性別:[男,女]

愛好:[足球,散步,電視劇]

要用愛好來表達(dá)性別

男生中這三個(gè)愛好的人數(shù)比例是:[2/3, 1/3, 0]

女生中這三個(gè)愛好的人數(shù)比例是:[0, 1/3, 2/3]

把這三列 [“喜歡足球的概率”,“喜歡散步的概率”,“喜歡電視劇的概率”] 加在對應(yīng)的性別后面,可以作為新的特征。

4.如果類別特征空間太大,超過了幾十個(gè)一般就不適用one hot了。比如是中介的ID,可以考慮用Label encoding(直接用1,2,3代替,會(huì)產(chǎn)生次序關(guān)系,但總好過直接丟棄特征)、Count encoding(出現(xiàn)了多少次就寫多少)、Target encoding(根據(jù)標(biāo)簽,反過來對特征編碼,使用方法就是上面的histogram,但是會(huì)造成標(biāo)簽泄露,產(chǎn)生過擬合。可以用交叉驗(yàn)證的思想,分成5折,用4份的數(shù)據(jù)做編碼,然后用剩下的一份做訓(xùn)練。)

既可以作為連續(xù)值,也可以作為離散值。

連續(xù)值:持續(xù)時(shí)間(瀏覽時(shí)長)、間隔時(shí)間(上次購買距離現(xiàn)在的時(shí)間)

離散值:哪個(gè)時(shí)間段、周幾 等,離散后,就是類別型的數(shù)據(jù)。但不是說一定要做one-hot編碼,比如時(shí)間段,可以離散化為“上班高峰期”和“非高峰期”。而周幾,可以用one-hot,也可以離散為“工作日”和“周末”。

1、詞袋模型:就是指上面的hash技巧,文本數(shù)據(jù)去掉停用詞,剩下的詞組成list,在詞庫中的映射稀疏向量。

2、詞袋模型的問題: 李雷喜歡韓梅梅? VS 韓梅梅喜歡李雷,丟失了順序信息。

解決方案:把詞袋中的詞擴(kuò)充到n-gram,就是分詞的時(shí)候,除了“李雷”、“喜歡”、“韓梅梅”,還要加上“李雷喜歡”、“喜歡韓梅梅”。這叫2-gram。在python里的庫叫CountVectorizer。

3、新的問題:只統(tǒng)計(jì)了頻次,但是,出現(xiàn)頻次高的一定是重要的嗎?

解決方案:使用TF-IDF特征。如果t雖然在文檔中出現(xiàn)次數(shù)多,但是在其他文檔中出現(xiàn)的次數(shù)也很多,那么這個(gè)詞就不重要。

TF(t)=

IDF(t)=

TF-IDF權(quán)重=TF(t)*IDF(t)

4、稀疏--稠密,工具是word2vec,在機(jī)器學(xué)習(xí)中不太好用,在深度學(xué)習(xí)中用得多。原理比較復(fù)雜,先不講。

比如:

1)購物車購買轉(zhuǎn)化率(用戶維度統(tǒng)計(jì)特征)

2)商品熱度(商品維度統(tǒng)計(jì)特征)

3)對不同item點(diǎn)擊/收藏/購物車/購買的總計(jì)(商品維度統(tǒng)計(jì)特征)

4)對不同item點(diǎn)擊/收藏/購物車/購買平均每個(gè)user的計(jì)數(shù)(用戶維度統(tǒng)計(jì)特征)

5)變熱門的品牌/商品(商品維度,差值型)

6)最近1/2/3/7天的行為數(shù)與平均行為數(shù)的比值(用戶維度,比例型)

7)商品在類別中的排序(商品維度,次序型)

8)商品交互的總?cè)藬?shù)(商品維度,求和型)

等等。。。

統(tǒng)計(jì)值也可以用來發(fā)現(xiàn)一些規(guī)律,比如前一天加購物車的商品很有可能第二天購買;加車N件,只買了一件,剩余的不會(huì)買。。。

如:張三電子產(chǎn)品,李四服裝,

增加一列,只有同時(shí)出現(xiàn)指定的用戶和品類的時(shí)候,才取1。

第一種組合完全是拍腦袋,所以可以結(jié)合使用 決策樹模型 (GBDT),用GBDT學(xué)習(xí)出來的路徑,組合成新的特征。不一定是整條路徑,選取其中的一小段也可以是一個(gè)新的特征。例如下圖,“年齡 25 是教師” 就是一個(gè)新的特征。

1)冗余,部分特征相關(guān)度高,消耗計(jì)算性能。

2)噪聲,有些特征對結(jié)果有負(fù)影響。

前者只踢掉原本特征里,和結(jié)果預(yù)測關(guān)系不大的列。后者是要在低維空間中,盡量保存住高維的信息。

1)評估 單個(gè) 特征和結(jié)果值之間的相關(guān)程度,排序,留下Top相關(guān)的特征部分。

2)Pearson相關(guān)系數(shù),

3)缺點(diǎn):沒有考慮到特征之間的關(guān)聯(lián)作用,可能把有用的關(guān)聯(lián)特征誤踢掉。

python包:SelectKBest(選最重要的K個(gè))、SelectPercentile(選最重要的百分之多少)

看做一個(gè)子集搜索問題,篩選各種特征子集,用模型評估效果。

典型的包裹型算法為:遞歸特征刪除算法(recursive feature elimination algorithm)。

做法:

1)先用全量特征跑邏輯回歸模型

2)然后系數(shù)排序(體現(xiàn)相關(guān)性),砍掉5-10%的弱特征,觀察準(zhǔn)確率/auc的變化。

3)逐步進(jìn)行,直至準(zhǔn)確率/auc出現(xiàn)大的下滑為止。

python包:RFE

L1正則化 + 邏輯回歸LR/ linear SVM

L1正則化的效果,是讓一些不重要的特征的權(quán)重系數(shù)變成0。

通常用在 稀疏的高維 數(shù)據(jù)。

當(dāng)前名稱:python中rfe函數(shù) rf調(diào)用python函數(shù)
文章源于:http://jinyejixie.com/article34/hejpse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、標(biāo)簽優(yōu)化、網(wǎng)頁設(shè)計(jì)公司電子商務(wù)、網(wǎng)站策劃、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
广东省| 宁武县| 盐边县| 伊金霍洛旗| 澎湖县| 长沙市| 且末县| 探索| 建瓯市| 什邡市| 晴隆县| 天峻县| 垣曲县| 越西县| 吕梁市| 双鸭山市| 汕尾市| 共和县| 扶绥县| 罗甸县| 罗甸县| 桦南县| 宁强县| 连城县| 元谋县| 平山县| 岚皋县| 玉山县| 白朗县| 宁城县| 乐亭县| 进贤县| 阳西县| 格尔木市| 汤原县| 溧水县| 安阳县| 贺兰县| 德阳市| 香格里拉县| 阿荣旗|