> 演示调用SKLearn API,实现逻辑分类及多元逻辑分类。
> 本课学习时长评估:2小时。
> [代码原始链接](https://www.cnblogs.com/yuxiangyang/p/11186809.html)
> [代码用的数据链接](https://github.com/LXP-Never/data)
## 前置学习内容
[经典算法-逻辑回归](https://www.kancloud.cn/pumadong/laodong_ml/1685772)
## 代码演示
代码演示部分,点击代码原始链接学习查看即可。
### 二元逻辑分类
逻辑分类:----底层为线性回归问题
通过输入的样本数据,基于多元线型回归模型求出线性预测方程。
y = w0+w1x1+w2x2
但通过线型回归方程返回的是连续值,不可以直接用于分类业务模型,所以急需一种方式使得把连续的预测值->离散的预测值。
[-oo, +oo]->{0, 1}
逻辑函数(sigmoid):y = 1 / (1+e^(-x)), 该逻辑函数当x>0,y>0.5;当x<0, y<0.5;
可以把样本数据经过线性预测模型求得的值带入逻辑函数的x,即将预测函数的输出看做输入被划分为1类的概率,
择概率大的类别作为预测结果,可以根据函数值确定两个分类。这是连续函数离散化的一种方式。
逻辑回归相关API:
import sklearn.linear_model as lm
# 构建逻辑回归器
# solver:逻辑函数中指数的函数关系(liblinear为线型函数关系)
# C:参数代表正则强度,为了防止过拟合。正则越大拟合效果越小。
model = lm.LogisticRegression(solver='liblinear', C=正则强度)
model.fit(训练输入集,训练输出集)
result = model.predict(带预测输入集)
### 多元逻辑分类
多元逻辑分类:----底层为线性回归问题
通过多个二元分类器解决多元分类问题。
特征1 特征2 ==> 所属类别
7 ==> A
3.5 8 ==> A
1.2 1.9 ==> B
5.4 2.2 ==> C
若拿到一组新的样本,可以基于二元逻辑分类训练出一个模型判断属于A类别的概率。
再使用同样的方法训练出两个模型分别判断属于B、C类型的概率,最终选择概率最高的类别作为新样本的分类结果。
逻辑回归相关API:
import sklearn.linear_model as lm
# 构建逻辑回归器
# solver:逻辑函数中指数的函数关系(liblinear为线型函数关系)
# C:参数代表正则强度,为了防止过拟合。正则越大拟合效果越小。
model = lm.LogisticRegression(solver='liblinear', C=正则强度)
model.fit(训练输入集,训练输出集)
result = model.predict(带预测输入集)