首页 > 编程知识 正文

逻辑回归算法原理,逻辑回归算法步骤

时间:2023-05-05 08:05:07 阅读:51323 作者:3707

逻辑回归分类算法首先看用线性回归分类的问题。 你怎么判断肿瘤是否是恶性的?

很明显线性回归在分类问题中不能处理边界点的位置。

同时,线性回归健壮性不够强,有噪声就“投降”

使用逻辑回归——对问题进行分类

Sigmoid函数(压缩函数)

在sigmoid函数中,z在e-z中的正负决定了g(z )的值最后是大于还是小于0.5。 即,在z大于0情况下,g(z )大于0.5,在z小于0的情况下,g(z )小于0.5

在与z对应的式为分类边界的情况下,正好分类边界的两侧与z对应而正负不同,所以分类边界的两侧分别与g(z ) 0.5和g ) z ) 0.5对应,能够根据g ) z和0.5的大小关系进行分类

来看两个示例

用压缩函数对线性回归拟合的值进行压缩,压缩完成后用0.5建立概率判断边界,可以将样本分为正样本和负样本两种

逻辑客户端回归损失函数的平方损失函数问题,用梯度下降法求解算法可能得不到全局最优解,最小二乘法求解不适用于多变量函数。

我们期望的损失函数是凸函数,可以用梯度下降求得最优值。

请考虑对数函数可以根据零点将数据定义分为正类和负类。

因此,在逻辑回归分类算法中,损耗函数的定义如下:

因此,在逻辑回归分类算法中,损耗函数的定义如下:

梯度下降法求解

代码示例importnumpyasnpimportpandasaspdfromsklearn.linear _ modelimportlogisticregressionfromsklearn.preprocessingimportstandtandard n.pipelineimportpipelinefromsklearn.datasetsimportload _ irisimportmatplotlibasmplimportmatplibasmplimportmatplibas _ _ _ 部署sklearn中的数据集, iris光圈=load_iris(df=PD.dataframe ) data=I rata columns=iris.feature _ names (df (class ) )=iris.targetdf 对t _ names [2] } # path=' iris.data ' # data=PD.read _ CSV (path,header=None ) )类别进行编码df [ y=NP.split :2]#训练模型lr=pipeline((((sc ',StandardScaler ) (clf ),逻辑注册() ) ) lr.firession y.ravel () y_hat=lr.predict(x ) x ) y_hat_prob=lr.predict_proba(x ) x ) NP.set _ print选项) y_hat_prob (打印) )精度: %.2f%% ) ) 100*NP.mean ) y _ hat x1 _ max=x [ :0 ].min (,x [ 3:0 ] n ) t2=NP.Linspace(x2_min,x2_max,m ) x1,x2=NP.meshgrid(T1, T2 ) #生成网格采样点x_test=NP.Stest )的axis=1) #测试点mpl.rcparams [ ' font.sans-serif ' ]=[ ' simhei ' ] mm=Faris预测值y_hat=y_hat.reshape(x1.shape ) )与输入的形状相同PLT.figure ) facecolor='w ' ) PLT.pcolormesh (x1.shape ) 使其为y_hat)、c=np.squeeze(y (,s=50 ) #显示示例plt.xlabel )、fontsize=14 ) plt.ylabel )、fontsize=110

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。