标签: data-analysis

如何将训练集特定的学习参数与sklearn在线(核心外)学习相结合

我的数据集太大了,我正在寻找sklearn中的在线学习解决方案,他们称之为核心外学习.

它们提供了一些使用部分拟合API的类,它基本上允许您将数据的子集保存在内存中并对其进行操作.然而,许多预处理阶段(例如数据缩放)在其拟合阶段期间在训练数据上保留参数,然后将其用于变换.

例如,如果您使用最小 - 最大缩放器将要素绑定到[-1,1]或标准化您的数据,那么他们学习并最终用于转换数据的参数将从他们碰巧正在运行的训练数据的子集中学习在给定的迭代中.

这意味着在一个训练数据子集的拟合阶段期间学习的参数可能与另一个训练数据子集不同,因为它们是训练集特定的.我的问题的核心在于:

当学习参数是训练数据的函数时,如何在使用在线/核外学习的预处理步骤的拟合阶段中学习参数?

python machine-learning data-mining data-analysis scikit-learn

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

合并两个添加相应值的pandas数据帧

我有两个这样的数据帧:

df1 = pd.DataFrame({'A': [1,0,3], 'B':[0,0,1], 'C':[0,2,2]}, index =['a','b','c'])
df2 = pd.DataFrame({'A': [0,0], 'B':[2,1]}, index =['a','c'])
Run Code Online (Sandbox Code Playgroud)

df1和df2:

   | A | B | C |          | A | B |    
---|---|---|---|       ---|---|---|
 a | 1 | 0 | 0 |        a | 0 | 2 |   
 b | 0 | 0 | 2 |        c | 0 | 1 |
 c | 3 | 1 | 2 |
Run Code Online (Sandbox Code Playgroud)

预期的结果是:

   | A | B | C |
---|---|---|---|
 a | 1 | …
Run Code Online (Sandbox Code Playgroud)

python data-analysis pandas

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

在熊猫中按年/月/日分组

假设有以下内容DataFrame:

rng = pd.date_range('1/1/2011', periods=72, freq='H')
np.random.seed(10)
n = 10
df = pd.DataFrame(
    {
        "datetime": np.random.choice(rng,n),
        "cat": np.random.choice(['a','b','b'], n),
        "val": np.random.randint(0,5, size=n)
        }
    )
Run Code Online (Sandbox Code Playgroud)

如果我现在groupby:

gb = df.groupby(['cat','datetime']).sum()
Run Code Online (Sandbox Code Playgroud)

我得到cat每小时的总数:

cat datetime            val
a   2011-01-01 00:00:00 1
    2011-01-01 09:00:00 3
    2011-01-02 16:00:00 1
    2011-01-03 16:00:00 1
b   2011-01-01 08:00:00 4
    2011-01-01 15:00:00 3
    2011-01-01 16:00:00 3
    2011-01-02 04:00:00 4
    2011-01-02 05:00:00 1
    2011-01-02 12:00:00 4
Run Code Online (Sandbox Code Playgroud)

但是,我希望有类似的东西:

cat datetime   val
a   2011-01-01 4
    2011-01-02 1
    2011-01-03 …
Run Code Online (Sandbox Code Playgroud)

python data-analysis business-intelligence pandas

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

在Jupyter Notebook的同一单元格中删除涉及交互式小部件的过去Matplotlib图

这只是一个困扰我一段时间的小问题。

我有一个由所有连续变量组成的熊猫数据框。我想为任意选择的变量对绘制散点图(使用matplotlib),同时还要利用Jupyter中的交互式小部件。

假设数据具有3个数字列:“ a”,“ b”和“ c”。

到目前为止,我有以下几行代码:

def g(x,y):
    plt.scatter(x, y)
interactive_plot = interactive(g, x=['a','b','c'], y=['a','b','c'])
interactive_plot
Run Code Online (Sandbox Code Playgroud)

而且它们运行良好,因为每当我使用x和y的下拉框切换并从3个可用变量中选择一对变量时,它们便会绘制散点图。但是,这里的问题在于,在显示新图之前,不会擦除之前搅动过的图。换句话说,matplotlib不会更新现有图中的绘图,而只是将绘图/图形相互叠加。因此,如果我将变量对的选择更改10次,我会得到10个散点图,这不是我想要的。

有人可以帮我吗?

提前致谢。

python widget matplotlib data-analysis jupyter

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

`error:unbalanced括号`,同时检查项目是否存在于pandas数据帧中

df=pd.DataFrame({"A":["one","two","three"],"B":["fopur","give","six"]})
Run Code Online (Sandbox Code Playgroud)

当我做,

df.B.str.contains("six").any()
out[2]=True
Run Code Online (Sandbox Code Playgroud)

当我做,

df.B.str.contains("six)").any()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,

C:\ProgramData\Anaconda3\lib\sre_parse.py in parse(str, flags, pattern)
    868     if source.next is not None:
    869         assert source.next == ")"
--> 870         raise source.error("unbalanced parenthesis")
    871 
    872     if flags & SRE_FLAG_DEBUG:

error: unbalanced parenthesis at position 3
Run Code Online (Sandbox Code Playgroud)

请帮忙!

python regex data-analysis dataframe pandas

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

在 Flink 流中使用静态 DataSet 丰富 DataStream

我正在编写一个 Flink 流程序,其中我需要使用一些静态数据集(信息库,IB)来丰富用户事件的 DataStream。

例如,假设我们有一个买家的静态数据集,我们有一个传入的事件点击流,对于每个事件,我们想要添加一个布尔标志,指示事件的执行者是否是买家。

实现此目的的理想方法是按用户 id 对传入流进行分区,让数据集中的买家集再次按用户 id 进行分区,然后在此数据集中查找流中的每个事件。

由于 Flink 不允许在流程序中使用 DataSets,我该如何实现上述功能?

另一种选择可能是使用托管运营商状态来存储买家集,但我如何保持此状态按用户 ID 分发,以避免在单个事件查找中进行网络输入/输出?在内存状态后端的情况下,状态是否保持由某个键分布,还是在所有操作员子任务中复制?

在 Flink 流程序中实现上述丰富需求的正确设计模式是什么?

data-analysis bigdata apache-flink flink-streaming

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

为什么 GridSearchCV 模型结果与我手动调优的模型不同?

这是我在这里的第一个问题,我希望我做对了,

我正在研究在 kaggle 上流行的泰坦尼克号数据集,如果你想检查数据科学框架:达到 99% 的准确度,这个 tutarial

第 5.2 部分,它教了如何网格搜索和调整超参数。在具体说明我的问题之前,让我与您分享相关代码;

这是使用 GridSearchCV 调整模型:

cv_split = model_selection.ShuffleSplit(n_splits = 10, test_size = .3, train_size = .6, random_state = 0)
#cv_split = model_selection.KFold(n_splits=10, shuffle=False, random_state=None)

param_grid = {'criterion': ['gini', 'entropy'],
'splitter': ['best', 'random'], #splitting methodology; two supported strategies - default is best
'max_depth': [2,4,6,8,10,None], #max depth tree can grow; default is none
'min_samples_split': [2,5,10,.03,.05], #minimum subset size BEFORE new split (fraction is % of total); default is 2
'min_samples_leaf': [1,5,10,.03,.05], #minimum …
Run Code Online (Sandbox Code Playgroud)

python machine-learning data-analysis scikit-learn grid-search

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

使用python将单元格数据拆分为多行

我想使用 python 将单元格中包含的数据拆分为多行。下面给出了这样的一个例子:

这是我的数据:

fuel          cert_region   veh_class   air_pollution      city_mpg     hwy_mpg    cmb_mpg  smartway
ethanol/gas    FC              SUV          6/8              9/14        15/20      1/16      yes
ethanol/gas    FC              SUV          6/3              1/14        14/19      10/16     no
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这种形式:

fuel          cert_region   veh_class   air_pollution     city_mpg     hwy_mpg    cmb_mpg   smartway
ethanol         FC             SUV          6               9           15          1          yes
 gas            FC             SUV          8               14          20          16         yes
ethanol         FC             SUV          6               1           14          10         no  
 gas            FC             SUV          3               14          19          16         no
Run Code Online (Sandbox Code Playgroud)

以下代码返回错误:

import numpy as np
from itertools import chain

# return …
Run Code Online (Sandbox Code Playgroud)

python data-analysis pandas

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

一种在多个数据集中映射数据的更好方法,具有多个数据映射规则

我有三个数据集(final_NNppt_codeherd_id),我想MapValuefinal_NN数据框中添加一个名为的新列,并且可以从其他两个数据框中检索要添加的值,规则在代码后的底部。

import pandas as pd

final_NN = pd.DataFrame({
    "number": [123, 456, "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown", "Unknown"],
    "ID": ["", "", "", "", "", "", "", "", 799, 813],
    "code": ["", "", "AA", "AA", "BB", "BB", "BB", "CC", "", ""]
})

ppt_code = pd.DataFrame({
    "code": ["AA", "AA", "BB", "BB", "CC"],
    "number": [11, 11, 22, 22, 33]
})

herd_id = pd.DataFrame({
    "ID": [799, 813],
    "number": [678, 789]
})

new_column = …
Run Code Online (Sandbox Code Playgroud)

python data-mapping data-analysis dataframe pandas

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

在同一个变异函数 dplyr 中使用滞后结果

我想使用dplyr+ 滞后函数复制以下公式 R。代码工作到每组的第二行,然后继续给我 0

预测 = 滞后(价值,1)*(1-滞后(损耗)/52)

状况:

  1. 预测的第一个值应该是空的,因为我们已经有了值。
  2. 第二行根据 Attrition 和 Value 列的先前值进行计算。
  3. 第三行之前的值应分别从预测(不是值列)和损耗列中选取。

我从第 3 行开始得到 0。下面是我的复制代码。

data <- data %>% group_by(Patch) %>% mutate(id = row_number())
data <- data %>% group_by(Patch) %>% mutate(forecast = lag(Value,1)*(1-lag(Attrition,1)/52))

tbl_df(data)
# A tibble: 12 x 6
   Patch Week       Value Attrition    id forecast
   <chr> <date>     <dbl>     <dbl> <int>    <dbl>
 1 11P11 2021-06-14     2     0.075     1   NA    
 2 11P11 2021-06-21     0     0.075     2    2.00 
 3 11P11 2021-06-28     0     0.075     3    0    
 4 …
Run Code Online (Sandbox Code Playgroud)

r data-analysis accumulate dplyr rolling-computation

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