小编Jar*_*rad的帖子

Python Statsmodels QuantReg拦截

问题设置statsmodels分位数回归问题中,它们的最小绝对偏差摘要输出显示截距.在该示例中,他们使用公式

from __future__ import print_function
import patsy
import numpy as np
import pandas as pd
import statsmodels.api as sm
import statsmodels.formula.api as smf
import matplotlib.pyplot as plt
from statsmodels.regression.quantile_regression import QuantReg

data = sm.datasets.engel.load_pandas().data

mod = smf.quantreg('foodexp ~ income', data)
res = mod.fit(q=.5)
print(res.summary())

                         QuantReg Regression Results                          
==============================================================================
Dep. Variable:                foodexp   Pseudo R-squared:               0.6206
Model:                       QuantReg   Bandwidth:                       64.51
Method:                 Least Squares   Sparsity:                        209.3
Date:                Fri, 09 Oct 2015   No. Observations:                  235
Time:                        15:44:23   Df Residuals: …
Run Code Online (Sandbox Code Playgroud)

python regression quantile statsmodels

6
推荐指数
1
解决办法
2807
查看次数

Python importlib import_module 模块的相对导入

根据这个答案,您可以importlib使用import_module相对导入,如下所示:

importlib.import_module('.c', 'a.b')
Run Code Online (Sandbox Code Playgroud)

为什么相对导入对 sklearn.feature_extraction.text 不起作用?

importlib.import_module('.text', 'sklearn.feature_extraction')
Run Code Online (Sandbox Code Playgroud)

我验证了这text是一个模块:

from types import ModuleType
import sklearn.feature_extraction.text
isinstance(sklearn.feature_extraction.text, ModuleType)
Run Code Online (Sandbox Code Playgroud)

退货

True
Run Code Online (Sandbox Code Playgroud)

编辑

我所说的“不起作用”是指它不导入模块。

我正在使用Python 3.4

绝对方式有效:

import importlib
text = importlib.import_module('sklearn.feature_extraction.text')
tfidf = text.TfidfVectorizer()
Run Code Online (Sandbox Code Playgroud)

相对方式不会:

import importlib
text = importlib.import_module('.text', 'sklearn.feature_extraction')
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    text = importlib.import_module('.text', 'sklearn.feature_extraction')
  File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2249, in _gcd_import
  File …
Run Code Online (Sandbox Code Playgroud)

python import python-3.x python-importlib

6
推荐指数
1
解决办法
2万
查看次数

将不连续的内容块扩展到 XL 屏幕上的侧边栏,而无需复制源代码块

我只是不确定如何做我想要实现的目标。

前置上下文

  1. sheriffderek 在下面的回答似乎是用 css grid 解决这个问题的一个很好的尝试。这种方法的一个缺点是,当内容被添加到 XL 屏幕上的配置文件块时,它会影响该行中的其他单元格,从而导致大的空白。是的,您可以向grid-template-areas布局添加更多行,但我的内容将是可变高度,因此此解决方案似乎可能会导致意外的空白,具体取决于内容。
  2. 鉴于我不复制代码块的限制,我开始认为这不能用纯 Bootstrap 4 和 CSS 解决。
  3. 我有多年的 CSS/HTML。无论如何,我都不是初学者。我不想讨论我的学习旅程“应该”是什么。我使用 Bootstrap 4 有几个对我很重要的原因。我会要求回答者关注这个问题的具体要求。

相关背景

  1. 我正在使用 Bootstrap 4。我更喜欢纯 Bootstrap 4 解决方案(如果可能)。来自 Bootstrap 4 的 Flex 类 OK。在这一点上,我会直接使用 CSS 和 flexbox,如果它能满足我的要求。
  2. 我有一个固定的左侧边栏。我会在小屏幕上隐藏它。左侧边栏不是这个问题的重点;当屏幕宽度在 768 和更大之间时,焦点位于中列和右列。
  3. 在768(MD分钟)之间的屏幕尺寸- 1199(LG最大值),内容块(“卡低位侧”)坐镇之间一个搜索栏,内容块(顶部)和一个主内容区域(如下图)。当屏幕尺寸缩放到 1200px (xl) 或更大时,我希望“Cards Lower Sidebar”块弹出到右侧边栏
  4. 在 768 (md min) - 1199 (lg max) 之间的屏幕宽度上,配置文件内容块位于“主要内容区域”下方。当屏幕缩放到 1200 像素 (xl) 或更大时,我希望此内容块弹出到 “卡片下侧边栏”上方右侧边栏。
  5. 我的要求是,我不能重复 HTML 源代码块两次。例如:在源中复制配置文件块两次,并根据媒体查询的屏幕大小显示一个或另一个不显示。

图1

在下图中,“卡片下部侧边栏”位于搜索框区域和“主要内容区域”之间。当屏幕转换为 xl (1200px) 时,“卡片下侧边栏”内容块会弹出,成为右下侧边栏区域。搜索框和主要内容区域保持原样。

个人资料区域弹出成为右上角的侧边栏区域。 …

html css flexbox bootstrap-4

6
推荐指数
3
解决办法
329
查看次数

具有多重身份验证的 AWS CodeCommit。不断出现致命错误:无法访问..请求的 URL 返回错误:403

有什么问题?

我的 IAM 用户有两个策略:AdministratorAccessForceMultiFactorAuthentication。当附加ForceMultiFactorAuthentication策略时,从 Windows 命令行尝试对存储库执行任何操作时都会收到 403 错误(例如:git clone ..)。当我删除该策略时,我可以使用该存储库(例如:git clone有效)。

我的问题

我的ForceMultiFactorAuthentication策略是否存在阻止代码提交工作的因素?如何通过多重身份验证正确设置 CodeCommit?

一般休闲步骤

  1. 创建名为“Admins”的 IAM 用户组,并具有 AdministratorAccess 和 ForceMultiFactorAuthentication 权限
  2. 创建非根 IAM 用户
  3. 将非根 IAM 用户添加到“Admins”组
  4. 以非根 IAM 用户身份登录,在“安全凭证”选项卡上设置 MFA 身份验证(扫描 QR 码等),并为 AWS CodeCommit 创建 HTTPS Git 凭证
  5. 在 CodeCommit 中创建存储库
  6. 从命令行,git clone https://git-codecommit...在本地尝试
  7. 命令行返回fatal: unable to access 'https://git-codecommit...': The requested URL returned error: 403
  8. 我的非根 IAM 用户从“Admins”组中删除ForceMultiFactorAuthentication策略
  9. git clone ..它克隆了存储库。有用。 …

amazon-web-services aws-codecommit multi-factor-authentication

6
推荐指数
1
解决办法
3712
查看次数

Sklearn AffinityPropagation MemoryError

我想我已经知道我的答案了,但是那里比我聪明得多,经验丰富的人很多,所以我想问一下。

我运行到MemoryError试图将我当hash_matrix<class 'scipy.sparse.csr.csr_matrix'>)来AffinityPropagation。仅10,000个样本就失败了,这在我的实际数据集范围内相对较小。

我的问题:我喜欢AffinityPropagation在较小的数据集上看到的结果,但是除非我能够将其应用于较大的数据集,否则它没有用。

我的问题:是否试图将AffinityPropagation安装在标准笔记本电脑上不太可能发生的成千上万个项目上?

我学到了什么:

  1. AffinityPropagation 不支持 partial_fit增量学习。
  2. 时间复杂度AffinityPropagation
  3. Affinity Propagation [is] most appropriate for small to medium sized datasets.

引发的错误:

Traceback (most recent call last):
  File "C:/Users/my.name/Documents/my files/Programs/clustering_test/SOexample.py", line 68, in <module>
    aff.fit(hash_matrix)
  File "C:\Python34\lib\site-packages\sklearn\cluster\affinity_propagation_.py", line 301, in fit
    copy=self.copy, verbose=self.verbose, return_n_iter=True)
  File "C:\Python34\lib\site-packages\sklearn\cluster\affinity_propagation_.py", line 105, in affinity_propagation
    S += ((np.finfo(np.double).eps * S + np.finfo(np.double).tiny * 100) *
MemoryError
Run Code Online (Sandbox Code Playgroud)

完整的工作代码示例:

import pandas as …
Run Code Online (Sandbox Code Playgroud)

python memory cluster-analysis machine-learning scikit-learn

5
推荐指数
1
解决办法
2525
查看次数

rpy2:如何获取调用 R 函数的返回值

我想R在以下位置使用以下脚本Python

> library(bfast)
> apple <- read.csv("/Users/nskalis/Downloads/R/apple.csv", sep = ";", header=TRUE)
> data = apple
# data$in_bps: is vector of double numbers
> data.ts <- ts(data$in_bps, frequency=1)
> data.fit <- bfast(data.ts, h=0.1, season="none", max.iter=1)
> data.fit$output[[1]]$Tt
> data.fit$output[[1]]$Vt.bp
> data.fit$output[[1]]$ci.Vt
> data.fit$output[[1]]$ci.Vt$confint
Run Code Online (Sandbox Code Playgroud)

因此我正在使用rpy2并做了以下操作:

from rpy2.robjects.packages import importr
import rpy2.robjects as robjects
importr("bfast")
data = range(1,100)
data = robjects.FloatVector(data)
data = robjects.r.ts(data, frequency=1)
x = robjects.r.bfast(data, h=0.1, season="none", max_iter=1)
Run Code Online (Sandbox Code Playgroud)

结果变量x等于

In [42]: x …
Run Code Online (Sandbox Code Playgroud)

python r rpy2

5
推荐指数
1
解决办法
2035
查看次数

创建自定义sklearn TransformerMixin,可以一致地转换分类变量

这个问题不像有人建议的那样重复.为什么?因为在该示例中,所有可能的值都是已知的.在这个例子中,它们不是.此外,这个问题 - 除了在未知值上使用自定义转换器 - 还要具体询问如何以与初始变换相同的方式执行变换.我再一次可以告诉我最终必须回答我自己的问题.


在创建自定义scikit-learn变换器时,如何保证或"强制"转换方法仅输出最初安装的列?

下面说明.这是我的示例变压器.

import numpy as np
import pandas as pd
from sklearn.base import TransformerMixin
from sklearn.linear_model import LogisticRegression

class DFTransformer(TransformerMixin):

    def fit(self, df, y=None, **fit_params):
        return self

    def transform(self, df, **trans_params):
        self.df = df
        self.STACKER = pd.DataFrame()

        for col in self.df:
            dtype = self.df[col].dtype.name
            if dtype == 'object':
                self.STACKER = pd.concat([self.STACKER, self.get_dummies(col)], axis=1)
            elif dtype == 'int64':
                self.STACKER = pd.concat([self.STACKER, self.cut_it(col)], axis=1)

        return self.STACKER

    def get_dummies(self, name):
        return pd.get_dummies(self.df[name], prefix=name)

    def cut_it(self, name, …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

5
推荐指数
1
解决办法
5339
查看次数

使用 SKLearn 的 Django 项目中的 Heroku 内存配额大大超过

我在 Heroku 上部署了一个 Django 应用程序,目的是允许受信任的、已知的、内部用户上传一个 CSV 文件,点击“运行”,然后在幕后,Django 应用程序:

  1. 加载一个保存的 sklearn 管道.pkl模型(比如120 MB 大小)
  2. 使用 Pandas 读取用户的 CSV 数据
  3. predict使用 CSV 数据作为输入调用模型
  4. 使用 Django 存储将文件输出到 S3

这适用于小型 CSV 文件,但Memory quota vastly exceeded如果用户上传大型CSV 文件,则会导致......并且较大的 CSV 文件会增加内存消耗是有道理的。

我不确定在哪里调整。我想知道是否有人在部署 sklearn 模型时遇到过类似的情况以及他们如何“解决”它?

我的想法是:

  1. 识别内存泄漏?甚至不知道从哪里开始这个。DjangoDEBUG设置为False.
  2. 更改我的 celery 任务以分块处理输入的文件?
  3. 用 joblib 以某种方式制作一个更小的 SKLearn 管道文件(我已经使用了 compress=1)?
  4. 增加 Heroku dynos?工人?

我的 django models.py 看起来像这样:

from django.db import models
from django.urls import reverse


class MLModel(models.Model):
    name = models.CharField(max_length=80)
    file = …
Run Code Online (Sandbox Code Playgroud)

django heroku celery django-storage scikit-learn

5
推荐指数
1
解决办法
1807
查看次数

YouTube API:检查其他人的视频是否已获利

有一个网站叫:TubeSift

此工具确定视频是否“货币化”。

我的简单问题是...

有没有办法通过某些 YouTube API 确定特定的 YouTube 视频是否已获利(可以显示插播广告)?

如果是哪个 YouTube API?

如果没有,那么TubeSift 如何确定这一点?抓取响应?

重要区别:这将是您没有身份验证或凭据来管理的视频 - 即:它是其他人的视频。

类似的问题问的东西略有不同

免责声明 我意识到这个问题似乎偏离主题,因为它没有代码示例,但 YouTube 的如何获取帮助说基本上在 StackOverflow 上提出问题以获得帮助。

我们支持 Stack Overflow 上的 YouTube 数据 API。Google 工程师使用 youtube-api、youtube-data-api 和 youtube-v3-api 标签监控和回答问题。

真的无处可问。

youtube-api youtube-data-api

5
推荐指数
1
解决办法
2万
查看次数

Python Pandas将独特的列值拆分为自己的列

df = pd.DataFrame({'Col1': ['label1', 'label1', 'label2', 'label2',
          'label3', 'label3', 'label4'],
 'Col2': ['a', 'd', 'b', 'e', 'c', 'f', 'q']}, columns=['Col1', 'Col2'])
Run Code Online (Sandbox Code Playgroud)

看起来像这样

     Col1 Col2
0  label1    a
1  label1    d
2  label2    b
3  label2    e
4  label3    c
5  label3    f
6  label4    q
Run Code Online (Sandbox Code Playgroud)

对于其中的唯一值Col1,我想将列的唯一值转换为列.从某种意义上说,我试图将" Col1取消堆叠" 值作为列标题,行值将是其中的值Col2.我的关键主要问题是我不是在计算任何数字数据 - 它都是文本 - 而我只是试图重塑结构.

这是期望的结果:

  label1 label2 label3 label4
0      a      b      c      q
1      d      e      f    NaN
Run Code Online (Sandbox Code Playgroud)

我试过:stack,unstack,pd.melt,pivot_table, …

python grouping text pandas

4
推荐指数
1
解决办法
533
查看次数