機器學習 資料降維 資料劃分

2021-10-19 19:39:52 字數 3565 閱讀 8649

一、資料的降維

(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...