很抱歉,我无法用更简单的示例重现错误,而且我的代码太复杂而无法发布.如果我在IPython shell而不是常规Python中运行程序,那么事情就会很顺利.
我查看了之前关于这个问题的一些注意事项.它们都是由在类函数中定义的pool to call函数引起的.但对我来说情况并非如此.
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib64/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib64/python2.7/multiprocessing/pool.py", line 313, in _handle_tasks
put(task)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助.
更新:我挑选的功能是在模块的顶层定义的.虽然它调用包含嵌套函数的函数.即f()要求g()调用h()具有嵌套函数i(),和我打电话pool.apply_async(f).f(),g(),h()都在顶层定义.我用这个模式尝试了更简单的例子,但它确实有效.
我使用sklearn包中的confusion_matrix()方法为我的分类器计算了一个混淆矩阵.混淆矩阵的对角元素表示预测标签等于真实标签的点的数量,而非对角线元素是由分类器错误标记的元素.
我想将我的混淆矩阵归一化,使其仅包含0到1之间的数字.我想从矩阵中读取正确分类的样本的百分比.
我发现了几种方法如何标准化矩阵(行和列标准化),但我对数学知之甚少,并且不确定这是否是正确的方法.有人可以帮忙吗?
当使用 sklearn 的 RandomForestRegress 的平均绝对误差标准对小型应用程序(<50K 行 <50 列)进行训练时,它比使用均方误差慢近 10 倍。为了说明即使在一个小数据集上:
import time
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston
X, y = load_boston(return_X_y=True)
def fit_rf_criteria(criterion, X=X, y=y):
reg = RandomForestRegressor(n_estimators=100,
criterion=criterion,
n_jobs=-1,
random_state=1)
start = time.time()
reg.fit(X, y)
end = time.time()
print(end - start)
fit_rf_criteria('mse') # 0.13266682624816895
fit_rf_criteria('mae') # 1.26043701171875
Run Code Online (Sandbox Code Playgroud)
为什么使用 'mae' 标准训练 RandomForestRegressor 需要这么长时间?我想为更大的应用程序优化 MAE,但发现 RandomForestRegressor 调整到这个标准的速度太慢了。
我正在尝试升级scikit-learn的包从0.16升级到0.17.为此,我试图使用本网站的二进制文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn.我有Windows 7 x64位.我在本地下载了相关的包,并提供了以下命令,并且要求已经是最新的:
C:\Users\skumar>pip install --upgrade --use-wheel --no-index --find-links=../../
SOURCE/APPS scikit-learn
Ignoring indexes: https://pypi.python.org/simple
Requirement already up-to-date: scikit-learn in c:\anaconda3\lib\site-packages
Run Code Online (Sandbox Code Playgroud)
然后我尝试从远程站点升级它并得到类似的结果:
C:\Users\skumar>pip install --upgrade --use-wheel --no-index --trusted-host www.
lfd.uci.edu --find-links=http://www.lfd.uci.edu/~gohlke/pythonlibs/ scikit-learn
Ignoring indexes: https://pypi.python.org/simple
Requirement already up-to-date: scikit-learn in c:\anaconda3\lib\site-packages
Run Code Online (Sandbox Code Playgroud)
在远程站点上有两个版本,即0.16和0.17.有没有办法在命令中指定版本?或者你如何安装/升级轮文件?
我已经确定了一个pandas命令
timeseries.loc[z, x] = y
Run Code Online (Sandbox Code Playgroud)
负责迭代中花费的大部分时间.现在我正在寻找更好的方法来加速它.循环覆盖甚至不是50k元素(生产目标是〜250k或更多),但已经需要一个悲伤的20秒.
这是我的代码(忽略上半部分,它只是计时助手)
def populateTimeseriesTable(df, observable, timeseries):
"""
Go through all rows of df and
put the observable into the timeseries
at correct row (symbol), column (tsMean).
"""
print "len(df.index)=", len(df.index) # show number of rows
global bf, t
bf = time.time() # set 'before' to now
t = dict([(i,0) for i in range(5)]) # fill category timing with zeros
def T(i):
"""
timing helper: Add passed time to category 'i'. Then set 'before' to now. …Run Code Online (Sandbox Code Playgroud) 是否可以使用 Google BERT 计算两个文本文档之间的相似度?据我了解,BERT 的输入应该是有限大小的句子。一些作品使用 BERT 来计算句子的相似度,例如:
https://github.com/AndriyMulyar/semantic-text-similarity
https://github.com/beekbin/bert-cosine-sim
是否有 BERT 的实现来将其用于大型文档而不是句子作为输入(具有数千个单词的文档)?
我正在学习如何在Python上使用Imputer.
这是我的代码:
df=pd.DataFrame([["XXL", 8, "black", "class 1", 22],
["L", np.nan, "gray", "class 2", 20],
["XL", 10, "blue", "class 2", 19],
["M", np.nan, "orange", "class 1", 17],
["M", 11, "green", "class 3", np.nan],
["M", 7, "red", "class 1", 22]])
df.columns=["size", "price", "color", "class", "boh"]
from sklearn.preprocessing import Imputer
imp=Imputer(missing_values="NaN", strategy="mean" )
imp.fit(df["price"])
df["price"]=imp.transform(df["price"])
Run Code Online (Sandbox Code Playgroud)
但是,这会引发以下错误:ValueError:值的长度与索引的长度不匹配
我的代码有什么问题???
谢谢你的帮助
我希望使用LDA将每个文档分配给一个主题.现在我意识到你得到的是LDA主题的分布.但是,正如您从下面的最后一行所看到的,我将其分配给最可能的主题.
我的问题是这个.lda[corpus]为了得到这些话题,我必须第二次跑步.是否有一些其他内置gensim函数将直接给我这个主题赋值向量?特别是因为LDA算法已通过文档,它可能已经保存了这些主题分配?
# Get the Dictionary and BoW of the corpus after some stemming/ cleansing
texts = [[stem(word) for word in document.split() if word not in STOPWORDS] for document in cleanDF.text.values]
dictionary = corpora.Dictionary(texts)
dictionary.filter_extremes(no_below=5, no_above=0.9)
corpus = [dictionary.doc2bow(text) for text in texts]
# The actual LDA component
lda = models.LdaMulticore(corpus=corpus, id2word=dictionary, num_topics=30, chunksize=10000, passes=10,workers=4)
# Assign each document to most prevalent topic
lda_topic_assignment = [max(p,key=lambda item: item[1]) for p in lda[corpus]]
Run Code Online (Sandbox Code Playgroud) 我正在使用气流来编排一些python脚本.我有一个"主"dag,从中运行几个子标记.我的主要dag应该按照以下概述运行:
我已经设法通过使用以下行在我的主要dag中获得此结构:
etl_internal_sub_dag1 >> etl_internal_sub_dag2 >> etl_internal_sub_dag3
etl_internal_sub_dag3 >> etl_adzuna_sub_dag
etl_internal_sub_dag3 >> etl_adwords_sub_dag
etl_internal_sub_dag3 >> etl_facebook_sub_dag
etl_internal_sub_dag3 >> etl_pagespeed_sub_dag
etl_adzuna_sub_dag >> etl_combine_sub_dag
etl_adwords_sub_dag >> etl_combine_sub_dag
etl_facebook_sub_dag >> etl_combine_sub_dag
etl_pagespeed_sub_dag >> etl_combine_sub_dag
Run Code Online (Sandbox Code Playgroud)
我想风做的是先运行etl_internal_sub_dag1然后etl_internal_sub_dag2,然后etl_internal_sub_dag3.当etl_internal_sub_dag3完成我想etl_adzuna_sub_dag,etl_adwords_sub_dag,etl_facebook_sub_dag,和etl_pagespeed_sub_dag并行运行.最后,当最后四个脚本完成后,我想要etl_combine_sub_dag运行.
然而,当我经营的主要DAG, ,etl_adzuna_sub_dag,etl_adwords_sub_dag,etl_facebook_sub_dag和etl_pagespeed_sub_dag 正在运行一个接一个,而不是并行.
问:如何确保脚本etl_adzuna_sub_dag,etl_adwords_sub_dag,etl_facebook_sub_dag,和etl_pagespeed_sub_dag并行运行?
编辑:我default_args和DAG这个样子:
default_args = {
'owner': …Run Code Online (Sandbox Code Playgroud) 我有一个分类问题,即我想基于数字特征的集合,使用逻辑回归和运行主成分分析(PCA)来预测二进制目标.
我有2个数据集:df_train和df_valid(分别是训练集和验证集)作为pandas数据框,包含特征和目标.作为第一步,我使用get_dummiespandas函数将所有分类变量转换为boolean.例如,我会:
n_train = 10
np.random.seed(0)
df_train = pd.DataFrame({"f1":np.random.random(n_train), \
"f2": np.random.random(n_train), \
"f3":np.random.randint(0,2,n_train).astype(bool),\
"target":np.random.randint(0,2,n_train).astype(bool)})
In [36]: df_train
Out[36]:
f1 f2 f3 target
0 0.548814 0.791725 False False
1 0.715189 0.528895 True True
2 0.602763 0.568045 False True
3 0.544883 0.925597 True True
4 0.423655 0.071036 True True
5 0.645894 0.087129 True False
6 0.437587 0.020218 True True
7 0.891773 0.832620 True False
8 0.963663 0.778157 False False
9 0.383442 0.870012 True True …Run Code Online (Sandbox Code Playgroud) python ×10
scikit-learn ×6
airflow ×1
anaconda ×1
gensim ×1
imputation ×1
lda ×1
matrix ×1
missing-data ×1
nlp ×1
optimization ×1
pandas ×1
pca ×1
pickle ×1
python-3.x ×1
text ×1
time-series ×1