import numpy as np
a=np.mat([[1],[1]])
b=np.mat([[2],[2]])
c=np.multiply(a,b)
numpy.random随机函数:shuffle()和permutation()
import numpy as np
from numpy import random
#arr是一维
arr=np.arange(100)#[0,1,2,...,99]
random.shuffile(arr)#对arr进行就地随机排序
res1=random.permutation(arr)#对arr进行随机排序,但arr本身元素不变
res2=random.permutaion(10)#可以给定一个整数直接排序#arr是多维数据,上述两个方法只针对the first axis排序
arr=np.arange(9).reshape((3,3))
random.shuffile(arr)#arr的每一行元素内容不变,改变的是它们的顺序
res1=random.permutation(arr)
res2=random.permutaion(10)
梯度下降和随机梯度下降
import numpy as np
#m,W,alpha分别是样本总数, 模型参数和学习率#以线性回归为例#梯度下降for k in range(iter_num):
W = W-alpha*(X*W-Y)*(X.T)
#随机梯度下降for k in range(iter_num):
for i in range(m):
W = W -alpha/m*(X[i].T)*(X[i]*W-Y[i])
#改进的随机梯度下降for k in range(iter_num):
index = list(np.arange(m))
for i in range(m):
alpha = 0.01+4/(1+i+j)#学习率迭代调整
rand_index = int(np.random.uniform(0,m))#生成一个0~m间的随机数
W = W -alpha/m*(X[rand_index].T)*(X[rand_index]*W-Y[rand_index])#随机选择样本del(index[rand_index])
序列化存储字典到本地文件
import pickle
#存储defstore_tree(tree,filename):'''注意若是'w',则会报错:"write() argument must be str, not bytes";同样获取时为'rb'.'''
fw = open(filename,'wb')
pickle.dump(tree,fw)
fw.close()
#获取defget_tree(filename):
fr = open(filename,'rb')
return pickle.load(fr)