Sklearn学习笔记,LogisticRegression的用法详解

简介

Sklearn (全称 Scikit-Learn) 是基于 Python 语言的机器学习工具。它建立在 NumPy, SciPy, Pandas 和 Matplotlib 之上,里面的 API 的设计非常好,所有对象的接口简单,很适合新手上路。
LogisticRegression是Sklearn线性回归模型的接口,函数原型、引用和调用的方法如下:
函数原型

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='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)

引用:

from sklearn.linear_model import LogisticRegression

调用示例

# 定义线性回归模型
model = LogisticRegression(max_iter=500)

函数参数

大部分参数使用默认即可,典型参数解释如下。

  1. penalty:正则化参数,三种取值:{‘l1’, ‘l2’, ‘elasticnet’, ‘none’}, default=’l2’
  2. C:正则强度的倒数;必须为正浮点数。与支持向量机一样,较小的值指定更强的正则化。
  3. class_weight:样本权重,可以是一个字典或者’balanced’字符串,默认为None。对于二分类模型,可以这样指定权重:class_weight={0:0.9,1:0.1},当class_weight=‘balanced’,那么类库会根据训练样本量来计算权重。某种类型样本量越多,则权重越低,样本量越少,则权重越高。
  4. solver:优化算法选择参数,五种取值:newton-cg,lbfgs,liblinear,sag,saga。default = liblinear。
    liblinear适用于小数据集,而sag和saga适用于大数据集因为速度更快。如果是L2正则化,那么4种可选的算法{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’}都可以选择。但是如果penalty是L1正则化的话,就只能选择‘liblinear’了。
  5. max_iter: 算法收敛的最大迭代次数,即求取损失函数最小值的迭代次数,默认是100。

函数接口

  1. fit(X, y, sample_weight=None):拟合模型,用来训练LR分类器,其中X是训练样本,y是对应的标记向量
  2. predict(X):用来预测样本,也就是分类,X是测试集。返回array。
  3. score(X, y, sample_weight=None) :返回给定测试集合的平均准确率(mean accuracy),浮点型数值。 对于多个分类返回,则返回每个类别的准确率组成的哈希矩阵。R^2评估模型

代码示例

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 拆分数据集
# x、y分别为原始数据、目标数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 定义模型
model = LogisticRegression(max_iter=500)
# 训练模型
model.fit(X_train, y_train)
# 评估模型
train_score = model.score(X_train, y_train)
test_score = model.score(X_test, y_test)

# 预测
pred = model.predict(x) 

你可能感兴趣的:(sklearn,学习,python)