機器學習實戰Chp13 利用PCA簡化資料

2021-08-21 22:03:00 字數 3242 閱讀 1006

# -*- coding: utf-8 -*-

"""created on sun jul 29 21:42:05 2018

@author: muli

"""from numpy import *

#mean(a, axis, dtype, out,keepdims )函式

# 功能:求取均值;

# 設a為m * n矩陣舉例:

# axis 不設定值,對 m*n 個數求均值,返回乙個實數

# axis = 0:壓縮行,對各列求均值,返回 1* n 矩陣

# axis =1 :壓縮列,對各行求均值,返回 m *1 矩陣

# 資料格式處理

defloaddataset

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

# 注意:**中的x和w 與 周志華書上p230的x和w為轉置關係

defpca

(datamat, topnfeat=9999999):

# 求取均值

meanvals = mean(datamat, axis=0)

# 歸一化

meanremoved = datamat - meanvals #remove mean

# 求方差

covmat = cov(meanremoved, rowvar=0)

# 特徵值、特徵向量

eigvals,eigvects = linalg.eig(mat(covmat))

# 特徵值排序,從小到大排序

eigvalind = argsort(eigvals) #sort, sort goes smallest to largest

# 取前topnfeat的特徵值

eigvalind = eigvalind[:-(topnfeat+1):-1] #cut off unwanted dimensions

# 由特徵值取特徵向量,構成乙個特徵向量的矩陣

redeigvects = eigvects[:,eigvalind] #reorganize eig vects largest to smallest

# 對映到乙個新的空間

lowddatamat = meanremoved * redeigvects#transform data into new dimensions

# 重構後的x值

reconmat = (lowddatamat * redeigvects.t) + meanvals

# 返回 z 和~x

return lowddatamat, reconmat

# 測試模組

機器學習 實戰 利用tensorflow識別衣物

fashion mnist 是乙個衣物資料集,整合在keras中可以直接使用。本文記錄了一步一步利用 fashion minst 的資料庫訓練 tensorflow 神經網路。import tensorflow as tf from tensorflow import keras import nu...

機器學習 13

1.簡述人工智慧 機器學習和深度學習三者的聯絡與區別。搞清三者關係的最簡單方法,就是把它們想象成乙個同心圓,其中人工智慧最大,此概念也最先問世 然後是機器學習,出現的稍晚 最後才是深度學習,不過卻是如今人工智慧 式發展的根源,處於前兩者的範圍之內。2.全連線神經網路與卷積神經網路的聯絡與區別。卷積神...

機器學習實戰

花了一段時間,總算把 機器學習實戰 粗讀了一遍,重點就在這個粗讀上。這本書的確不錯,機器學習的幾個經典演算法都涉及了,每個演算法都有1 2個實際例子進行說明,都有實實在在的 讓我想起了linus的 talk is cheap,show me the code 那句名言。但多年來養成的習慣,從來都是喜...