1概念
分类模型,常用于处理二分类问题
2原理
逻辑回归的输入是线性回归的输出
①.样本特征值x输入,和线性回归
$$
h(w)=w_1x_1+w_2x_2+....+b
$$
求出的w做计算,得到逻辑回归的输入
②.输入和sigmoid激活函数
$$
f(x)=\frac{1}{1+e^{-x}}
$$
做运算,得到[0,1]区间内的一个概率值
此时的损失函数为:
③.设定一个阈值(一般是0.5),大于阈值认为是正例,输出1;小于阈值认为是负例,输出0
④.将③输出的结果和真实数据的y/结果/目标值作对比判断是否一致,如果不一致则继续调整w去提高1降低0的比例
3API
sklearn.linear_model.LogisticRegression()
参数:
fit_intercept bool, default=True 指定是否计算截距
max_iter int, default=100 最大迭代次数。迭代达到此数目后,即使未收敛也会停止。
模型对象:
.coef_ 权重
.intercept_ 偏置
predict()预测分类
predict_proba()预测分类(对应的概率)
score()准确率
eg3
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
x,y=load_iris(return_X_y=True)
index=y!=2
y=y[index]
x=x[index]
x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.8)
# print(x.shape)
# print(y!=2)
print(y)
print(x.shape)
model=LogisticRegression()
model.fit(x_train,y_train)
y_pred=model.predict(x_test)
s=sum(y_test==y_pred)
print(s)
# new_x=[[4.3,2.5,7.2,2.5]]
# y_predd=model.predict(x[0:5])
# print(y_predd)