机器学习day7-线性回归3、逻辑回归、聚类、SVC-十二逻辑回归-分类

时间:2024-11-20 09:32:46

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)