簡單來說就是講特徵數量減少。去掉不需要的特徵。
常用方式:
主要方法:
filter(過濾式):variancethreshold(方差)
embedded(嵌入式):正則化、決策樹(後期介紹)
包裹式)、
神經網路(後期介紹)
從方差大小來考慮特徵的數值情況
api:sklearn.feature_selection.variancethreshold
語法:• variancethreshold
(threshold = 0.0)
•threshold的數字是
刪除所有低於方差特徵 •
variance
.fit_transform
(x,y
) •
x:numpy array
格式的資料
[n_samples,n_features]
• 返回值:
訓練集差異低於
threshold
的特徵將被刪除。 •
預設值是保留所有非零方差特徵,即刪除所有樣本 •
中具有相同值的特徵。
from sklearn.feature_selection import variancethreshold
def var():
"""特徵選擇-降維 -刪除低方差的特徵"""
var = variancethreshold(threshold=0.0)
data = var.fit_transform([[0, 2, 0, 3],
[0, 1, 4, 3],
[0, 1, 1, 3]])
print(data)
if __name__ == '__main__':
var()
執行結果:
目的:是資料維數壓縮,盡可能降低原資料的維數(複雜度),損失少量資訊。維度會降低,但是資料也會降低。
api:sklearn.
decomposition.pca
語法:pca(
n_components
=none )
將資料分解為較低維數空間
pca.fit_transform
(x)
x:numpy array
格式的資料
[n_samples,n_features]
返回值:轉換後
指定維度
的array
解釋:n_components = 小數: 一般 0 - 1.要求是 90% - 95%
= 整數:一般不用
**:
from sklearn.decomposition import pca
def pca():
"""主成分分析-特徵降維"""
pca = pca(n_components=0.9)
data = pca.fit_transform([[2, 8, 4, 5],
[6, 3, 0, 8],
[5, 4, 9, 1]])
print(data)
if __name__ == '__main__':
pca()
結果:
機器學習 特徵工程
老師有多年的網際網路從業經驗,所以講解的過程中結合了很多任務業界的應用,更加的深入淺出。資料採集 資料採集前需要明確採集哪些資料,一般的思路為 哪些資料對最後的結果 有幫助?資料我們能夠採集到嗎?線上實時計算的時候獲取是否快捷?舉例1 我現在要 使用者對商品的下單情況,或者我要給使用者做商品推薦,那...
機器學習 特徵工程
資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。通俗的說,就是盡可能的從原始資料中獲取更多資訊,從而使得 模型達到最佳。簡而言之,特徵工程是乙個把原始資料變成特徵的過程,這些特徵可以很好的描述資料,並且利用它們建立的模型在未知資料上表現效能可以達到最優。實驗結果取決於獲取的資料 ...
機器學習特徵工程
作用 對字典資料進行特徵值化 dictvectorizer語法 例項化了乙個物件 data dict fit transform x print dict get feature names print data return none if name main dictvec 結果 分析 使用di...