小编Fat*_*ici的帖子

"S3方法"在R中意味着什么?

由于我是R的新手,我不知道S3方法和对象是什么.我发现有S3和S4对象系统,如果可能的话,有些人建议使用S3而不是S4(http://google-styleguide.googlecode.com/svn/trunk/google-r-style.html).但是,我不知道S3方法/对象的确切定义.

oop r r-s3 r-s4 r-faq

115
推荐指数
6
解决办法
4万
查看次数

Logistic回归PMML不会产生概率

作为机器学习部署项目的一部分,我构建了一个概念验证,我使用R glm函数和python 为二进制分类任务创建了两个简单的逻辑回归模型scikit-learn.之后,我PMML使用pmmlR中的from sklearn2pmml.pipeline import PMMLPipeline函数和Python中的函数将训练好的简单模型转换为s .

接下来,我在KNIME中打开了一个非常简单的工作流程,看看我是否可以将这两个人PMML付诸行动.基本上,这种概念验证的目标是测试IT是否可以使用PMML我简单地交给他们的s来获取新数据.这个练习必须产生概率,就像原始的逻辑回归一样.

在KNIME,我只读4使用行的测试数据CSV Reader节点,请阅读PMML使用PMML Reader节点,最后得到该模型用得分测试数据PMML Predictor节点.问题是预测不是我想要的最终概率,而是在此之前的一步(系数之和乘以自变量值,我猜是XBETA?).请参阅下图中的工作流程和预测:

KNIME输出

要获得最终概率,需要通过sigmoid函数运行这些数字.所以基本上对于第一个记录,而不是2.654,我需要1/(1+exp(-2.654)) = 0.93.我确信该PMML文件包含启用KNIME(或任何其他类似平台)为我执行此sigmoid操作所需的信息,但我找不到它.那是我迫切需要帮助的地方.

我查看了回归一般回归 PMML文档,我的PMML看起来很好,但我无法弄清楚为什么我无法获得这些概率.

任何帮助都非常感谢!

附件1 - 这是我的测试数据:

age credit  payfreq gmi
25  550 4   1500
27  650 4   3400
35  600 2   3200
40  680 2   4000
Run Code Online (Sandbox Code Playgroud)

附件2 - 这是我生成的R-PMML:

<?xml version="1.0"?>
<PMML version="4.2" xmlns="http://www.dmg.org/PMML-4_2" …
Run Code Online (Sandbox Code Playgroud)

python r knime pmml data-science

25
推荐指数
1
解决办法
1018
查看次数

如何有效地找到两个列表中匹配元素的索引

我正在处理两个大型数据集,我的问题如下.

假设我有两个列表:

list1 = [A,B,C,D]

list2 = [B,D,A,G]

除了O(n 2)搜索之外,如何使用Python有效地找到匹配的索引?结果应如下所示:

matching_index(list1,list2) -> [(0,2),(1,0),(3,1)]

python algorithm matching

13
推荐指数
1
解决办法
2767
查看次数

XGBoost(免费套餐)的 Amazon Sagemaker ResourceLimitExceeded 错误

我正在尝试在免费套餐 AWS Sagemaker 中创建 XGBoost 模型。我收到以下错误:

\n\n

“ResourceLimitExceeded:调用 CreateEndpoint 操作时发生错误 (ResourceLimitExceeded):帐户级服务限制“端点使用的ml.m5.xlarge”为 0 个实例,当前利用率为 0 个实例,请求增量为 1 个实例”。

\n\n

我应该使用什么正确的 train_instance_type ?

\n\n

这是我的代码:

\n\n
# import libraries\nimport boto3, re, sys, math, json, os, sagemaker, urllib.request\nfrom sagemaker import get_execution_role\nimport numpy as np                                \nimport pandas as pd                               \nimport matplotlib.pyplot as plt                   \nfrom IPython.display import Image                 \nfrom IPython.display import display               \nfrom time import gmtime, strftime                 \nfrom sagemaker.predictor import csv_serializer   \n\n# Define IAM role\nrole = get_execution_role()\nprefix = \'sagemaker/DEMO-xgboost-dm\'\ncontainers = {\'us-west-2\': \'433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest\',\n              \'us-east-1\': \'811284229777.dkr.ecr.us-east-1.amazonaws.com/xgboost:latest\',\n …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services boto3 amazon-sagemaker

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

在.NET环境中运行Python代码而不安装Python

是否可以在.NET / C#环境中生产Python代码而无需安装Python且无需将Python代码转换为C#,即按原样部署代码?

我知道安装Python语言是合理的做法,但是我很犹豫,因为我没有足够的人力,所以我不想在生产环境中引入一种新语言并处理其测试和维护复杂性知道Python可以解决这些问题的人。

我知道IronPython是基于CLR构建的,但是不知道如何在.NET中托管和维护它。它是否使人们能够将PYthon代码视为可以导入C#代码的“程序包”,而无需实际将Python安装为独立语言?在这种情况下,IronPython如何使我的生活更轻松?python.net可以给我更多的杠杆作用吗?

.net c# python ironpython python.net

7
推荐指数
3
解决办法
431
查看次数

为什么元组需要列表理解中的parantheses

众所周知,元组不是用括号定义的,而是用逗号定义的.从文档引用:

元组由许多以逗号分隔的值组成

因此:

myVar1 = 'a', 'b', 'c'
type(myVar1)
# Result:
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud)

另一个惊人的例子是:

myVar2 = ('a')
type(myVar2)
# Result:
<type 'str'>  

myVar3 = ('a',)
type(myVar3)
# Result:
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud)

即使是单元素元组也需要逗号,并且总是使用括号来避免混淆.我的问题是:为什么我们不能在列表推导中省略数组的括号?例如:

myList1 = ['a', 'b']
myList2 = ['c', 'd']

print([(v1,v2) for v1 in myList1 for v2 in myList2])
# Works, result:
[('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd')]

print([v1,v2 for v1 in myList1 for v2 in myList2])
# Does not work, result:
SyntaxError: invalid syntax …
Run Code Online (Sandbox Code Playgroud)

python tuples list-comprehension python-2.7 python-3.x

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

从阵列中获取唯一值的最快方法?

我有这样的数组

students = [{name: 'Abbey', age: 25}, {name: 'Brian', age: 45},
            {name: 'Colin', age: 25}, {name: 'Dan', age: 78}]
Run Code Online (Sandbox Code Playgroud)

我想要输出;

uniqueAges = [45, 78]
Run Code Online (Sandbox Code Playgroud)

要明确的是,如果学生数组中出现多次出现的年龄值,我不希望在uniqueAges数组中有任何具有该年龄的对象.'Abbey'和'Colin'的年龄相同,所以他们出去了.

我知道我可以做这样的事情然后跑 uniqueAgeGetter(students)

   function uniqueAgeGetter(list){
   var listCopy = list.slice();
   var uniqueAges = list.slice();
   for (var i = list.length - 1; i >= 0; i--) {
        for (var j = listCopy.length - 1; j >= 0; j--) {
            if(listCopy[j].name !== list[i].name && 
                listCopy[j].age == list[i].age){
                  uniqueAges.splice(i, 1)
                }   
            }
    }
   console.log(uniqueAges)
   return uniqueAges …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm time-complexity node.js

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

为 python/pandas 中的每一行分配组平均值

我有一个数据框,我希望根据商店和所有商店计算平均值。我创建了代码来计算平均值,但我正在寻找一种更有效的方法。

DF

Cashier#     Store#     Sales    Refunds
001          001        100      1
002          001        150      2
003          001        200      2
004          002        400      1
005          002        600      4
Run Code Online (Sandbox Code Playgroud)

DF-期望

Cashier#     Store#     Sales    Refunds     Sales_StoreAvg    Sales_All_Stores_Avg
001          001        100      1            150               290
002          001        150      2            150               290
003          001        200      2            150               290
004          002        400      1            500               290
005          002        600      4            500               290
Run Code Online (Sandbox Code Playgroud)

我的尝试我创建了两个额外的数据框,然后进行了左连接

df.groupby(['Store#']).sum().reset_index().groupby('Sales').mean() 
Run Code Online (Sandbox Code Playgroud)

python group-by mean pandas pandas-groupby

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

是否有计算空间复杂度的 Python 方法?

通过比较运行算法所需的时间与输入的大小,在 Python 中计算时间复杂度非常容易。我们可以这样做:

import time

start = time.time()
<Run the algorithm on input_n (input of size n)>
end = time.time()
time_n = end - start
Run Code Online (Sandbox Code Playgroud)

通过绘制time_nvs input_n,我们可以观察时间复杂度是否为常数、线性、指数等。

是否有类似的经验性编程方法来计算 Python 中算法的空间复杂度,我们可以在其中测量随着输入大小的增长而使用的空间量?

python complexity-theory time-complexity space-complexity

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

Pandas 与 Numpy 索引:为什么索引排序存在根本差异?

麻木:

import numpy as np
nparr = np.array([[1, 5],[2,6], [3, 7]])
print(nparr)
print(nparr[0])    #first choose the row 
print(nparr[0][1]) #second choose the column
Run Code Online (Sandbox Code Playgroud)

给出预期的输出:

[[1 5]
 [2 6]
 [3 7]]

[1 5]

5
Run Code Online (Sandbox Code Playgroud)

熊猫:

[[1 5]
 [2 6]
 [3 7]]

[1 5]

5
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

   a  b
0  1  5
1  2  6
2  3  7

0    1
1    2
2    3
Name: a, dtype: int64

2
Run Code Online (Sandbox Code Playgroud)

将 Pandas 数据框中“索引”的默认顺序更改为列第一的根本原因是什么?这种一致性/直觉性的丧失对我们有什么好处?

当然,如果我使用该iloc函数,我们可以将其编码为类似于 Numpy 数组索引:

df = pd.DataFrame({
    'a': [1, 2, 3], …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

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

通过SSLError的异常处理请求

这是我检查链接的功能。但是,当链接为假时,它将引发错误。例如,它适用于twitter.com,但不适用于twitt.com。

class Quality_Check:
    def check_broken_link(self,data):
        url= requests.head(data)

        try:
            if url.status_code==200 or url.status_code==302 or url.status_code==301:
                return True
        except requests.exceptions.SSLError as e:
            return False

qc=Quality_Check()
print(qc.check_broken_link('https://twitte.com'))
Run Code Online (Sandbox Code Playgroud)

当我尝试通过此方法处理异常时,显示以下错误:

Traceback (most recent call last):
      ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
Run Code Online (Sandbox Code Playgroud)

在处理上述异常期间,发生了另一个异常:

raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='twitte.com', 
port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, 
'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),))
Run Code Online (Sandbox Code Playgroud)

还有一个也出现了

requests.exceptions.SSLError: HTTPSConnectionPool(host='twitte.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed …
Run Code Online (Sandbox Code Playgroud)

python error-handling

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