160412岭回归笔记

岭回归


import numpy as np
from scipy import linalg

x = np.random.randn(10*2).reshape(10,2)

np.savetxt("x.txt",x)
#np.loadtxt("x.txt")
x = np.hstack((np.ones((10,1)),x))
b = np.array([2,3,4])
y = np.random.randon(10)*0.5+np.dot(x,b)
np.savetxt("y.txt",y)
lam = [1,2,3,4]
xx = np.dot(x.T,x)
xy = np.dot(x.T,y)
n = 10
p = 2

tx = x[1]
ty = y[1]

txx = xx-np.outer(tx,tx)
txy = xy-ty*tx
def cvridge0(lam0):
    lamm=np.identity(p+1)*lam0
    lamm[0,0]=0
    L = np.linalg.cholesky(txx+lamm)
    lb = linalg.solve_triangular(L,txy,lower= True)
    tcoe = linalg.solve_triangular(L.T,lb)
    return (ty-np.dot(tcoe,tx))**2
np.arrary(map(cvridge0,lam))

def cvridge(txmty):
    txx = xx-np.outer(tx,tx)
    txy = xy-ty
    def cvridge0(lam0):
        lamm = np.identity(p+1)*lam0
        lamm[0,0] = 0
        L = np.linalg.cholesky(txx+lamm)
        lb = linalg.solve_triangular(L,txy,lower= True)
        tcoe = linalg.solve_triangular(L.T,lb)
        return (ty-np.dot(tcoe,tx))**2
    return np.array(map(cvridge0,lam))
errm = np.array(map(cvridge,x,y))
print errm

import numpy as np
from scipy import linalg

class Ridge(object):
    def __init__(self,x=0,y=0,inter=True,lam=0)
        np0=x.shape
        self.n = np0[0]
        self.p = np0[1]
        if inter:
            self.x = np.hstack((np.ones((self.n,1)),x))
        else:
            self.x = x
        self.y = y
        self.lam = lam
        self.lammin = 0
        self.coe = 0
        self.xx = np.dot(self.x.T,self.x)
        self.xy = np.dot(self.x.T,self.y)
        self.cverr = 0

    def ridge(self):
        lamm = np.identity(p+1)*self.lammin
        lamm[0,0] = 0
        L = np.linalg.cholesky(self.xx,lamm)
        lb = linalg.solve_triangular(L,self.xy,lower = True)
        self.coe = linalg.solve_triangular(L.T,lb)
        #return self.coe

    def cvreg(self):
        def cvridge(tx,ty):
            txx = self.xx-np.outer(tx,tx)
            txy = self.xy-ty*tx
            def cvridge0(lam0):
                lamm = np.identity(p+1)*lam0
                lamm[0,0]=0
                L = np.linalg.cholesky(txx+lamm)
                lb = linalg.solve_triangular(L,txy,lower =True)
                tcoe = linalg.solve_triangular(L.T,lb)
                return (ty-np.dot(tcoe,tx))**2
            return np.array(map(cvridge0,lam))
        errm = np.array(map(cvridge,self.x,self.y))
        self.cverr = errm.sum(axis = 0)
        self.lammin = lam[self.cverr.argmin()]
##################################################

x = np.loadtxt("x.txt")
y = np.loadtxt("y.txt")
lam = [1,2,3,4]
ridge1 = Ridge(x = x,y = y,lam = lam)
ridge1.cvreg()
ridge1.cverr

ridge1.ridge()
ridge1.coe()

import numpy as np
x = np.random.normal(size = (200,3))
xx = np.dot(x.T,x)
#np.identity(2)*5
print xx
xx[1:,1:] = xx[1:,1:]+np.identity(2)*5
xx

python并行


imoirt mkl
print mkl.get_max_threads()

$:ipcluster start -n 4 –profile=mpi

from ipyparallel import Client
#from mpi4py import MPI
import numpy as np
import time
c = Client()
view = c[:]
with view.sync_imports():
    import numpy
x = np.array(np.random.normal(size = (20000,1000)))
st = time.time()
view.scatter('a',x)
print 1,time.time()-st
view.activate()
view.block=True

st = time.time()
view.execute('z = numpy.dot(a.T,a)')
#%px z = numpy.dot(a.T,a)
print 2,time.time()-st

st = time.time()
z = np.array(view.get("z"))
print 3,time.time()-st

st = time.time()
b1 = np.sum(z,axis = 0)
print 4,time.time()-st
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值