keras是python中比较流行的深度学习库,但是keras本身关注的是深度学习。而python中的scikit-learn库是建立在Scipy上的,有着比较有效的数值计算能力。sklearn是一个具有全特征的通用性的机器学习库,它提供了很多在深度学习中可以用到的工具。
先安装numpy,再安装scipy
安装sklearn之前,我们需要先安装numpy,scipy函数库。
Numpy下载地址:http://sourceforge.net/projects/numpy/files/NumPy
Scipy下载地址:http://sourceforge.net/projects/scipy/files/Scipy
2、安装sklearn机器学习库
下载地址:https://github.com/scikit-learn/scikit-learn
测试:
import scipy
import sklearn
LogisticRegression类的各项参数的含义
class sklearn.linear_model.LogisticRegression(penalty=’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_start=False, n_jobs=1)
penalty=’l2’ : 字符串‘l1’或‘l2’,默认‘l2’。
用来指定惩罚的基准(正则化参数)。只有‘l2’支持‘newton-cg’、‘sag’和‘lbfgs’这三种算法。
如果选择‘l2’,solver参数可以选择‘liblinear’、‘newton-cg’、‘sag’和‘lbfgs’这四种算法;如果选择‘l1’的话就只能用‘liblinear’算法。
dual=False : 对偶或者原始方法。Dual只适用于正则化相为l2的‘liblinear’的情况,通常样本数大于特征数的情况下,默认为False。
C=1.0 : C为正则化系数λ的倒数,必须为正数,默认为1。和SVM中的C一样,值越小,代表正则化越强。
fit_intercept=True : 是否存在截距,默认存在。
intercept_scaling=1 : 仅在正则化项为‘liblinear’,且fit_intercept设置为True时有用。
solver=’liblinear’ : solver参数决定了我们对逻辑回归损失函数的优化方法,有四种算法可以选择。
a) liblinear:使用了开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数。
b) lbfgs:拟牛顿法的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
c) newton-cg:也是牛顿法家族的一种,利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。
d) sag:即随机平均梯度下降,是梯度下降法的变种,和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多的时候。
参考文档:http://scikit-learn.org/stable/documentation.html