最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python sklearn庫實(shí)現(xiàn)PCA教程(以鳶尾花分類為例)

 更新時間:2020年02月24日 12:59:02   作者:Cindy0812  
今天小編就為大家分享一篇Python sklearn庫實(shí)現(xiàn)PCA教程(以鳶尾花分類為例),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

PCA簡介

主成分分析(Principal Component Analysis,PCA)是最常用的一種降維方法,通常用于高維數(shù)據(jù)集的探索與可視化,還可以用作數(shù)據(jù)壓縮和預(yù)處理等。矩陣的主成分就是其協(xié)方差矩陣對應(yīng)的特征向量,按照對應(yīng)的特征值大小進(jìn)行排序,最大的特征值就是第一主成分,其次是第二主成分,以此類推。

基本步驟:

具體實(shí)現(xiàn)

我們通過Python的sklearn庫來實(shí)現(xiàn)鳶尾花數(shù)據(jù)進(jìn)行降維,數(shù)據(jù)本身是4維的降維后變成2維,可以在平面中畫出樣本點(diǎn)的分布。樣本數(shù)據(jù)結(jié)構(gòu)如下圖:

其中樣本總數(shù)為150,鳶尾花的類別有三種,分別標(biāo)記為0,1,2

代碼

import matplotlib.pyplot as plt     #加載matplotlib用于數(shù)據(jù)的可視化
from sklearn.decomposition import PCA   #加載PCA算法包
from sklearn.datasets import load_iris


data=load_iris()
y=data.target
x=data.data
pca=PCA(n_components=2)  #加載PCA算法,設(shè)置降維后主成分?jǐn)?shù)目為2
reduced_x=pca.fit_transform(x)#對樣本進(jìn)行降維

red_x,red_y=[],[]
blue_x,blue_y=[],[]
green_x,green_y=[],[]


for i in range(len(reduced_x)):
 if y[i] ==0:
  red_x.append(reduced_x[i][0])
  red_y.append(reduced_x[i][1])

 elif y[i]==1:
  blue_x.append(reduced_x[i][0])
  blue_y.append(reduced_x[i][1])

 else:
  green_x.append(reduced_x[i][0])
  green_y.append(reduced_x[i][1])

#可視化
plt.scatter(red_x,red_y,c='r',marker='x')
plt.scatter(blue_x,blue_y,c='b',marker='D')
plt.scatter(green_x,green_y,c='g',marker='.')
plt.show()

結(jié)果圖

知識拓展:python sklearn PCA 實(shí)例代碼-主成分分析

python sklearn decomposition PCA 主成分分析

主成分分析(PCA)

1、主成分分析(Principal Component Analysis,PCA)是最常用的一種降維方法,

通常用于高維數(shù)據(jù)集的探索與可視化,還可以用作數(shù)據(jù)壓縮和預(yù)處理

2、PCA可以把具有相關(guān)性的高維變量合成為線性無關(guān)的低維變量,稱為主成分。

主成分能夠盡可能保留原始數(shù)據(jù)的信息

3、概念

方差:用來度量一組數(shù)據(jù)的分散程度

協(xié)方差:用來度量兩個變量之間的線性相關(guān)性程度,若兩個變量的協(xié)議差為0,二者線性無關(guān)

協(xié)方差矩陣:矩陣的特征向量是描述數(shù)據(jù)集結(jié)構(gòu)的非零向量,?? ⃗=?? ⃗

特征向量和特征值:? ⃗ 特征向量,?是特征值

4、提?。?/strong>

矩陣的主成分是其協(xié)方差矩陣對應(yīng)的特征向量,按照對應(yīng)的特征值大小進(jìn)行排序,最大的特征值就是第一主成分,其次是第二主成分

5、原理:

1、對所有樣本進(jìn)行中心化:xi-(x1+x2…xm)/m
2、計算樣本的協(xié)方差矩陣X(X.T)
3、對協(xié)方差矩陣X(X.T)做特征值分解
4、取最大的d個特征值所對應(yīng)的特征向量w1,w2…wd

輸出投影矩陣W=(w1,w2,…,wd)

6、參數(shù)說明

sklearn.decomposition.PCA(n_components=None,copy=True,whithen=False,svd_solver=‘a(chǎn)uto',tol=0.0,

iterated_power=‘a(chǎn)uto',random_state=None)

n_components:指定主成分的個數(shù),即降維后數(shù)據(jù)的維度

svd_slover:設(shè)置特征值分解的方法:‘full',‘a(chǎn)rpack',‘randomized'

PCA實(shí)現(xiàn)高維度數(shù)據(jù)可視化 實(shí)例

目標(biāo):

已知鳶尾花數(shù)據(jù)是4維的,共三類樣本,使用PCA實(shí)現(xiàn)對鳶尾花數(shù)據(jù)進(jìn)行降維,實(shí)現(xiàn)在二維平面上的可視化

實(shí)例程序編寫

import matplotlib.pyplot as plt
import sklearn.decomposition as dp
from sklearn.datasets.base import load_iris

x,y=load_iris(return_X_y=True) #加載數(shù)據(jù),x表示數(shù)據(jù)集中的屬性數(shù)據(jù),y表示數(shù)據(jù)標(biāo)簽
pca=dp.PCA(n_components=2) #加載pca算法,設(shè)置降維后主成分?jǐn)?shù)目為2
reduced_x=pca.fit_transform(x) #對原始數(shù)據(jù)進(jìn)行降維,保存在reduced_x中
red_x,red_y=[],[]
blue_x,blue_y=[],[]
green_x,green_y=[],[]
for i in range(len(reduced_x)): #按鳶尾花的類別將降維后的數(shù)據(jù)點(diǎn)保存在不同的表表中
 if y[i]==0:
  red_x.append(reduced_x[i][0])
  red_y.append(reduced_x[i][1])
 elif y[i]==1:
  blue_x.append(reduced_x[i][0])
  blue_y.append(reduced_x[i][1])
 else:
  green_x.append(reduced_x[i][0])
  green_y.append(reduced_x[i][1])
plt.scatter(red_x,red_y,c='r',marker='x')
plt.scatter(blue_x,blue_y,c='b',marker='D')
plt.scatter(green_x,green_y,c='g',marker='.')
plt.show()

以上這篇Python sklearn庫實(shí)現(xiàn)PCA教程(以鳶尾花分類為例)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中列表list切分的實(shí)現(xiàn)

    python中列表list切分的實(shí)現(xiàn)

    列表是Python中最常用的數(shù)據(jù)結(jié)構(gòu)之一,經(jīng)常需要對列表進(jìn)行切分操作,本文主要介紹了python中列表list切分的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Python如何給函數(shù)庫增加日志功能

    Python如何給函數(shù)庫增加日志功能

    這篇文章主要介紹了Python如何給函數(shù)庫增加日志功能,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法示例

    Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法示例

    這篇文章主要介紹了Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法,結(jié)合實(shí)例形式分析了Python使用pycrypto模塊進(jìn)行AES加密與解密操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • 利用python在Word文檔中創(chuàng)建和執(zhí)行條件郵件合并

    利用python在Word文檔中創(chuàng)建和執(zhí)行條件郵件合并

    郵件合并域和IF域是Word文檔中兩種非常實(shí)用的域,前者可以用來進(jìn)行郵件合并,根據(jù)數(shù)據(jù)批量創(chuàng)建定制的Word文檔,本文講介紹如何使用Python在Word文檔中創(chuàng)建條件郵件合并域以及執(zhí)行條件郵件合并,需要的朋友可以參考下
    2024-08-08
  • 一篇文章快速理解python中的yield關(guān)鍵字

    一篇文章快速理解python中的yield關(guān)鍵字

    Python中的yield關(guān)鍵字可以讓函數(shù)變成生成器,產(chǎn)生一個值后暫停,下次調(diào)用時從上次停下的地方繼續(xù)執(zhí)行,從而節(jié)省內(nèi)存并提高效率,這篇文章主要介紹了python中yield關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下
    2024-11-11
  • Python實(shí)戰(zhàn)之設(shè)計一個多功能辦公小工具

    Python實(shí)戰(zhàn)之設(shè)計一個多功能辦公小工具

    這篇文章主要介紹了通過Python制作一個多功能的辦公小工具,可以實(shí)現(xiàn)應(yīng)用、網(wǎng)頁直達(dá)以及天氣查詢,代碼具有一定學(xué)習(xí)價值,需要的小伙伴可以了解一下
    2021-12-12
  • python中對正則表達(dá)式re包的簡單引用方式

    python中對正則表達(dá)式re包的簡單引用方式

    這篇文章主要介紹了python中對正則表達(dá)式re包的簡單引用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python實(shí)現(xiàn)按當(dāng)前日期(年、月、日)創(chuàng)建多級目錄的方法

    Python實(shí)現(xiàn)按當(dāng)前日期(年、月、日)創(chuàng)建多級目錄的方法

    這篇文章主要介紹了Python 按當(dāng)前日期(年、月、日)創(chuàng)建多級目錄的方法,實(shí)現(xiàn)代碼很簡單,需要的朋友可以參考下
    2018-04-04
  • python求crc32值的方法

    python求crc32值的方法

    這篇文章主要介紹了python求crc32值的方法,包括相關(guān)的步驟及實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-10-10
  • Python中的特殊語法:filter、map、reduce、lambda介紹

    Python中的特殊語法:filter、map、reduce、lambda介紹

    這篇文章主要介紹了Python中的特殊語法:filter、map、reduce、lambda介紹,本文分別對這個特殊語法給出了代碼實(shí)例,需要的朋友可以參考下
    2015-04-04

最新評論

红河县| 汕头市| 华容县| 榆林市| 乡城县| 张家界市| 威远县| 临澧县| 东平县| 金坛市| 扶余县| 吉木萨尔县| 瓮安县| 怀宁县| 额敏县| 萝北县| 丘北县| 青阳县| 华亭县| 新野县| 伊金霍洛旗| 保定市| 阿坝县| 万载县| 中西区| 卢氏县| 白水县| 开江县| 玉田县| 抚州市| 陆丰市| 将乐县| 澄迈县| 皋兰县| 定州市| 邳州市| 武汉市| 城口县| 巴塘县| 瑞丽市| 比如县|