关于在EC2/S3上部署数据处理应用程序的文章很多,但我想知道,开发此类应用程序的典型工作流程是什么?
假设我有一个1 TB的时间序列数据,我已经设法将其存储在S3上.我如何编写应用程序并进行交互式数据分析以构建机器学习模型,然后编写大型程序来测试它们?换句话说,如何在这种情况下建立开发环境?我是否启动EC2实例,在其上开发软件并保存我的更改,并在每次我想做一些工作时关闭?
通常,我启动R或Pylab,从本地驱动器读取数据并进行分析.然后我根据该分析创建应用程序,并让它在该数据上松散.
在EC2上,我不确定我是否可以这样做.人们是否在本地保存数据以进行分析,并且只有在运行大型模拟作业时才使用EC2?
我很想知道其他人在做什么,特别是那些拥有基于EC2/S3的整个基础设施的初创公司.
我可以通过使用is_monotonic方法检查pandas.DataFrame()的索引是否单调增加.但是,我想检查其中一个列值是否严格增加值(浮点数/整数)?
In [13]: my_df = pd.DataFrame([1,2,3,5,7,6,9])
In [14]: my_df
Out[14]:
0
0 1
1 2
2 3
3 5
4 7
5 6
6 9
In [15]: my_df.index.is_monotonic
Out[15]: True
Run Code Online (Sandbox Code Playgroud) 假设有一个矩阵B,其大小为a 500*1000 double(这里,500代表观察1000的数量并代表特征的数量).
sigma是协方差矩阵B,D是一个对角矩阵,其对角元素是特征值sigma.假设A是协方差矩阵的特征向量sigma.
我有以下问题:
我需要选择k = 800对应于具有最大幅度的特征值的第一个特征向量来对所选特征进行排序.最终的矩阵命名Aq.我怎样才能在MATLAB中做到这一点?
这些选定的特征向量是什么意思?
看来最终的矩阵的大小Aq是1000*800 double有一次我计算Aq.时间点/观察信息500已经消失.对于最终的矩阵Aq,什么是价值1000矩阵Aq现在代表什么呢?此外,800矩阵中的值Aq现在代表什么?
我试图在Apache Zeppelin上完成以下用例:例如,当我编写一个sql查询时
%sql SELECT * FROM table1 WHERE column1 = ${column1=1,1|2|3|4}
Run Code Online (Sandbox Code Playgroud)
我得到一个组合框,显示这些值(1,2,3,4)作为选项.我想要做的是使用此列可用的所有不同值填充此列表(或者事实上,我可能希望从变量形式的另一段中获取任何其他值集).所以目前我仍然坚持如何在另一段中的sql语句中使用一个段落中定义的变量?
潜入代码,我看到在Zeppelin解释器中,一个名为Input.java的文件检查模式$ {someColumn = someValues},填充组合框选项,然后创建一个简单的查询,因此我已经删除通过在同一段落中运行查询来填充它的想法.
我有一个测试数据集和训练数据集,如下所示.我提供了带有最小记录的样本数据,但我的数据超过了1000条记录.这里E是我需要使用算法预测的目标变量.它只有四个类别,如1,2,3,4.它只能采用这些值中的任何一个.
培训数据集:
A B C D E
1 20 30 1 1
2 22 12 33 2
3 45 65 77 3
12 43 55 65 4
11 25 30 1 1
22 23 19 31 2
31 41 11 70 3
1 48 23 60 4
Run Code Online (Sandbox Code Playgroud)
测试数据集:
A B C D E
11 21 12 11
1 2 3 4
5 6 7 8
99 87 65 34
11 21 24 12
Run Code Online (Sandbox Code Playgroud)
由于E只有4个类别,我想用多项Logistic回归(1 vs Rest Logic)预测这个.我正在尝试使用python实现它.
我知道在变量中设置这些目标所需的逻辑,并使用算法来预测这些值中的任何一个:
output = …Run Code Online (Sandbox Code Playgroud) 我有以下数据框:
data = pd.DataFrame({'user_id' : ['a1', 'a1', 'a1', 'a2','a2','a2','a3','a3','a3'], 'product_id' : ['p1','p1','p2','p1','p1','p1','p2','p2','p3']})
product_id user_id
p1 a1
p1 a1
p2 a1
p1 a2
p1 a2
p1 a2
p2 a3
p2 a3
p3 a3
Run Code Online (Sandbox Code Playgroud)
在实际情况中,可能还有一些其他列,但我需要做的是按data_id和user_id列分组数据并计算每个组合的数量,并将其作为新数据框中的新列添加
输出应该是这样的:
user_id product_id count
a1 p1 2
a1 p2 1
a2 p1 3
a3 p2 2
a3 p3 1
Run Code Online (Sandbox Code Playgroud)
我试过以下代码:
grouped=data.groupby(['user_id','product_id']).count()
Run Code Online (Sandbox Code Playgroud)
但结果是:
user_id product_id
a1 p1
p2
a2 p1
a3 p2
p3
Run Code Online (Sandbox Code Playgroud)
实际上对我来说最重要的是拥有一个具有出现次数的列名计数,我需要稍后使用该列.
嗨,我有以下数据帧.
df3=pd.DataFrame(columns=["Devices","months"])
Run Code Online (Sandbox Code Playgroud)
我从循环行获取行值,打印(数据)
Devices months
1 Powerbank Feb month
Run Code Online (Sandbox Code Playgroud)
当我将此数据行添加到我的df3时,我收到错误.
df3.loc[len(df3)]=data
Run Code Online (Sandbox Code Playgroud) 我有两个数据帧
df1
Name class value
Sri 1 5
Ram 2 8
viv 3 4
df2
Name class value
Sri 1 5
viv 4 4
Run Code Online (Sandbox Code Playgroud)
我想要的输出是,
df,
Name class value
Sri 2 10
Ram 2 8
viv 7 8
Run Code Online (Sandbox Code Playgroud)
请帮助,提前谢谢!
我发现小提琴图信息丰富且有用,我使用 python 库“seaborn”。然而,当应用于正值时,它们几乎总是在低端显示负值。我发现这确实具有误导性,尤其是在处理现实数据集时。
在seaborn的官方文档中https://seaborn.pydata.org/ generated/seaborn.violinplot.html可以看到带有“total_bill”和“tip”的示例,它们不能为负数。然而,小提琴图显示负值。例如,
import seaborn as sns
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips, palette="muted", split=True)
Run Code Online (Sandbox Code Playgroud)
我确实明白,这些负值来自高斯核。因此,我的问题是:有什么办法可以解决这个问题吗?python 中的另一个库?可以指定不同的内核吗?
data-analysis ×10
python ×7
pandas ×5
dataframe ×3
amazon-ec2 ×1
amazon-s3 ×1
cloud ×1
matlab ×1
pca ×1
scikit-learn ×1
seaborn ×1
sql ×1
violin-plot ×1