【呆板学习】为什么使用Scikit-Learn来进行逻辑回归以及如何使用Scikit-Lea ...

打印 上一主题 下一主题

主题 1963|帖子 1963|积分 5889

引言

   在Scikit-Learn中,逻辑回归是通过LogisticRegression类实现的。该类提供了多种方法来练习模型、进行预测以及评估模型性能。用户可以自定义许多参数,包括正则化类型(L1、L2或弹性网)、求解器类型(用于优化问题)、最大迭代次数等
  
  
一、为什么使用Scikit-Learn进行逻辑回归

Scikit-Learn(也称为sklearn)是一个开源的Python呆板学习库,它提供了大量用于数据发掘和数据分析的算法。以下是为什么在实现逻辑回归时选择Scikit-Learn的几个原因:
1.1 易用性

Scikit-Learn的设计哲学是“API的同等性”,这意味着一旦你熟悉了一种模型,就很轻易使用其他模型
1.2 文档和社区支持

Scikit-Learn拥有详尽的文档和生动的社区,这对于解决问题和学习新技术非常有资助
1.3 内置的数据预处理

Scikit-Learn提供了许多数据预处理工具,如特性缩放、数据转换等,这对于在应用逻辑回归之前准备数据非常重要
1.4 模型评估

该库提供了多种评估指标,如准确率、肴杂矩阵、ROC曲线等,可以资助明白模型的性能
1.5 参数调优

Scikit-Learn提供了网格搜刮(GridSearchCV)和随机搜刮(RandomizedSearchCV)等工具,可以资助找到最优的模型参数
二、使用Scikit-Learn实现逻辑回归的步调

   在呆板学习中,使用Scikit-Learn实现逻辑回归的步调通常如下:
  2.1 导入必要的库

首先,需要导入Scikit-Learn库以及其它可能需要的库
  1. import numpy as np
  2. from sklearn.linear_model import LogisticRegression
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.metrics import accuracy_score
复制代码
2.2 准备数据集

准备特性矩阵(X)和目标变量(y)。通常你需要将数据集分为练习集和测试集
  1. # 假设X和y是你的数据特征和标签
  2. # X = np.array([[...], [...], ...])
  3. # y = np.array([...])
  4. X = np.array([[0.5, 1.5], [1,1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]])
  5. y = np.array([0, 0, 0, 1, 1, 1])
  6. # 划分训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
复制代码
2.3 创建逻辑回归模型

使用LogisticRegression类创建一个逻辑回归对象。
  1. # 创建逻辑回归模型实例
  2. lr_model = LogisticRegression()
复制代码
2.4 练习模型

使用练习集数据练习模型。
  1. # 训练模型
  2. lr_model.fit(X_train, y_train)
复制代码
2.5 进行预测

使用练习好的模型对测试集进行预测。
  1. # 对测试集进行预测
  2. y_pred = lr_model.predict(X_test)
复制代码
2.6 评估模型

计算模型的准确率或其他评估指标。
  1. # 计算准确率
  2. accuracy = accuracy_score(y_test, y_pred)
  3. print(f"模型准确率:{accuracy}")
复制代码
2.7 (可选)调整模型参数

可能需要调整模型的参数来进步性能,比方使用LogisticRegressionCV来进行交叉验证的参数选择
  1. from sklearn.linear_model import LogisticRegressionCV
  2. # 创建带有交叉验证的逻辑回归模型
  3. lr_cv_model = LogisticRegressionCV(cv=5, random_state=42)
  4. lr_cv_model.fit(X_train, y_train)
  5. # 使用交叉验证后的模型进行预测
  6. y_pred_cv = lr_cv_model.predict(X_test)
  7. # 计算交叉验证后模型的准确率
  8. accuracy_cv = accuracy_score(y_test, y_pred_cv)
  9. print(f"交叉验证后模型准确率:{accuracy_cv}")
复制代码
  以上步调是使用Scikit-Learn实现逻辑回归的根本流程。在现实应用中,可能还需要进行数据预处理、特性选择、模型调优等步调
  三、使用Scikit-Learn进行逻辑回归

3.1 目标



  • 使用scikit-learn练习一个逻辑回归模型。
3.2 数据集

让我们从之前的数据集开始
3.3 导入numpy库

  1. import numpy as np
  2. X = np.array([[0.5, 1.5], [1, 1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]])
  3. y = np.array([0, 0, 0, 1, 1, 1])
复制代码
3.4 拟合模型

以下代码从scikit-learn导入逻辑回归模型。可以通过调用fit函数在这个练习数据上拟合这个模型。
  1. from sklearn.linear_model import LogisticRegression
  2. lr_model = LogisticRegression()
  3. lr_model.fit(X, y)
复制代码
输出结果:

3.5 进行预测

可以通过调用predict函数来查看这个模型做出的预测
  1. y_pred = lr_model.predict(X)
  2. print("在训练集上的预测结果:", y_pred)
复制代码
输出结果:

3.6 计算准确率

你可以通过调用score函数来计算这个模型的准确率。
  1. print("Accuracy on training set:", lr_model.score(X, y))
复制代码
输出结果:

3.7 总结

   如输出结果所示,准确率为1.0,黑白常准确的

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表