機器學習 特徵選擇及降維

2021-10-03 15:19:55 字數 3108 閱讀 8522

資料中包含冗餘或無關變數(或稱特徵、屬性、指標等),旨在從原有特徵中找出主要特徵

演算法自動選擇特徵(特徵與目標值之間的關聯)

決策樹:資訊熵、資訊增益

正則化:l1、l2

深度學習:卷積等

sklearn.feature_selection
刪除低方差的一些特徵,前面講過方差的意義。再結合方差的大小來考慮這個方式的角度

特徵方差小:某個特徵大多樣本的值比較相近

特徵方差大:某個特徵很多樣本的值都有差別

sklearn.feature_selection.variancethreshold(threshold =

0.0)

刪除所有低方差特徵variance.fit_transform(x)

x:numpy array格式的資料[n_samples,n_features]

返回值:訓練集差異低於threshold的特徵將被刪除。預設值是保留所有非零方

差特徵,即刪除所有樣本中具有相同值的特徵。

from sklearn.feature_selection import variancethreshold

'''例項

[1,2,3]

[1,3,3]

[1,5,3]

'''var = variancethreshold(threshold=

0.0)

data = var.fit_transform([[

1,2,

3],[

1,3,

3],[

1,6,

3]])

print

(data)

降維是指在某些限定條件下,降低隨機變數(特徵)個數,得到一組「不相關」主變數的過程定義:高維資料轉化為低維資料的過程,在此過程中可能會捨棄原有資料、創造新的變數作用:是資料維數壓縮,盡可能降低原資料的維數(複雜度),損失少量資訊。應用:回歸分析或者聚類分析當中

sklearn.decomposition.pca(n_components=none)

將資料分解為較低維數空間

from sklearn.decomposition import pca

#主成分分析 ,進行特徵降維

pc = pca(n_components=

0.9)

data = pc.fit_transform([[

2,8,

4,5]

,[6,

3,0,

8],[

5,4,

9,1]

])print

(data)

資料如下:order_products__prior.csv:訂單與商品資訊字段:order_id, product_id, add_to_cart_order, reordered

products.csv:商品資訊

字段:product_id, product_name, aisle_id, department_id

orders.csv:使用者的訂單資訊

字段:order_id,user_id,eval_set,order_number,….

aisles.csv:商品所屬具體物品類別

字段: aisle_id, aisle

分析:

# 去讀四張表的資料

prior = pd.read_csv(

"./instacart/order_products__prior.csv"

)products = pd.read_csv(

"./instacart/products.csv"

)orders = pd.read_csv(

"./instacart/orders.csv"

)aisles = pd.read_csv(

"./instacart/aisles.csv"

)# 合併四張表

mt = pd.merge(prior, products, on=

['product_id'

,'product_id'])

mt1 = pd.merge(mt, orders, on=

['order_id'

,'order_id'])

mt2 = pd.merge(mt1, aisles, on=

['aisle_id'

,'aisle_id'])

print

(mt2.head(10)

)'''

pd.crosstab 統計使用者與物品之間的次數關係(統計次數)

也叫做 交叉表(特殊的分組工具)

'''cross = pd.crosstab(mt2[

'user_id'

], mt2[

'aisle'])

print

(cross.head(10)

)#主成分分析 ,進行特徵降維 , 儲存90%的資訊量

pc = pca(n_components=

0.9)

data = pc.fit_transform(cross)

print

(data)

print

(data.shape)

機器學習 特徵降維

機器學習中的資料維度與真實世界的維度本同末離。機器學習中,通常需要將現實世界中的資料進行轉化,形成計算機能夠處理的資料向量的形式,而往往為了學習到較好的模型,需要的資料向量維度都是非常大的。從而導致了學習乙個模型或者演算法往往需要大量的資源的消耗,有時甚至產生維度災難的問題。因此,為了緩解這一問題,...

20191201 機器學習複習 特徵降維

降維 降低維度 維數 巢狀的維數 降維是二維陣列 降低特徵的個數 正是因為進行訓練的時候,我們都是使用特徵學習。如果特徵學習本身存在問題或者特徵之間關聯性比較強,對於演算法學習 會影響很大 降維的方法 特徵選擇 主成分分析 特徵選擇 資料中包含冗餘或相關變數 或稱特徵,屬性,指標 旨在從原有特徵中找...

(sklearn)機器學習(六)特徵降維

ndarray 維數 0維 標量 1維 向量 2維 矩陣 對二維陣列降維 此處的降維 降低特徵的個數降維的兩種方法 特徵選擇 filter過濾式 方差選擇法 低方差特徵過濾 相關係數 特徵與特徵之間的相關程度 embedded 嵌入式 決策樹正則化 深度學習 主成分分析低方差特徵過濾 特徵方差小 某...