代数与概率##范数

##范数, linalg.norm()                     \\x\\p=(usm(x^p))^(1/p):p范数
import numpy as np
import numpy.linalg as LA   #Numpy中的线性代数库
x = np.arange(0, 1, 0.1)
x1 = LA.norm(x, 1)
x2 = LA.norm(x, 2)
xa = LA.norm(x, np.inf)
print(x)
print(x1, x2, xa)
##特征值分解  linalg.eigvals()
import numpy as np
a = np.array([[1, 2], [3, 4]])
A1 = np.linalg.eigvals(a)  #特征值
A2, V1 = np.linalg.eig(a) #特征值,特征向量
print(A1, A2)
print(V1)
print("==========================")
##奇异值分解  linalg.svd()
Data = np.array([[1, 1, 1, 0, 0],
                [2, 2, 2, 0, 0],
                [3, 3, 3, 0, 0],
                [5, 5, 3, 2, 2],
                [0, 0, 0, 3, 3],
                [0, 0, 0, 6, 6]])
B = np.array([[1, 1], [1, 1], [0, 0]])
u, sigma, vt = np.linalg.svd(Data)
#u, sigma, vt = np.linalg.svd(B)
#print(u)
print(sigma)
#print(vt)
diagv = np.mat([[sigma[0], 0, 0], [0, sigma[1], 0], [0, 0, sigma[2]]])
print(diagv)
##迹运算  np.trace()
print("=================")
###PCA预测iris鸢尾花数据集
from sklearn.datasets import load_iris
import numpy as np
from numpy.linalg import eig
def pca(X, k):
    X = X-X.mean(axis=0)
    X_cov = np.cov(X.T, ddof=0)
    eigenvalues, eigenvectors = eig(X_cov)
    klarge_index = eigenvalues.argsort()[-k:][::-1]
    k_eigenvectors = eigenvectors[klarge_index]
    return np.dot(X, k_eigenvectors.T)
iris = load_iris()
X = iris.data
k = 2
#X_pca = pca(X, k)
#查看个特征值贡献率
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
iris = load_iris()
X = iris.data
X = X-X.mean(axis=0)
X_cov = np.cov(X.T, ddof=0)
eigenvalues, eigenvectors = eig(X_cov)
tot = sum(eigenvalues)
var_exp = [(i/tot) for i in sorted(eigenvalues, reverse=True)]
cum_var_exp = np.cumsum(var_exp)
plt.bar(range(1, 5), var_exp, alpha=0.5, align='center', label= 'individual var')
plt.step(range(1, 5), cum_var_exp, where='mid', label='cumulative')
plt.ylabel('variance ration')
plt.xlabel('principal components')
plt.legend(ncol=2, loc=(0.2, 1))
plt.show() 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值