MCPcopy Index your code
hub / github.com/apachecn/ailearning / analyse_data

Function analyse_data

src/python/13.PCA/pca.py:109–132  ·  view source on GitHub ↗
(dataMat)

Source from the content-addressed store, hash-verified

107
108
109def analyse_data(dataMat):
110 meanVals = mean(dataMat, axis=0)
111 meanRemoved = dataMat-meanVals
112 covMat = cov(meanRemoved, rowvar=0)
113 eigvals, eigVects = linalg.eig(mat(covMat))
114 eigValInd = argsort(eigvals)
115
116 topNfeat = 20
117 eigValInd = eigValInd[:-(topNfeat+1):-1]
118 cov_all_score = float(sum(eigvals))
119 sum_cov_score = 0
120 for i in range(0, len(eigValInd)):
121 line_cov_score = float(eigvals[eigValInd[i]])
122 sum_cov_score += line_cov_score
123 '''
124 我们发现其中有超过20%的特征值都是0。
125 这就意味着这些特征都是其他特征的副本,也就是说,它们可以通过其他特征来表示,而本身并没有提供额外的信息。
126
127 最前面15个值的数量级大于10^5,实际上那以后的值都变得非常小。
128 这就相当于告诉我们只有部分重要特征,重要特征的数目也很快就会下降。
129
130 最后,我们可能会注意到有一些小的负值,他们主要源自数值误差应该四舍五入成0.
131 '''
132 print '主成分:%s, 方差占比:%s%%, 累积方差占比:%s%%' % (format(i+1, '2.0f'), format(line_cov_score/cov_all_score*100, '4.2f'), format(sum_cov_score/cov_all_score*100, '4.1f'))
133
134
135if __name__ == "__main__":

Callers 1

pca.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected