日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【机器学习算法-python实现】PCA 主成分分析、降维

發布時間:2025/4/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习算法-python实现】PCA 主成分分析、降维 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.背景

PCA(Principal Component Analysis),PAC的作用主要是降低數據集的維度,然后挑選出主要的特征。 PCA的主要思想是移動坐標軸,找到方差最大的方向上的特征值,什么叫方差最大的方向的特征值呢。就像下圖中的曲線B,一樣,它的覆蓋范圍最廣。

基本步驟:(1)首先計算數據集的協方差矩陣 (2)計算協方差矩陣的特征值和特征向量 (3)保留最重要的n個特征

what is 協方差矩陣:定義是變量向量減去均值向量,然后乘以變量向量減去均值向量的轉置再求均值。例如x是變量,μ是均值,協方差矩陣等于E[(x-μ)(x-μ)^t],物理意義是這樣的,例如x=(x1,x2,...,xi)那么協方差矩陣的第m行n列的數為xm與xn的協方差,若m=n,則是xn的方差。如果x的元素之間是獨立的,那么協方差矩陣只有對角線是有值,因為x獨立的話對于m≠n的情況xm與xn的協方差為0。另外協方差矩陣是對稱的。 可以參考wiki:(http://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE%E7%9F%A9%E9%98%B5)


2.代碼實現

偽代碼如下(摘自機器學習實戰):
''' @author: Garvin ''' from numpy import * import matplotlib.pyplot as pltdef loadDataSet(fileName, delim='\t'):fr = open(fileName)stringArr = [line.strip().split(delim) for line in fr.readlines()]datArr = [map(float,line) for line in stringArr]return mat(datArr)def pca(dataMat, topNfeat=9999999):meanVals = mean(dataMat, axis=0)meanRemoved = dataMat - meanVals #remove meancovMat = cov(meanRemoved, rowvar=0)eigVals,eigVects = linalg.eig(mat(covMat))eigValInd = argsort(eigVals) #sort, sort goes smallest to largesteigValInd = eigValInd[:-(topNfeat+1):-1] #cut off unwanted dimensionsredEigVects = eigVects[:,eigValInd] #reorganize eig vects largest to smallestlowDDataMat = meanRemoved * redEigVects#transform data into new dimensionsreconMat = (lowDDataMat * redEigVects.T) + meanValsreturn lowDDataMat, reconMatdef plotBestFit(dataSet1,dataSet2): dataArr1 = array(dataSet1)dataArr2 = array(dataSet2)n = shape(dataArr1)[0] n1=shape(dataArr2)[0]xcord1 = []; ycord1 = []xcord2 = []; ycord2 = []xcord3=[];ycord3=[]j=0for i in range(n):xcord1.append(dataArr1[i,0]); ycord1.append(dataArr1[i,1])xcord2.append(dataArr2[i,0]); ycord2.append(dataArr2[i,1]) fig = plt.figure()ax = fig.add_subplot(111)ax.scatter(xcord1, ycord1, s=30, c='red', marker='s')ax.scatter(xcord2, ycord2, s=30, c='green')plt.xlabel('X1'); plt.ylabel('X2');plt.show() if __name__=='__main__':mata=loadDataSet('/Users/hakuri/Desktop/testSet.txt') a,b= pca(mata, 2)
loadDataSet函數是導入數據集。PCA輸入參數:參數一是輸入的數據集,參數二是提取的維度。比如參數二設為1,那么就是返回了降到一維的矩陣。PCA返回參數:參數一指的是返回的低維矩陣,對應于輸入參數二。參數二對應的是移動坐標軸后的矩陣。

上一張圖,綠色為原始數據,紅色是提取的2維特征。


3.代碼下載

下載地址:請點擊我



/********************************

* 本文來自博客 ?“李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

******************************************/


總結

以上是生活随笔為你收集整理的【机器学习算法-python实现】PCA 主成分分析、降维的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色骚视频 | 91精品成人| 日韩在线欧美在线 | 天天插综合 | 欧美体内谢she精2性欧美 | 久久成人综合 | 九九热九九热 | 色在线综合 | 波多野结衣乳巨码无在线 | 美女综合网 | 亚洲黄色录像 | 国产精品成人久久久久久久 | av片毛片 | 日韩一区二区三区四区五区 | 午夜欧美精品久久久久久久 | 先锋资源国产 | 亚洲自拍色图 | 亚洲一级片av | 久久国产香蕉视频 | 美女视频一区二区三区 | 国产免费a| 91色精品| 超碰69| www.超碰在线观看 | 中文字幕在线观看不卡 | 深夜福利视频导航 | 成人福利在线视频 | 18被视频免费观看视频 | 久久少妇av | 中出在线视频 | 成人精品一区二区三区四区 | 毛片导航| 国产网站免费在线观看 | 亚洲欧洲综合av | av网站黄色 | 国产在线高潮 | av免费在线观看不卡 | 操碰97 | 国产男女在线 | 五月婷婷基地 | 国语对白少妇spa私密按摩 | 大香蕉视频一区二区 | 精品麻豆视频 | 日本久久免费 | 亚洲视频综合 | 亚洲五月天综合 | 99久久免费精品 | 成人av18 | 91婷婷色| 国产主播精品 | www久久99 | 女性私密整形视频 | 日韩视频精品在线 | 日韩和欧美的一区二区 | 天天插天天色 | 日本啪啪啪一区二区 | 自拍偷拍精品视频 | 亚洲精品456 | 日本成人一二三区 | 国产成人无码一区二区在线观看 | 激情综合网激情 | 久久久久一区二区三区 | 青青青草视频 | 亚洲人吸女人奶水 | 国产午夜性春猛交ⅹxxx | 中文字幕人乱码中文字 | 亚洲国产成人精品女人久久久 | 色啊色 | 精品国产一区二区三区日日嗨 | 亚欧在线视频 | 伊人久久麻豆 | 动漫美女被到爽 | 欧美图片自拍偷拍 | 一本色道无码道dvd在线观看 | 国产xx在线观看 | 久久精品国产亚洲av蜜臀色欲 | 中文字幕在线播放一区二区 | 欧美123| 91.久久| 精品一区亚洲 | 一区二区三区免费毛片 | 亚洲日本视频 | 中文字幕在线观看视频一区 | 老子午夜影院 | 国产精品无码一本二本三本色 | 日本欧美日韩 | 国产福利免费 | 美女福利视频在线观看 | 91免费网址 | 日韩av在线网 | 国产精品无圣光 | 天天爱天天色 | 污视频在线网站 | 日韩精品中文字 | 人妻少妇无码精品视频区 | 亚洲射情 | 日本色视频 | 久久人人爽人人爽人人片亚洲 | 精久久久久 |