我的数据集太大了,我正在寻找sklearn中的在线学习解决方案,他们称之为核心外学习.
它们提供了一些使用部分拟合API的类,它基本上允许您将数据的子集保存在内存中并对其进行操作.然而,许多预处理阶段(例如数据缩放)在其拟合阶段期间在训练数据上保留参数,然后将其用于变换.
例如,如果您使用最小 - 最大缩放器将要素绑定到[-1,1]或标准化您的数据,那么他们学习并最终用于转换数据的参数将从他们碰巧正在运行的训练数据的子集中学习在给定的迭代中.
这意味着在一个训练数据子集的拟合阶段期间学习的参数可能与另一个训练数据子集不同,因为它们是训练集特定的.我的问题的核心在于:
当学习参数是训练数据的函数时,如何在使用在线/核外学习的预处理步骤的拟合阶段中学习参数?
python machine-learning data-mining data-analysis scikit-learn
我有两个这样的数据帧:
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) 假设有以下内容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) 这只是一个困扰我一段时间的小问题。
我有一个由所有连续变量组成的熊猫数据框。我想为任意选择的变量对绘制散点图(使用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个散点图,这不是我想要的。
有人可以帮我吗?
提前致谢。
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)
请帮忙!
我正在编写一个 Flink 流程序,其中我需要使用一些静态数据集(信息库,IB)来丰富用户事件的 DataStream。
例如,假设我们有一个买家的静态数据集,我们有一个传入的事件点击流,对于每个事件,我们想要添加一个布尔标志,指示事件的执行者是否是买家。
实现此目的的理想方法是按用户 id 对传入流进行分区,让数据集中的买家集再次按用户 id 进行分区,然后在此数据集中查找流中的每个事件。
由于 Flink 不允许在流程序中使用 DataSets,我该如何实现上述功能?
另一种选择可能是使用托管运营商状态来存储买家集,但我如何保持此状态按用户 ID 分发,以避免在单个事件查找中进行网络输入/输出?在内存状态后端的情况下,状态是否保持由某个键分布,还是在所有操作员子任务中复制?
在 Flink 流程序中实现上述丰富需求的正确设计模式是什么?
这是我在这里的第一个问题,我希望我做对了,
我正在研究在 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
我想使用 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) 我有三个数据集(final_NN,ppt_code,herd_id),我想MapValue在final_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) 我想使用dplyr+ 滞后函数复制以下公式 R。代码工作到每组的第二行,然后继续给我 0
预测 = 滞后(价值,1)*(1-滞后(损耗)/52)
状况:
我从第 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) data-analysis ×10
python ×8
pandas ×5
dataframe ×2
scikit-learn ×2
accumulate ×1
apache-flink ×1
bigdata ×1
data-mapping ×1
data-mining ×1
dplyr ×1
grid-search ×1
jupyter ×1
matplotlib ×1
r ×1
regex ×1
widget ×1