小编cgn*_*utt的帖子

Voronoi Diagram边缘:如何从scipy.spatial.Voronoi对象中获取表单(point1,point2)中的边缘?

我花了很多时间试图从scipy.spatial.Voronoi图中获取边缘无济于事.以下是主要文档:http: //docs.scipy.org/doc/scipy-dev/reference/generated/scipy.spatial.Voronoi.html

如果你像这样创建一个Voronoi图:

points = np.array([[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2],
[2, 0], [2, 1], [2, 2]]) //Or feel free to use any set of points
Run Code Online (Sandbox Code Playgroud)

然后您可以访问以下对象属性:

vor.regions
vor.max_bound
vor.ndim
vor.ridge_dict
vor.ridge_points
vor.ridge_vertices
vor.npoints
vor.point_region
vor.points
Run Code Online (Sandbox Code Playgroud)

但目前还不清楚如何组合这些以获得2d voronoi图形式(point1,point2)的边缘?我知道边缘存在是因为您可以绘制voronoi图及其edgres和顶点,因为您可以执行以下操作:

voronoi_plot_2d(vor)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这清楚地描绘了voronoi edgres - 如何获得它们的列表及其起点和终点?没关系,如果我只获得坚实的边缘(不是虚线的那些无限制的情节)

python voronoi spatial matplotlib scipy

6
推荐指数
1
解决办法
3403
查看次数

BigQuery:计算每个人的时间窗口聚合

给出Google BigQuery中的表格:

User  Timestamp 
A     TIMESTAMP(12/05/2015 12:05:01.8023)
B     TIMESTAMP(9/29/2015 12:15:01.0323)
B     TIMESTAMP(9/29/2015 13:05:01.0233)
A     TIMESTAMP(9/29/2015 14:05:01.0432)
C     TIMESTAMP(8/15/2015 5:05:01.0000)
B     TIMESTAMP(9/29/2015 14:06:01.0233)
A     TIMESTAMP(9/29/2015 14:06:01.0432)
Run Code Online (Sandbox Code Playgroud)

有一种简单的计算方法:

User  Maximum_Number_of_Events_this_User_Had_in_One_Hour  
A     2
B     3
C     1
Run Code Online (Sandbox Code Playgroud)

一小时的时间窗口是一个参数?

我试着通过构建LAG和分区函数来解决这两个问题:

用于28天滑动窗口聚合的BigQuery SQL(无需编写28行SQL)

用于滑动窗口聚合的Bigquery SQL

但是发现那些帖子太不相似,因为我没有找到每个时间窗口的人数,而是在一个时间窗口内找到每个人的最大事件数.

sql aggregate-functions window-functions google-bigquery

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

管道:多个分类器?

我在Python中阅读以下关于Pipelines和GridSearchCV的示例:http://www.davidsbatista.net/blog/2017/04/01/document_classification/

Logistic回归:

pipeline = Pipeline([
    ('tfidf', TfidfVectorizer(stop_words=stop_words)),
    ('clf', OneVsRestClassifier(LogisticRegression(solver='sag')),
])
parameters = {
    'tfidf__max_df': (0.25, 0.5, 0.75),
    'tfidf__ngram_range': [(1, 1), (1, 2), (1, 3)],
    "clf__estimator__C": [0.01, 0.1, 1],
    "clf__estimator__class_weight": ['balanced', None],
}
Run Code Online (Sandbox Code Playgroud)

SVM:

pipeline = Pipeline([
    ('tfidf', TfidfVectorizer(stop_words=stop_words)),
    ('clf', OneVsRestClassifier(LinearSVC()),
])
parameters = {
    'tfidf__max_df': (0.25, 0.5, 0.75),
    'tfidf__ngram_range': [(1, 1), (1, 2), (1, 3)],
    "clf__estimator__C": [0.01, 0.1, 1],
    "clf__estimator__class_weight": ['balanced', None],
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以将Logistic回归和SVM组合成一个管道?比方说,我有一个TfidfVectorizer,喜欢测试多个分类器,然后每个分类器输出最好的模型/参数.

python pipeline scikit-learn grid-search

5
推荐指数
3
解决办法
4223
查看次数

使用深度学习处理文本分类中的嘈杂训练标签

我有一个由句子和相应的多标签组成的数据集(例如,一个句子可以属于多个标签)。在语言模型 (Word2Vec) 上使用卷积神经网络和循环神经网络的组合,我能够达到很好的准确性。然而,它 /too/ 擅长对输出进行建模,因为很多标签可以说是错误的,因此输出也是错误的。这意味着评估(即使有正则化和辍学)给人的印象是错误的,因为我没有基本事实。清理标签的费用会高得令人望而却步。所以我不得不以某种方式探索“去噪”标签。我看过诸如“从大量噪声标记数据中学习用于图像分类”之类的东西,但是他们假设在输出上学习某种噪声协方差矩阵,我不确定在 Keras 中如何做。

有没有人处理过多标签文本分类设置中的嘈杂标签问题(最好使用 Keras 或类似工具),并且对如何学习带有噪声标签的鲁棒模型有很好的想法?

python machine-learning noise-reduction deep-learning keras

4
推荐指数
1
解决办法
2506
查看次数

Google BigQuery - 在Google BigQuery SQL中模拟Pandas removeDuplicates()

给定一个带有col_1 .... col_m的Google BigQuery数据集,如何使用Google BigQuery SQL返回没有重复项的数据集... [col1,col3,col7],这样当有重复的行时[col1,col3,col7],然后返回这些重复项中的第一行,并删除那些列中具有重复字段的其余行?

示例:removeDuplicates([col1,col3])

    col1 col2 col3
    ---- ---- ----
r1: 20   25   30
r2: 20   70   30
r3: 40   70   30
Run Code Online (Sandbox Code Playgroud)

回报

  col1 col2 col3
  ---- ---- ----
r1: 20   25   30
r3: 40   70   30
Run Code Online (Sandbox Code Playgroud)

要使用python pandas这样做很容易.对于数据帧(即矩阵),可以调用pandas函数removedDuplicates([field1, field2, ...]).但是,未在Google Big Query SQL的上下文中指定removeDuplicates.

我最好猜测如何在Google Big Query中使用该rank()功能:

https://cloud.google.com/bigquery/query-reference#rank

我正在寻找一个简洁的解决方案,如果存在的话.

sql analytics pandas google-bigquery

3
推荐指数
1
解决办法
1252
查看次数

Javascript:为textarea导出浏览器的本机撤消/重做堆栈

是否有任何方法可以为textarea导出/保存任何浏览器的本机撤消/重做堆栈?我希望能够在事后撤消/重做所有在textarea中输入的内容.

我还想使用javascript调用本机undo/redo堆栈,这可以通过以下方式轻松完成:

$('#textarea_im_using').focus();
document.execCommand('undo', false, null); 
Run Code Online (Sandbox Code Playgroud)

但是,这导致控制台中出现NS_ERROR_FAILURE:Failure错误消息.有什么想法吗?

总之,我有两个问题:

  1. 导出本机浏览器的撤消堆栈
  2. 调用本机浏览器的撤消方法.

我目前正在使用Mozilla Firefox(最新版本).我很乐意尝试任何可用的浏览器(Safari除外).

html javascript browser firefox undo

2
推荐指数
1
解决办法
1990
查看次数

BigQuery中交叉连接后的行聚合

假设您在BigQuery中有以下表格:

A = user1 | 0 0 |
    user2 | 0 3 |
    user3 | 4 0 |
Run Code Online (Sandbox Code Playgroud)

交叉加入后,你有

dist = |user1  user2  0 0 , 0 3 |  #comma is just showing user val seperation
       |user1  user3  0 0 , 4 0 |
       |user2  user3  0 3 , 4 0 |
Run Code Online (Sandbox Code Playgroud)

如何在BigQuery中执行行聚合以计算跨行的成对聚合.作为典型用例,您可以计算两个用户之间的欧氏距离.我想在两个用户之间计算以下指标:

sum(min(user1_row[i], user2_row[i]) / abs(user1_row[i] - user2_row[i]))
Run Code Online (Sandbox Code Playgroud)

为每对用户总结了所有i.

例如,在Python中,您只需:

for i in np.arange(row_length/2)]):
dist.append([user1, user2, np.sum(min(r1[i], r2[i]) / abs(r1[i] - r2[i]))])
Run Code Online (Sandbox Code Playgroud)

sql data-analysis cross-join aggregation google-bigquery

2
推荐指数
1
解决办法
443
查看次数