一、LR
对 对数几率 进行 线性分类器建模。
log p/(1-p) = w*x+b
p = 1 / 1+e^(-w*x-b)
代码整体,便于复制
import numpy as np
from sklearn import preprocessing
from sklearn import datasets
class LogisticRegression:
def __init__(self,learning_rate=0.1,lamb=0.001,iters=1000,kernel='sigmoid'):
self.learning_rate = learning_rate #学习率,default=0.1
self.lamb = lamb #正则化参数,default=0.001
self.iters = iters #最大迭代次数
self.kernel = kernel #内核函数,sig/softmax
self.theta = np.zeros((1,1)) #声明参数是二维array的格式 1*1的
self.cost = [] #记录损失值
@staticmethod
def sigmoid(features,theta):
inner = np.dot(features,theta.T)
return 1/(1+np.exp(-inner))
@staticmethod
d