03-Logistic回归算法

一、梯度下降法实现逻辑回归

1、生成分类数据

2、梯度下降法实现逻辑回归

二、Kaggle糖尿病案例预测实战

1、梯度下降法实现

2、 sklearn实现逻辑回归

 三、逻辑回归实现三分类


ps:本文所有代码都在上面的资源里,可自行下载

一、梯度下降法实现逻辑回归

1、生成分类数据

利用sklearn中的datasets库中的make_blobs生成200条二分类数据,数据可视化如图所示。

#生成200条二分类数据(2个特征)
from sklearn.datasets import make_blobs
X,y = make_blobs(n_samples= 200,n_features=2,centers =2,random_state=8)
#数据可视化
import matplotlib.pyplot as plt
plt.scatter(X[:,0],X[:,1],c=y)

2、梯度下降法实现逻辑回归

梯度下降算法

\theta _{j} :=\theta _{j} -\frac{a}{m} \sum_{i=1}^{m} (h_{\theta }(x^{(i)})-y^{(i)})x_{j}^{(i)}

h_{\theta } (x)=\frac{1}{1+e^{-\theta ^{T} x} }

#添加全一列
import pandas as pd 
import numpy as np
x_ones=np.ones((X.shape[0],1))
X=np.hstack((X,x_ones))

拆分训练集和测试集

#拆分数据
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=8)

查看数据维度

#查看数据维度
print(X.shape,X_train.shape,X_test.shape)
print(y.shape,y_train.shape,y_test.shape)

将因变量转为列变量

#将因变量转为列变量
y_trian = y_train.reshape(-1,1)
y_test = y_test.reshape(-1,1)
print(y_trian.shape,y_test.shape)

初始化theta值

theta=np.ones([X_train.shape[1],1])
theta

定义sigmoid函数,计算出每一次迭代的theta值

#设置步长
alpha=0.001
m=140
num_iters=10000
#定义sigmoid函数
def sigmoid(z):
    s=1.0/(1+np.exp(-z))
    return s
for i in range(num_iters):
    h = sigm
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suki百香果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值