一、資料的降維
(1)含義
資料降維是減少特徵的數量,優化演算法的執行。
(2)降維的方法
1
>過濾式特徵選擇
# 除去方差小於某個值的那一列特徵
from sklearn.feature_selection import variancethreshold
defvar()
: var = variancethreshold(threshold=
0.0)
# 過濾式特徵選擇,這裡是除去為零的特徵
x =[[
0,2,
0,3]
,[0,
1,4,
3],[
0,1,
1,3]
] data = var.fit_transform(x)
print
(data)
return
none
#結果是[[
20][
14][
11]]
2>主成分分析
from sklearn.decomposition import pca
defpca()
: pca = pca(n_components=
0.9)
#保留90%特徵的意思
x =[[
2,8,
4,5]
,[6,
3,0,
8],[
5,4,
9,1]
] data = pca.fit_transform(x)
print
(data)
return
none
#結果[
[1.22879107e-15
3.82970843e+00][
5.74456265e+00
-1.91485422e+00][
-5.74456265e+00
-1.91485422e+00
]]
(3)降維的例項運用
# 下面是利用kaggle上的資料**使用者對物品類別的喜好細分
>>
1首先我們獲取的資料是有很多的**,我們需要連線他們
# 運用pandas中merge合併表
import pandas as pd
from sklearn.decomposition import pca
# 讀取**
order_product = pd.read_csv(
"./data/instacart/order_products__prior.csv"
)products = pd.read_csv(
"./data/instacart/products.csv"
)orders = pd.read_csv(
"./data/instacart/orders.csv"
)aisles = pd.read_csv(
"./data/instacart/aisles.csv"
)#合併**
table1 = pd.merge(order_product, products, on=
["product_id"
,"product_id"])
table2 = pd.merge(table1, orders, on=
["order_id"
,"order_id"])
table = pd.merge(table2, aisles, on=
["aisle_id"
,"aisle_id"])
>>
2然後我們要把**變成適用機器學習的方式
# 行為使用者,列為不同物品的類別
# 利用pandas中crosstab來交叉表(指定行和列)
table = pd.crosstab(table[
"user_id"
], table[
"aisle"])
>>
3利用pca進行主成分分析
transfer = pca(n_components=
0.9)
data = transfer.fit_transform(table)
>>
4最後我們可以進行主成分分析並檢視剩餘的特徵數量
print
(data.shape)
二、資料的劃分
因為要評估模型訓練的優劣,所以要將測試集分為訓練集和測試集。我們可以依靠函式幫助我們完成較好的分類。
from sklearn.datasets import load_iris
#調取sklearn中存在的資料集iris
from sklearn.model_selection import train_test_split
#調取劃分資料集的函式 train_test_split
li = load_iris(
)print
("獲取特徵值"
)print
(li.data)
print
("目標值"
)print
(li.target)
print
(li.descr)
# 注意返回值, 訓練集 train x_train, y_train 測試集 test x_test, y_test
# x為特徵集,y為目標集
x_train, x_test, y_train, y_test = train_test_split(li.data, li.target, test_size=
0.25
)#注意順序哦
print
("訓練集特徵值和目標值:"
, x_train, y_train)
print
("測試集特徵值和目標值:"
, x_test, y_test)
三、轉換器與估計器
(1)轉換器
fit_transform
可以換成兩部分,前者求均值和方差,後者運算。
(2)估計器
在sklearn中,估計器(estimator)是乙個重要的角色,分類器和回歸器都屬於estimator,是一類實現了演算法的api。
#用於分類的估計器:
sklearn.neighbors k-近鄰演算法
sklearn.*****_bayes 貝葉斯
sklearn.linear_model.logisticregression 邏輯回歸
#用於回歸的估計器:
sklearn.linear_model.linearregression 線性回歸
sklearn.linear_model.ridge 嶺回歸
估計器的工作流程
機器學習之資料降維
資料降維 減少特徵數量 一 特徵選擇 1 特徵選擇原因 雜訊 部分特徵對 結果由影響 2 特徵選擇是什麼 filter 過濾式 方差大小 考慮所有樣本這個特徵的資料情況 sklearn.feature selection.variancethreshold variancethreshold thr...
機器學習(五)PCA資料降維
pca資料降維 一 pca 相關理論 pca演算法又稱主成分分析,是一種分析 簡化資料集的技術。主成分分析經常用於減少資料集的 維數,同時保持資料集中的對方差貢獻最大的特徵。pca 的數學定義是 乙個 正交化線性變換,把資料變換到乙個新的座標系統中,使得這一資料的任何投影的第一大方差在第乙個座標 稱...
機器學習 特徵工程 資料降維
定義 將原始資料轉換為更好地代表 模型的潛在問題的特徵的過程,從而提高了對未知資料的 準確性。內容 主要有三部分 1 特徵抽取 2 特徵預處理 3 資料的降維 機器學習領域中所謂的降維就是指採用某種對映方法,將原高維空間中的資料點對映到低維度的空間中。降維的本質是學習乙個對映函式 f x y,其中x...