# logistic回归问题的梯度下降算法
import numpy as np
def sigmoid(scores): #实现sigmoid函数
return 1/(1+np.exp(-scores))
# 实现逻辑回归类
class LogisticRegression:
# 学习速率eta,搜索轮数N
def fit(self,X,y,eta=0.1,N=1000):
m,n=X.shape
w=np.zeros((n,1))
for t in range(N):
h=sigmoid(X.dot(w))
g=1.0/m*X.T.dot(h-y) #对目标函数求导
w=w-eta*g # 梯度下降搜索
self.w=w #更新w
# 用训练好的logistic模型完成概率预测任务
def predict_proba(self,X):
return sigmoid(X.dot(self.w))
def predict(self,X):
proba=self.predict_proba(X)
return (proba>=0.5).astype(np.int)
# 在预测的基础上,用阈值等于0.5的阈值分类函数(最大概率分类函数)来完成类别预测任务
机器学习算法导论代码---logistic_regression_gd
最新推荐文章于 2023-12-20 17:38:05 发布