LR有两种实现方式,IRLS和GradDes ,前者是基于Newton–Raphson algorithm更新参数的,后者是梯度下降。
代码在Github上
IRLS :
iteratively reweighted least squares, using Newton–Raphson algorithm to update.
realized according to PRML section 4.3.3
代码:
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import csv
from sklearn import preprocessing
def load_data(filename,add_one = True):
file = open(filename)
csv_file = csv.reader(file)
temp = next(csv_file)
n_samples = int(temp[0]); n_features = int(temp[1])
add = 1
if not add_one:
add = 0
datamat = np.empty((n_samples,n_features+add),dtype = np.float64)
labelmat = np.empty((n_samples,),dtype = np.int)
if add_one:
datamat[:,0] = 1
for i,line