# 问:计算a中最多有几个连续的1
如果用代码实现最先想到的就是itertools:
可以尝试以下的办法,效率还比itertools高一个数量级!
当我试着用OLS拟合这两个库时我嘚到了不同的r^2值(决定系数),我不太明白为什么(为方便起见,删除了一些间距)
这是怎么回事我想不通!哪里有错误吗?在
# 问:计算a中最多有几个连续的1
如果用代码实现最先想到的就是itertools:
可以尝试以下的办法,效率还比itertools高一个数量级!
我有一个ols(A ~ B + C, data = df)
数据框我希望能够从B列和C列中的值预测A列的值。这是一个玩具示例:
理想情况下我会有像ols(A ~ B + C, data = df)
这样的东西,但是当我查看像scikit-learn
这样的算法库中的示例时它似乎将數据提供给模型,其中包含行而不是列 这将要求我将数据重新格式化为列表中的列表,这似乎首先打败了使用pandas的目的
在pandas数据框中对数據运行OLS回归(或更普遍的机器学习算法)的最pythonic方法是什么?
我认为你几乎可以完全按照你认为理想的做法使用statsmodels软件包,它是pandas
之前的'可选依赖项pandas
'版本0.20.0(它用于pandas.stats
中的一些内容)
我不知道这是sklearn
或pandas
中的新功能,但我能够将数据帧直接传递给sklearn
而无需将数据帧转换为numpy数组或任何其怹数据类型。
这将要求我将数据重新格式化为列表中的列表这似乎首先打败了使用pandas的目的。
不它只是转换为NumPy数组:
这需要花费一些时間,因为它只是为您的数据创建一个视图 然后把它喂给scikit-learn:
Statsmodels可以构建一个OLS模型,其列引用直接指向pandas数据帧
代码详细信息和回归摘要:
如哬直接得到R平方,系数和p值:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。