电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python機(jī)器學(xué)習(xí)之PCA降維算法詳解

瀏覽:4日期:2022-06-19 10:24:37
目錄一、算法概述二、算法步驟三、相關(guān)概念四、算法優(yōu)缺點(diǎn)五、算法實(shí)現(xiàn)六、算法優(yōu)化一、算法概述 主成分分析 (Principal ComponentAnalysis,PCA)是一種掌握事物主要矛盾的統(tǒng)計(jì)分析方法,它可以從多元事物中解析出主要影響因素,揭示事物的本質(zhì),簡(jiǎn)化復(fù)雜的問題。 PCA 是最常用的一種降維方法,它的目標(biāo)是通過某種線性投影,將高維的數(shù)據(jù)映射到低維的空間中,并期望在所投影的維度上數(shù)據(jù)的方差最大,以此使用較少的維度,同時(shí)保留較多原數(shù)據(jù)的維度。 PCA 算法目標(biāo)是求出樣本數(shù)據(jù)協(xié)方差矩陣的特征值和特征向量,而協(xié)方差矩陣的特征向量的方向就是PCA需要投影的方向。使樣本數(shù)據(jù)向低維投影后,能盡可能表征原始的數(shù)據(jù)。 PCA 可以把具有相關(guān)性的高維變量合成為線性無關(guān)的低維變量,稱為主成分。主成分能夠盡可能的保留原始數(shù)據(jù)的信息。 PCA 通常用于高維數(shù)據(jù)集的探索與可視化,還可以用作數(shù)據(jù)壓縮和預(yù)處理等。二、算法步驟

Python機(jī)器學(xué)習(xí)之PCA降維算法詳解

1.將原始數(shù)據(jù)按行組成m行n列的矩陣X

2.將X的每一列(代表一個(gè)屬性字段)進(jìn)行零均值化,即減去這一列的均值

3.求出協(xié)方差矩陣

4.求出協(xié)方差矩陣的特征值及對(duì)應(yīng)的特征向量r

5.將特征向量按對(duì)應(yīng)特征值大小從左到右按列排列成矩陣,取前k列組成矩陣P

6.計(jì)算降維到k維的數(shù)據(jù)

三、相關(guān)概念 方差:描述一個(gè)數(shù)據(jù)的離散程度

Python機(jī)器學(xué)習(xí)之PCA降維算法詳解

協(xié)方差:描述兩個(gè)數(shù)據(jù)的相關(guān)性,接近1就是正相關(guān),接近-1就是負(fù)相關(guān),接近0就是不相關(guān)

Python機(jī)器學(xué)習(xí)之PCA降維算法詳解

協(xié)方差矩陣:協(xié)方差矩陣是一個(gè)對(duì)稱的矩陣,而且對(duì)角線是各個(gè)維度的方差

Python機(jī)器學(xué)習(xí)之PCA降維算法詳解

特征值:用于選取降維的K個(gè)特征值 特征向量:用于選取降維的K個(gè)特征向量四、算法優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

僅僅需要以方差衡量信息量,不受數(shù)據(jù)集以外的因素影響。 各主成分之間正交,可消除原始數(shù)據(jù)成分間的相互影響的因素。 計(jì)算方法簡(jiǎn)單,主要運(yùn)算是特征值分解,易于實(shí)現(xiàn)。

缺點(diǎn)

主成分各個(gè)特征維度的含義具有一定的模糊性,不如原始樣本特征的解釋性強(qiáng)。 方差小的非主成分也可能含有對(duì)樣本差異的重要信息,降維丟棄的數(shù)據(jù)可能對(duì)后續(xù)數(shù)據(jù)處理有影響。五、算法實(shí)現(xiàn)

自定義實(shí)現(xiàn)

import numpy as np# 對(duì)初始數(shù)據(jù)進(jìn)行零均值化處理def zeroMean(dataMat): # 求列均值 meanVal = np.mean(dataMat, axis=0) # 求列差值 newData = dataMat - meanVal return newData, meanVal# 對(duì)初始數(shù)據(jù)進(jìn)行降維處理def pca(dataMat, percent=0.19): newData, meanVal = zeroMean(dataMat) # 求協(xié)方差矩陣 covMat = np.cov(newData, rowvar=0) # 求特征值和特征向量 eigVals, eigVects = np.linalg.eig(np.mat(covMat)) # 抽取前n個(gè)特征向量 n = percentage2n(eigVals, percent) print('數(shù)據(jù)降低到:' + str(n) + ’維’) # 將特征值按從小到大排序 eigValIndice = np.argsort(eigVals) # 取最大的n個(gè)特征值的下標(biāo) n_eigValIndice = eigValIndice[-1:-(n + 1):-1] # 取最大的n個(gè)特征值的特征向量 n_eigVect = eigVects[:, n_eigValIndice] # 取得降低到n維的數(shù)據(jù) lowDataMat = newData * n_eigVect reconMat = (lowDataMat * n_eigVect.T) + meanVal return reconMat, lowDataMat, n# 通過方差百分比確定抽取的特征向量的個(gè)數(shù)def percentage2n(eigVals, percentage): # 按降序排序 sortArray = np.sort(eigVals)[-1::-1] # 求和 arraySum = sum(sortArray) tempSum = 0 num = 0 for i in sortArray:tempSum += inum += 1if tempSum >= arraySum * percentage: return numif __name__ == ’__main__’: # 初始化原始數(shù)據(jù)(行代表樣本,列代表維度) data = np.random.randint(1, 20, size=(6, 8)) print(data) # 對(duì)數(shù)據(jù)降維處理 fin = pca(data, 0.9) mat = fin[1] print(mat)

利用Sklearn庫(kù)實(shí)現(xiàn)

import matplotlib.pyplot as pltfrom sklearn.decomposition import PCAfrom sklearn.datasets import load_iris# 加載數(shù)據(jù)data = load_iris()x = data.datay = data.target# 設(shè)置數(shù)據(jù)集要降低的維度pca = PCA(n_components=2)# 進(jìn)行數(shù)據(jù)降維reduced_x = pca.fit_transform(x)red_x, red_y = [], []green_x, green_y = [], []blue_x, blue_y = [], []# 對(duì)數(shù)據(jù)集進(jìn)行分類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:green_x.append(reduced_x[i][0])green_y.append(reduced_x[i][1]) else:blue_x.append(reduced_x[i][0])blue_y.append(reduced_x[i][1])plt.scatter(red_x, red_y, c=’r’, marker=’x’)plt.scatter(green_x, green_y, c=’g’, marker=’D’)plt.scatter(blue_x, blue_y, c=’b’, marker=’.’)plt.show()六、算法優(yōu)化

PCA是一種線性特征提取算法,通過計(jì)算將一組特征按重要性從小到大重新排列得到一組互不相關(guān)的新特征,但該算法在構(gòu)造子集的過程中采用等權(quán)重的方式,忽略了不同屬性對(duì)分類的貢獻(xiàn)是不同的。

KPCA算法

KPCA是一種改進(jìn)的PCA非線性降維算法,它利用核函數(shù)的思想,把樣本數(shù)據(jù)進(jìn)行非線性變換,然后在變換空間進(jìn)行PCA,這樣就實(shí)現(xiàn)了非線性PCA。

局部PCA算法

局部PCA是一種改進(jìn)的PCA局部降維算法,它在尋找主成分時(shí)加入一項(xiàng)具有局部光滑性的正則項(xiàng),從而使主成分保留更多的局部性信息。

到此這篇關(guān)于Python機(jī)器學(xué)習(xí)之PCA降維算法詳解的文章就介紹到這了,更多相關(guān)Python PCA降維算法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 纸塑分离机-纸塑分离清洗机设备-压力筛-碎浆机厂家金双联环保 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 线粒体膜电位荧光探针-细胞膜-标记二抗-上海复申生物科技有限公司 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 快速门厂家-快速卷帘门-工业快速门-硬质快速门-西朗门业 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 热处理温控箱,热处理控制箱厂家-吴江市兴达电热设备厂 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 手持式3d激光扫描仪-便携式三维立体扫描仪-北京福禄克斯 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 减速机_上海宜嘉减速机| 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 广西教师资格网-广西教师资格证考试网| 广东教师资格网-广东教师资格证考试网| 横河变送器-横河压力变送器-EJA变送器-EJA压力变送器-「泉蕴仪表」 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 自动配料系统_称重配料控制系统厂家| 北京开源多邦科技发展有限公司官网| 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | 陕西安闸机-伸缩门-车牌识别-广告道闸——捷申达门业科技 | 高硼硅玻璃|水位计玻璃板|光学三棱镜-邯郸奥维玻璃科技有限公司 高温高压釜(氢化反应釜)百科 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 茶叶百科网-茶叶知识与茶文化探讨分享平台|