sklearn逻辑回归linear_model.logisticregression
sklearn.linear_model.logisticregression
(penlty='l2',dual=false,tol=0.0001,C=1.0,fit_intercept=true,intercept_scaling=1,class_weight=none,random_state=none,solver='liblinear',max_iter=100,multi_class='ovr',verbose=0,warm_star=false,n_jobs=1)
参数:
penalty:一个字符串,制定了正则化策略。
- 如果为‘l2’,则优化目标函数为:
- 如果为‘l1’,则优化目标函数为:
dual:一个布尔值。如果为true,则求解对偶形式(只是在penalty='l2',solver='liblinear'有对偶形式);
如果为false,则求原始形式。
C:一个浮点数,指定了惩罚系数的倒数。如果它的值越小,则正则化越大。
fit_intercept:一个布尔值,制定是否需要b值。如果为false,则不会计算b值(模型会假设数据已经中心化)
intercept_scaling:一个浮点数,只有当solver='liblinear'才有意义。
当采用fit_intercept时,相当于人造一个特征出来,该特征恒为1,其权重为b。
在计算正则化的时候,该人造特征也被考虑了。因此为了降低人造特征的影响,需要提供 intercept_scaling
class_weight:一个字典或者字符串'balanced'
如果为字典:则字典给出了每个分类的权重,如{class_label:weight}
如果为字符串’balanced‘:则每个分类的权重与该分类在样品中出现的频率成反比
如果未指定,则每个分类的权重为1
max_iter:一个整数,指定最大迭代数
random_state:一个整数或一个randomstate实例,或者none。
如果为整数,则它制定了随机数生成器的种子
如果为randomstate实例,则指定了随机生成器
如果为none,则使用默认的随机数生成器
solver:一个字符串,指定了求解最优化问题的算法
’newton-cg':使用牛顿法
'lbfgs':使用l-bfgs拟牛顿法
‘liblinear’:使用liblinear
‘sag’ 使用 Stochastic Average Gradient descent 算法
注:对于规模小的数据集,'liblearner'比较适用;对于规模大的数据集,'sag'比较适用。
'newton-cg'、'lbfgs'、'sag' 只处理penalty=‘12’的情况。
tol:一个浮点数,指定判断迭代收敛与否的一个阈值
multi_class:一个字符串,指定对于多分类问题的策略
ovr :one-vs-rest策略
multinomial:直接采用多分类逻辑回归策略
verbose:一个正数。用于开启/关闭迭代中间输出的日志
warm_start:一个布尔值。如果为true,使用前一次训练结果训练继续,否则从头开始
n_jobs:一个正数。指定任务并行时的cpu数量。如果-1则使用所有了用的cpu
返回值
corf_:权重向量
intercept:b值
n_iter:实际迭代次数
方法:
fix(X,y[,sample_weight]):训练模型。
predict(X):用模型进行预测,返回预测值。
score(X,y[,sample_weight]):返回(X,y)上的预测准确率(accuracy)。
predict_log_proba(X):返回一个数组,数组的元素一次是 X 预测为各个类别的概率的对数值。
predict_proba(X):返回一个数组,数组元素一次是 X 预测为各个类别的概率的概率值。
sparsify():将系数矩阵转换为稀疏格式。
set_params(** params):设置此估计器的参数。
decision_function(X):预测样本的置信度分数。
densify():将系数矩阵转换为密集阵列格式。