欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python數(shù)據(jù)預(yù)處理方式 :數(shù)據(jù)降維

 更新時(shí)間:2020年02月24日 13:14:45   作者:泛泛之素  
今天小編就為大家分享一篇python數(shù)據(jù)預(yù)處理方式 :數(shù)據(jù)降維,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

數(shù)據(jù)為何要降維

數(shù)據(jù)降維可以降低模型的計(jì)算量并減少模型運(yùn)行時(shí)間、降低噪音變量信息對(duì)于模型結(jié)果的影響、便于通過可視化方式展示歸約后的維度信息并減少數(shù)據(jù)存儲(chǔ)空間。因此,大多數(shù)情況下,當(dāng)我們面臨高維數(shù)據(jù)時(shí),都需要對(duì)數(shù)據(jù)做降維處理。

數(shù)據(jù)降維有兩種方式:特征選擇,維度轉(zhuǎn)換

特征選擇

特征選擇指根據(jù)一定的規(guī)則和經(jīng)驗(yàn),直接在原有的維度中挑選一部分參與到計(jì)算和建模過程,用選擇的特征代替所有特征,不改變?cè)刑卣?,也不產(chǎn)生新的特征值。

特征選擇的降維方式好處是可以保留原有維度特征的基礎(chǔ)上進(jìn)行降維,既能滿足后續(xù)數(shù)據(jù)處理和建模需求,又能保留維度原本的業(yè)務(wù)含義,以便于業(yè)務(wù)理解和應(yīng)用。對(duì)于業(yè)務(wù)分析性的應(yīng)用而言,模型的可理解性和可用性很多時(shí)候要有限于模型本身的準(zhǔn)確率、效率等技術(shù)指標(biāo)。例如,決策樹得到的特征規(guī)則,可以作為選擇用戶樣本的基礎(chǔ)條件,而這些特征規(guī)則便是基于輸入的維度產(chǎn)生。

維度轉(zhuǎn)換

這個(gè)是按照一定數(shù)學(xué)變換方法,把給定的一組相關(guān)變量(維度)通過數(shù)學(xué)模型將高緯度空間的數(shù)據(jù)點(diǎn)映射到低緯度空間中,然后利用映射后變量的特征來表示原有變量的總體特征。這種方式是一種產(chǎn)生新維度的過程,轉(zhuǎn)換后的維度并非原來特征,而是之前特征的轉(zhuǎn)化后的表達(dá)式,新的特征丟失了原有數(shù)據(jù)的業(yè)務(wù)含義。 通過數(shù)據(jù)維度變換的降維方法是非常重要的降維方法,這種降維方法分為線性降維和非線性降維兩種,其中常用的代表算法包括獨(dú)立成分分析(ICA),主成分分析(PCA),因子分析(Factor Analysis,F(xiàn)A),線性判別分析(LDA),局部線性嵌入(LLE),核主成分分析(Kernel PCA)等。

使用python做降維處理

import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.decomposition import PCA

# 數(shù)據(jù)導(dǎo)入
df = pd.read_csv('https://raw.githubusercontent.com/ffzs/dataset/master/glass.csv')

# 看一下數(shù)據(jù)是
df.head()


   RI   Na Mg Al   Si   K   Ca   Ba   Fe  Type
0 1.52101 13.64 4.49 1.10 71.78 0.06 8.75 0.0 0.0 1
1 1.51761 13.89 3.60 1.36 72.73 0.48 7.83 0.0 0.0 1
2 1.51618 13.53 3.55 1.54 72.99 0.39 7.78 0.0 0.0 1
3 1.51766 13.21 3.69 1.29 72.61 0.57 8.22 0.0 0.0 1
4 1.51742 13.27 3.62 1.24 73.08 0.55 8.07 0.0 0.0 1

# 有無缺失值
df.isna().values.any()
# False 沒有缺失值

# 獲取特征值
X = df.iloc[:, :-1].values
# 獲取標(biāo)簽值
Y = df.iloc[:,[-1]].values
# 使用sklearn 的DecisionTreeClassifier判斷變量重要性
# 建立分類決策樹模型對(duì)象
dt_model = DecisionTreeClassifier(random_state=1)
# 將數(shù)據(jù)集的維度和目標(biāo)變量輸入模型
dt_model.fit(X, Y)
# 獲取所有變量的重要性
feature_importance = dt_model.feature_importances_
feature_importance
# 結(jié)果如下
# array([0.20462132, 0.06426227, 0.16799114, 0.15372793, 0.07410088, 0.02786222, 0.09301948, 0.16519298, 0.04922178])
# 做可視化
import matplotlib.pyplot as plt

x = range(len(df.columns[:-1])) 
plt.bar(left= x, height=feature_importance)
plt.xticks(x, df.columns[:-1])

可見Rl、Mg、Al、Ba的重要性比較高,一般情況下變量重要性得分接近80%,基本上已經(jīng)可以解釋大部分的特征變化。

PCA降維

# 使用sklearn的PCA進(jìn)行維度轉(zhuǎn)換
# 建立PCA模型對(duì)象 n_components控制輸出特征個(gè)數(shù)
pca_model = PCA(n_components=3)
# 將數(shù)據(jù)集輸入模型
pca_model.fit(X)
# 對(duì)數(shù)據(jù)集進(jìn)行轉(zhuǎn)換映射
pca_model.transform(X)
# 獲得轉(zhuǎn)換后的所有主成分
components = pca_model.components_
# 獲得各主成分的方差
components_var = pca_model.explained_variance_
# 獲取主成分的方差占比
components_var_ratio = pca_model.explained_variance_ratio_
# 打印方差
print(np.round(components_var,3))
# [3.002 1.659 0.68 ]
# 打印方差占比
print(np.round(components_var_ratio,3))
# [0.476 0.263 0.108]

以上這篇python數(shù)據(jù)預(yù)處理方式 :數(shù)據(jù)降維就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pyspark操作MongoDB的方法步驟

    pyspark操作MongoDB的方法步驟

    這篇文章主要介紹了pyspark操作MongoDB的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python中requests模塊的請(qǐng)求參數(shù)詳解

    Python中requests模塊的請(qǐng)求參數(shù)詳解

    這篇文章主要介紹了Python中requests模塊的請(qǐng)求參數(shù)詳解,requests模塊是一個(gè)網(wǎng)絡(luò)請(qǐng)求模塊,可以幫助我們模擬成客戶端去請(qǐng)求服務(wù)器的數(shù)據(jù),我們今天就是主要針對(duì)這個(gè)模塊進(jìn)行學(xué)習(xí),需要的朋友可以參考下
    2023-08-08
  • Python中幾種操作字符串的方法的介紹

    Python中幾種操作字符串的方法的介紹

    這篇文章主要介紹了詳解Python中幾種操作字符串的方法,字符串的操作是Python學(xué)習(xí)中最基礎(chǔ)的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04
  • 使用python3+xlrd解析Excel的實(shí)例

    使用python3+xlrd解析Excel的實(shí)例

    今天小編就為大家分享一篇使用python3+xlrd解析Excel的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python高級(jí)特性之切片迭代列表生成式及生成器詳解

    Python高級(jí)特性之切片迭代列表生成式及生成器詳解

    這篇文章主要為大家介紹了Python高級(jí)特性之切片迭代列表生成式及生成器詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10
  • python logging模塊的使用總結(jié)

    python logging模塊的使用總結(jié)

    這篇文章主要介紹了python logging模塊使用總結(jié)以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。,需要的朋友可以參考下
    2019-07-07
  • pandas中merge()函數(shù)的用法解讀

    pandas中merge()函數(shù)的用法解讀

    這篇文章主要介紹了pandas中merge()函數(shù)的用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • NumPy中的維度Axis詳解

    NumPy中的維度Axis詳解

    今天小編就為大家分享一篇NumPy中的維度Axis詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python全棧之for循環(huán)

    Python全棧之for循環(huán)

    這篇文章主要為大家介紹了Python for循環(huán),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • PyQt5實(shí)現(xiàn)下載進(jìn)度條效果

    PyQt5實(shí)現(xiàn)下載進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)下載進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論