介绍
逻辑回归是一个常见的分类模型,他的公式非常简单,是y= 1/(1+e^-(wx+b)),它跟线性回归的区别就是多了一个分类函数 ,cls(x) = 1/(1+e^-x)。
常规任务
一般来说,我们习惯用逻辑回归做分类任务,然后通过precision,recall,accuracy等指标去判断这个模型学习的效果 。如果这些指标学习的不太好,我们可以通过w的各个维度的值来判断模型学习的方向是否符合业务。
数据准备
我们需要的数据是 m行 ,n列 的表格数据, csv 或者是Excel都可以。
我这里用pandas 自带的read excel进行xlsx文件的读取。
注意在机器学习中,n是 维度。那么我们的csv文件应该有一列是 label , 也就是y
其他列都是x。
环境准备
python 3
在命令行输入
pip install pandas
pip install sklearn
基本上完成安装
基本代码
import pandas as pd
df = pd.read_excel('xxx.xlsx')
y = df['label']
features = [....]
X = df[features]
logreg = linear_model.LogisticRegression(C=1e3)
logreg.fit(X,y)
res = logreg.score(X,y)
print(res)
这些代码基本上就训练好一个模型了
参数
逻辑回归模型本身可以调 penalty , 也就是 lasso 和ridge 正则, 还有就是对应的C参数,c越小,表示模型复杂度约束越紧。
模型参数查看
w = model.coef_.tolist()[0]
b = model.intercept_.tolist()[0]
有了这两个, 你就可以根据 wx+b对数据的分数进行排序了。
你会发现, w越大,y越靠近 1/(1+1/(e^ 无穷)) = =1/(1+0)=1 ,也就是概率越大