我正在使用Spark 1.3.1(PySpark),我使用SQL查询生成了一个表.我现在有一个对象DataFrame.我想将此DataFrame对象(我将其称为"表")导出到csv文件,以便我可以操作它并绘制列.如何将DataFrame"表" 导出到csv文件?
谢谢!
python dataframe export-to-csv apache-spark apache-spark-sql
我正在阅读原始 PPO 论文并尝试将其与稳定基线 PPO2模型的输入参数相匹配。
我不明白的一件事是方法中的total_timesteps参数learn。
论文中提到
一种策略梯度实现方式……运行 T 个时间步长的策略(其中 T 远小于剧集长度)
虽然稳定基线文档将total_timesteps参数描述为
(int) 要训练的样本总数
因此,我认为T在论文和total_timesteps文档中是相同的参数。
我不明白的是:
是否total_timesteps总是需要小于或环境中的(说如果我有帧的数量有限喜欢1,000,000)等于可用“帧”(样本)的总数。如果是这样,为什么?
通过设置total_timesteps一个小于可用帧数的数字,代理会看到训练数据的哪一部分?例如,如果total_timesteps=1000,代理是否只看到前 1000 帧?
一集是定义为可用帧的总数,还是定义为代理第一次“松动”/“死亡”的时间?如果是后者,那么你怎么能提前知道代理什么时候会死才能设置total_timesteps一个较小的值呢?
我仍在学习 RL 背后的术语,所以我希望我能够在上面清楚地解释我的问题。非常欢迎任何帮助/提示。
当我训练我的lda模型时
dictionary = corpora.Dictionary(data)
corpus = [dictionary.doc2bow(doc) for doc in data]
num_cores = multiprocessing.cpu_count()
num_topics = 50
lda = LdaMulticore(corpus, num_topics=num_topics, id2word=dictionary,
workers=num_cores, alpha=1e-5, eta=5e-1)
Run Code Online (Sandbox Code Playgroud)
我希望num_topics为每个文档获得所有内容的完整主题分发.也就是说,在这种特殊情况下,我希望每个文档都有50个主题有助于分发,我希望能够访问所有50个主题的贡献.如果严格遵守LDA的数学,这个输出就是LDA应该做的.然而,仅gensim输出超过一定的阈值,如图主题在这里.例如,如果我尝试
lda[corpus[89]]
>>> [(2, 0.38951721864890398), (9, 0.15438596408262636), (37, 0.45607443684895665)]
Run Code Online (Sandbox Code Playgroud)
它只显示了对文档89贡献最大的3个主题.我在上面的链接中尝试了解决方案,但这对我不起作用.我仍然得到相同的输出:
theta, _ = lda.inference(corpus)
theta /= theta.sum(axis=1)[:, None]
Run Code Online (Sandbox Code Playgroud)
产生相同的输出,即每个文档只有2,3个主题.
我的问题是如何更改此阈值,以便我可以访问每个文档的完整主题分布?无论主题对文档的贡献多么微不足道,我如何访问完整的主题分发?我想要完整分发的原因是我可以在文档的分发之间执行KL相似性搜索.
提前致谢
我运行蒙特卡罗模拟并行使用joblib。然而,我注意到虽然我的种子是固定的,但我的结果一直在变化。但是,当我连续运行该过程时,它如我所料保持不变。
下面我实现了一个小例子,模拟具有较高方差的正态分布的均值。
加载库并定义函数
import numpy as np
from joblib import Parallel, delayed
def _estimate_mean():
np.random.seed(0)
x = np.random.normal(0, 2, size=100)
return np.mean(x)
Run Code Online (Sandbox Code Playgroud)
我串联实现的第一个示例- 结果都与预期相同。
tst = [_estimate_mean() for i in range(8)]
In [28]: tst
Out[28]:
[0.11961603106897,
0.11961603106897,
0.11961603106897,
0.11961603106897,
0.11961603106897,
0.11961603106897,
0.11961603106897,
0.11961603106897]
Run Code Online (Sandbox Code Playgroud)
我在 Parallel 中实现的第二个例子:(注意有时手段是一样的,其他时候不一样)
tst = Parallel(n_jobs=-1, backend="threading")(delayed(_estimate_mean)() for i in range(8))
In [26]: tst
Out[26]:
[0.11961603106897,
0.11961603106897,
0.11961603106897,
0.11961603106897,
0.11961603106897,
0.1640259414956747,
-0.11846452111932627,
-0.3935934130918206]
Run Code Online (Sandbox Code Playgroud)
我希望并行运行与固定种子相同。我发现如果我实施RandomState修复种子似乎可以解决问题:
def _estimate_mean():
local_state …Run Code Online (Sandbox Code Playgroud) 我正在使用Apache Spark Mllib 1.4.1(PySpark,Spark的python实现)来生成基于我所拥有的LabeledPoint数据的决策树.树生成正确,我可以将它打印到终端(提取规则,因为该用户称之为如何从决策树spark MLlib中提取规则):
model = DecisionTree.trainClassifier( ... )
print(model.toDebugString()
Run Code Online (Sandbox Code Playgroud)
但我想要做的是将决策树可视化或绘制,而不是将其打印到终端.有什么方法可以在PySpark中绘制决策树,或者我可以保存决策树数据并使用R来绘制它吗?谢谢!
我有一个df看起来像这样的数据框:
df.head()
id feedback nlp_model similarity_score
0xijh4 1 tfidf 0.36
0sdnj7 -1 lda 0.89
kjh458 1 doc2vec 0.78
....
Run Code Online (Sandbox Code Playgroud)
我想对similairty_score列中的每个唯一值使用 seaborn 以箱线图形式绘制与反馈的关系model:tfidf, lda, doc2vec。我的代码如下:
fig, ax = plt.subplots(figsize=(10,8))
ax = sns.boxplot(x="feedback", y="similarity_score", data=df[df.nlp_model=='tfidf'])
ax = sns.swarmplot(x="feedback", y="similarity_score", data=df[df.nlp_model=='tfidf'], color="0.25")
fig, ax = plt.subplots(figsize=(10,8))
ax = sns.boxplot(x="feedback", y="similarity_score", data=df[df.nlp_model=='lda'])
ax = sns.swarmplot(x="feedback", y="similarity_score", data=df[df.nlp_model=='lda'], color="0.25")
fig, ax = plt.subplots(figsize=(10,8))
ax = sns.boxplot(x="feedback", y="similarity_score", data=df[df.nlp_model=='doc2vec'])
ax = sns.swarmplot(x="feedback", y="similarity_score", data=df[df.nlp_model=='doc2vec'], color="0.25")
plt.show() …Run Code Online (Sandbox Code Playgroud) 我想使用PyMuPDF读取 PDF 文件。我需要的只是纯文本(不需要提取颜色、字体、表格等信息)。
我尝试过以下方法
import fitz
from fitz import TextPage
ifile = "C:\\user\\docs\\aPDFfile.pdf"
doc = TextPage(ifile)
>>> TypeError: in method 'new_TextPage', argument 1 of type 'struct fz_rect_s *'
Run Code Online (Sandbox Code Playgroud)
这不起作用,所以我尝试了
doc = fitz.Document(ifile)
t = TextPage.extractText(doc)
>>> AttributeError: 'Document' object has no attribute '_extractText'
Run Code Online (Sandbox Code Playgroud)
这又不起作用了。
然后我发现了PyMuPDF 的一位作者写的很棒的博客,其中包含按照从文件中读取的顺序提取文本的详细代码。但每次我用不同的 PDF 运行此代码时,我都会得到KeyError: 'lines'(代码中的第 81 行)或KeyError: "bbox"(代码中的第 60 行)。
我无法在这里发布 PDF,因为它们是机密的,我很高兴在这里提供有用的信息。但是有什么方法可以让我完成 PyMuPDF 要做的最简单的任务:从 PDF 中提取纯文本,无序或其他(我不太介意)?
我正在计算协方差矩阵的特征值,该矩阵是实数且对称正半定的。因此,特征值和特征向量应该都是实数,但是numpy.linalg.eig()返回具有(几乎)零虚部的复数值。
协方差矩阵太大,无法在此处发布,但特征值如下
[1.38174e01+00j, 9.00153e00+00j, ....]
Run Code Online (Sandbox Code Playgroud)
向量中最大的虚部在 处可以忽略不计-9.7557e-16j。
我认为这里存在一些机器精度问题,因为显然虚部可以忽略不计(并且考虑到我的协方差矩阵是实数正半定义)。
有没有办法抑制使用 numpy eig (或 scipy)返回虚部?我试图避免使用 if 语句来检查特征值对象是否复杂,然后仅将其设置为真实组件(如果可能)。
我想使用ray对列表的每个元素并行执行函数操作。下面是一个简化的片段
import numpy as np
import time
import ray
import psutil
num_cpus = psutil.cpu_count(logical=False)
ray.init(num_cpus=num_cpus)
@ray.remote
def f(a, b, c):
return a * b - c
def g(a, b, c):
return a * b - c
def my_func_par(large_list):
# arguments a and b are constant just to illustrate
# argument c is is each element of a list large_list
[f.remote(1.5, 2, i) for i in large_list]
def my_func_seq(large_list):
# arguments a anf b are constant just to illustrate
# …Run Code Online (Sandbox Code Playgroud) 我正在使用python 3.6.1,我想读取电子邮件文件(.eml)进行处理。我正在使用emaildata 0.3.4软件包,但是,每当我尝试如文档中那样导入Text类时,都会收到模块错误:
import email
from email.text import Text
>>> ModuleNotFoundError: No module named 'cStringIO'
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此更新进行更正时,出现下一个与mimetools
>>> ModuleNotFoundError: No module named 'mimetools'
Run Code Online (Sandbox Code Playgroud)
是否可以使用带有Python 3.6的emaildata 0.3.4来解析.eml文件?还是可以使用其他软件包来解析.eml文件?谢谢
python ×9
apache-spark ×2
numpy ×2
dataframe ×1
eigenvalue ×1
eml ×1
gensim ×1
lda ×1
matplotlib ×1
nlp ×1
parsing ×1
pdf ×1
plot ×1
pymupdf ×1
random-seed ×1
ray ×1
seaborn ×1