R 和 scikit-learn 在逻辑回归分类任务中的比较

2024-02-02

我正在做 James、Witten、Hastie、Tibshirani (2013) 所著的《R 应用统计学习简介》一书中描述的逻辑回归。

更具体地说,我将二元分类模型拟合到第 7.8.1 节中描述的 R 包“ISLR”中的“工资”数据集。

预测变量“年龄”(转换为多项式,4 次)根据二元分类工资>250 进行拟合。然后根据“真实”值的预测概率绘制年龄。

R中的模型拟合如下:

fit=glm(I(wage>250)~poly(age,4),data=Wage, family=binomial)

agelims=range(age) 
age.grid=seq(from=agelims[1],to=agelims[2])
preds=predict(fit,newdata=list(age=age.grid),se=T)
pfit=exp(preds$fit)/(1+exp(preds$fit))

完整代码(作者网站):http://www-bcf.usc.edu/~gareth/ISL/Chapter%207%20Lab.txt http://www-bcf.usc.edu/~gareth/ISL/Chapter%207%20Lab.txt
书中相应情节:http://www-bcf.usc.edu/~gareth/ISL/Chapter7/7.1.pdf http://www-bcf.usc.edu/~gareth/ISL/Chapter7/7.1.pdf (right)

我尝试将模型拟合到 scikit-learn 中的相同数据:

poly = PolynomialFeatures(4)
X = poly.fit_transform(df.age.reshape(-1,1))
y = (df.wage > 250).map({False:0, True:1}).as_matrix()
clf = LogisticRegression()
clf.fit(X,y)

X_test = poly.fit_transform(np.arange(df.age.min(), df.age.max()).reshape(-1,1))
prob = clf.predict_proba(X_test)

然后,我根据年龄范围绘制了“真实”值的概率。但结果/情节看起来完全不同。 (不是谈论 CI 带或 rugplot,只是概率图。)我在这里遗漏了什么吗?


经过更多阅读后,我了解到 scikit-learn 实现了正则化逻辑回归模型,而 R 中的 glm 没有正则化。 Statsmodels 的 GLM 实现 (python) 是未正则化的,并且给出与 R 中相同的结果。

http://statsmodels.sourceforge.net/stable/ generated/statsmodels.genmod.generalized_linear_model.GLM.html#statsmodels.genmod.generalized_linear_model.GLM http://statsmodels.sourceforge.net/stable/generated/statsmodels.genmod.generalized_linear_model.GLM.html#statsmodels.genmod.generalized_linear_model.GLM

R 包 LiblineaR 类似于 scikit-learn 的逻辑回归(当使用“liblinear”求解器时)。

https://cran.r-project.org/web/packages/LiblineaR/ https://cran.r-project.org/web/packages/LiblineaR/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 和 scikit-learn 在逻辑回归分类任务中的比较 的相关文章

  • 将 R 中的时间数据绘制为各种分辨率(分钟、小时、秒等)

    我有一些 CSV 数据 例如 Timestamp Count 2009 07 20 16 30 45 10 2009 07 20 16 30 45 15 2009 07 20 16 30 46 8 2009 07 20 16 30 46 6
  • 在 R 中,如何将 SpatialPolygons* 转换为地图对象

    我正在尝试利用ProportionalSymbolMap在此定义的地图JSS论文 http www jstatsoft org v15 i05 为了绘制比例符号 我首先需要一个地图类的对象 The methods http www ncea
  • R 中的线性模型 - 乘法表达式

    我有 3 个数值变量A B and C 我正在尝试创建一个能够预测的线性模型A 我使用的表达式是B C为了预测A 然而 当查看输出时 我无法得到我的方程 因为我得到了额外的变量 但我不知道它是什么 这是我的代码 MyData lt read
  • 在 r 中的字符串内循环以输出具有向量化值的表达式

    示例数据 gt DF A B C 1 11 22 88 2 11 22 47 3 2 30 21 4 3 30 21 gt r 1 A A i B B i A A i C C i 3 B B i C C i A A i B B i C C
  • 单词预测算法

    我确信有一篇关于此问题的帖子 但我找不到提出这个确切问题的帖子 考虑以下 我们有字典可供使用 我们收到了许多单词段落 我希望能够根据此输入预测句子中的下一个单词 假设我们有几个句子 例如 你好 我的名字是汤姆 他的名字是杰瑞 他去了没有水的
  • R 的 read.csv 在第一列名称前面加上垃圾文本[重复]

    这个问题在这里已经有答案了 我已将数据从 SQL Server Management Studio 中的结果网格导出到 csv 文件 csv 文件看起来正确 但是当我使用 read csv 将数据读入 R 数据帧时 第一个列名称前面带有 如
  • ggplot2 - 在绘图顶部添加辅助 y 轴

    对于出版物 我需要向现有绘图添加第二个 y 轴 我遇到了一种方法来做到这一点 https rpubs com kohske dual axis in ggplot2 https rpubs com kohske dual axis in g
  • 将 12 小时字符时间转换为 24 小时

    我有一个包含字符格式时间的数据集 我试图将其从 12 小时格式转换为 24 小时格式 我做了一些搜索 但我发现的所有内容似乎都假设字符已经采用 24 小时格式 这是我工作时的一个例子 times lt c 9 06 AM 4 42 PM 3
  • 使用张量流导出神经网络的权重

    我使用张量流工具编写了神经网络 一切正常 现在我想导出神经网络的最终权重以制定单一的预测方法 我怎样才能做到这一点 您需要在训练结束时使用以下命令保存模型tf train Saver https www tensorflow org ver
  • R 中的 ddply:对于每个组,查找特定变量的出现百分比

    我有一个数据集 其中包含两列 user type 和滞后响应时间 以天为单位 user type imp date lag Consumer 20130613 1 Consumer 20130612 2 Consumer 20130611
  • 使用 ggplot 添加到投影地图时 R 饼图扭曲

    我想使用 ggplot 将饼图绘制到投影地图上 然而 饼图可能由于投影而变得扭曲 有谁知道如何在不变形的情况下绘制饼图 示例代码如下 谢谢 lib c ggplot2 scatterpie lapply lib library charac
  • R 带有列和行的分面 qqplots

    我需要使用按行和列的构面创建 qqplot 我了解如何用列和行绘制分面图 但我不确定如何设置我的数据 最终 我想按列和行对数据集进行分组 然后按升序对 建模 结果和 观察到 结果进行排序 同时添加带有 行 组的列和带有 列 组的列 我一直在
  • 将文件夹中的多个 csv 文件读取到 R 中的单个数据帧中[重复]

    这个问题在这里已经有答案了 我有一个包含 332 个 csv 文件的文件夹 文件名称如下 001 csv 002 csv 003 csv 330 csv 331 csv 332 csv 所有文件都具有相同数量的变量和相同的格式 我需要读取一
  • R中无法连接odbc数据库

    我一直在尝试使用以下命令将我公司的 DMS 连接到 RodbcConnect命令 但收到以下消息 myConn lt odbcConnect NZSQL uid cejacobson pwd password Warning message
  • 使用 2 个向量参数翻转函数

    我想对需要 2 个向量参数的函数应用滚动 这是使用 data table 的示例 不起作用 library data table df lt as data table cbind data frame x 1 100 y 101 200
  • 更新两组单选按钮 - 闪亮

    我问了这个问题 反应式更新两组单选按钮 闪亮 https stackoverflow com questions 35040579 update two sets of radiobuttons reactively shiny 昨天 但也
  • 正则表达式提取美国邮政编码,但不提取假代码

    使用 XML 包和 XPath 从网站上抓取地址 有时我只能得到一个嵌入了我想要的邮政编码的字符串 提取邮政编码很简单 但有时会显示其他五位数字的字符串 以下是 df 中问题的一些变体 zips lt data frame id seq 1
  • R:(中缀)运算符的两个定义之间的冲突:如何指定包?

    在 R 中 每当两个包定义相同的函数时 很容易指定要使用哪个包pkg foo 但是 当冲突的功能是一个时 你该怎么办 infix运算符 即使用定义 举个例子 两者ggplot2 and crayon define 有没有一种方法可以让我默认
  • R 中的点图每行有多个值

    我有以下 R 输入文件 car 1 car 2 car 3 car2 1 car2 2 car2 3 然后 我使用以下命令来绘制图表 autos data 点图 autos data V2 autos data V1 但这将每个汽车和 ca
  • float() 参数必须是字符串或数字,而不是“时间戳”

    我无法使 scilearn 与日期时间系列一起工作 找到了这篇文章 但对我没有帮助 Pandas 类型错误 float 参数必须是字符串或数字 https stackoverflow com questions 41256626 panda

随机推荐

  • 安卓本地搜索

    我正在尝试在我的活动中实现本地搜索 我已经向清单文件添加了适当的意图过滤器和元数据标记 但如果我单击 搜索 按钮 它会调用标准 Android 搜索框 我的问题是什么 清单文件
  • 我可以安全地将一个分支重新设置为另一个分支,然后掌握吗?

    我必须开发分支 我找到了分支B取决于分支的代码A 我想重新建立基础A into B这样我就可以继续发展B Soon A将被合并到master 前B 但是不是现在 然后 当我合并时B 它会破坏引用吗A重新基于它 我可以重新调整基础吗B on
  • 如何将类型类模式与子类型结合起来?

    假设我在 Scala 中使用类型类模式 这是我如何制作 C 类 类型类 Foo 的一部分 Welcome to Scala version 2 9 0 1 Java HotSpot TM 64 Bit Server VM Java 1 6
  • getter和setter方法有什么用? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么要使用 getter 和 setter https stackoverflow com questions 1568091 why use getters and setters 谁能告诉我 g
  • 为什么“transform-es2015-modules-commonjs”在 Babel 6 中添加“use strict”?

    使用 Babel 6 我正在尝试not具有 use strict 在我编译的代码中 我发现这是 transform es2015 modules commonjs 插件 http babeljs io docs plugins transf
  • android共享首选项设置值

    我有偏好设置页面 它有 显示信息屏幕 字段 作为复选框 我还有信息页面 其中也应该有 再次显示 复选框 据我了解 我可以通过以下方式从偏好页面获取价值PreferencesManager getDefaultPreferences cont
  • 如何使用 aria2 保持目录结构?

    我需要同时下载文件 wget 不支持 所以我想尝试 aria2 但我在 aria2 中没有看到保留目录结构的选项 首先确定目录结构 然后构建并使用下载描述文件 aria2c i uri txt where uri txt可能包含 http
  • 关于如何为 Pygments 编写词法分析器的大量文档? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一本字典Stata http stata com 关键字和 Stata 语法的合理知识 我想花几个
  • 为什么 Log4Net 过滤器接收到评估器阈值之外的消息?

    我的 log4net 配置是这样的
  • AttributeError:模块“pydotplus”没有属性“Node”

    我正在尝试根据在 DataCamp 上找到的文章绘制我的决策树 https www datacamp com community tutorials decision tree classification python https www
  • 如何管理A-Frame使用的内存?

    我正在构建一个 Web 应用程序 它将 360 度图像加载到天空基元中 我在用着aframe react 总共有20 张360度的图片 只有一张img里面的资产a assets 一旦用户切换场景反应就会改变src资产的img并且场景将重新渲
  • 用数据填充 JList

    有没有人有关于如何填写的好的教程JList 在一个JPanel 与用户输入的数据 具体来说 我想将人员添加到选定的名册中 这是一个用一个填充它的问题吗 ArrayList 任何帮助将非常感激 创建一个 ListModel 来包装您的 jav
  • 在 Unity 2D 中移动简单对象

    我正在尝试移动一个简单的Object在 Unity 中 但我收到以下错误消息 cannot modify the return value of unityengine transform position because itar is
  • 如何以编程方式创建 SQL Server 视图的 ODBC 链接表并使其可编辑?

    当我使用向导创建到 SQL Server 的 DSN 连接时 我可以将其链接到视图 在这种情况下 Access 将其识别为可编辑表 但是 如果我使用 vba 代码对视图使用无 DSN 连接 方法 1 来自https support micr
  • 阿特金筛

    我一直在尝试学习生成素数的算法 并且在维基百科上发现了阿特金筛法 除了少数几个部分之外 我几乎理解该算法的所有部分 以下是问题 下面的三个二次方程是如何形成的 4x 2 y 2 3x 2 y 2 和 3x 2 y2 维基百科中的算法讨论了模
  • malloc(1) 的对齐要求是什么

    我听说成功调用malloc 返回适合任何类型对齐的指针 然而 要求这样做似乎毫无用处且浪费 malloc 1 返回一个指针 其对齐值大于1因为没有物体大于char可以存储到块中 对齐要求是什么malloc 1 malloc 2 etc 如果
  • 如何检测android内存不足?

    我的应用程序有很多图像 有时会由于内存不足而崩溃 我编写了在开发人员网站上找到的这个函数 public void onLowMemory 但问题是 在内存不足的情况下 这个函数永远不会被调用 我应该怎么做才能调用这个函数 当用户设备内存不足
  • 不再支持 android.useDeprecatedNdk=true

    I try to use OpenCv to build a facetracking camera app but I have a problem when I set up my OpenCv I have this error 我用
  • 如何使用/启用动画图标?

    有谁知道如何在 Angular Web 应用程序中使用 启用材料设计文档中显示的动画图标 https material io design iconography animated icons html usage https materi
  • R 和 scikit-learn 在逻辑回归分类任务中的比较

    我正在做 James Witten Hastie Tibshirani 2013 所著的 R 应用统计学习简介 一书中描述的逻辑回归 更具体地说 我将二元分类模型拟合到第 7 8 1 节中描述的 R 包 ISLR 中的 工资 数据集 预测变