[数据挖掘之scikit-learn] sklean.linear_model.LogisticRegression实例详解

文章目录

      • 概述
        • 5.1 sklearn.linear_model.LogisticRegression
        • 5.2 LogisticRegression示例

概述

逻辑回归是一种分类方法,原理详见小瓜讲机器学习——分类算法(一)logistic regression(逻辑回归)算法原理详解。

5.1 sklearn.linear_model.LogisticRegression

sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scalling=1, class_weight=None, 
											random_state=None, solver='warn', max_iter=100, multi_class='warn', verbose=0, warm_start=False, 
											n_jobs=None, l1_ratio=None)

参数说明:
1.penalty:正则化策略,可选‘l1’和’l2’
2.dual:选择目标函数是原始形式还是对偶问题;
3.tol:迭代终止精度;
4.C:正则化系数;
5.fit_intercept:是否计算截距,如果False,训练过程会假设数据已经中心化了;
6.intercept_scalling
7.class_weight:训练样本中的各类别样本的权重系数
8.random_state:随机种子
9.solver:损失函数的迭代计算方法

  • ‘newton-cg’:使用牛顿法
  • ‘lbfgs’:使用L-BFGS拟牛顿法
  • ‘liblinear’:使用
  • ‘sag’:随机梯度下降法

10.max_iter:最大迭代次数
11.multi_class:多类别分类策略

  • ‘ovr’:采用one-vs-rest策略进行多分类
  • ‘multinomial’:直接采用多分类逻辑回归模型

12.verbose:是否输出训练过程
13.warm_start:是否使用前一次的训练结果继续训练
14.n_jobs:指定任务时的CPU数量
15.l1_ratio:

属性说明:

1.coef_:权重系数
2.intercept:截距
3.n_iter:实际迭代次数
4.classes_

5.2 LogisticRegression示例

import numpy as np
from sklearn import linear_model, datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

iris = datasets.load_iris()
feature_X = iris.data
label_Y = iris.target

train_subset, test_subset, train_label, test_label = train_test_split(feature_X, label_Y, test_size=0.3, random_state=0)

#标准化特征
sc = StandardScaler()
sc.fit(train_subset)

train_subset_std = sc.transform(train_subset)
test_subset_std = sc.transform(test_subset)

#训练模型
lgr = linear_model.LogisticRegression(C=2, penalty='l2')
lgr.fit(train_subset_std, train_label)

label_predict = lgr.predict(test_subset_std)
accuracy = lgr.score(test_subset_std, test_label)
print(accuracy)

结果输出

0.8666666666666667

即在验证集上的准确率为0.86666.。

你可能感兴趣的:(Python数据分析,机器学习,Python)