liblinear

逻辑回归

匿名 (未验证) 提交于 2019-12-03 00:03:02
##逻辑回归 import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression #1.导入数据 #data = pd.read_csv(’’) #2.数据预处理 #略,最终生成x_train,y_train,x_test,y_test #此处导入鸢尾花数据 x_train, y_train = load_iris(return_X_y=True) #3.模型训练 clf = LogisticRegression(random_state=0, solver=‘lbfgs’, multi_class=‘multinomial’) clf.fit(x_train, y_train) #4.模型预测 y_predict = clf.predict(x_train[:2, :]) print(y_predict) #参数列表与调参方法 LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random

逻辑回归2-scikit-learn参数介绍

冷暖自知 提交于 2019-11-27 12:30:47
1.1 scikit-learn参数介绍 1.1.1 导入 from sklearn.linear_model import LogisticRegression 1.1.2 版本 scikit-learn==0.21.3 1.1.3 参数 1.1.3.1 penalty l1 、l2 、elasticnet 、none ,默认l2 l1: l1正则,邻回归 l2: l2正则,套索回归 elasticnet: 弹性网络,是邻回归和套索回归的正则项的混合 none: 什么都不加 在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑弹性网络和L1正则化,弹性网络优于L1正则,因为当特征数量超过训练实例数量,又或者是几个特征强相关时,L1正则的表现可能非常不稳定。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。 penalty参数的选择会影响损失函数优化算法的选择,即参数solver的选择。 若是L2正则,有4种可选的算法:“newton-cg”,“lbfgs”,“liblinear”,“sag”, 若是L1 正则,有1 种可选的算法:“liblinear ”,L1 正则化的损失函数不是连续可导的。 若是elasticnet