python杂记

python杂记

numpy 矩阵点乘

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
#存储
def store_tree(tree,filename):
    '''注意若是'w',则会报错:"write() argument must be str, not bytes";同样获取时为'rb'.'''
    fw = open(filename,'wb')
    pickle.dump(tree,fw)
    fw.close()
#获取
def get_tree(filename):
    fr = open(filename,'rb')
    return pickle.load(fr)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值