You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Joseph K. Bradley (JIRA)" <ji...@apache.org> on 2014/11/19 23:01:33 UTC
[jira] [Updated] (SPARK-4500) Improve exact stratified sampling
implementation
[ https://issues.apache.org/jira/browse/SPARK-4500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joseph K. Bradley updated SPARK-4500:
-------------------------------------
Description:
The current implementation for exact stratified sampling (sampleByKeyExact) could be more efficient. Proposed algorithm sketch:
* Sampling is done separately for each stratum. Here, all counts are w.r.t. a fixed stratum.
* Let:
** N = total number of elements in all partitions
** n_partition = number of elements in a given partition
* This method uses 2-tiered sampling:
** Tier 1 (on driver): Select the sample sizes {n_partition} for each partition.
*** Without replacement, this uses a multivariate hypergeometric distribution.
*** With replacement, this should use a multinomial distribution.
** Tier 2 (in parallel): Select a sample of size n_partition.
If anyone is interested in implementing this, I have a rough draft which works without replacement, but it needs to be cleaned up and augmented to do sampling with replacement too.
was:
The current implementation for exact stratified sampling (sampleByKeyExact) could be more efficient. Proposed algorithm sketch:
* Sampling is done separately for each stratum. Here, all counts are w.r.t. a fixed stratum.
* Let:
* N = total number of elements in all partitions
* N_partition = number of elements in a given partition
* This method uses 2-tiered sampling:
* Tier 1 (on driver): Select the sample sizes {n_partition} for each partition.
* Without replacement, this uses a multivariate hypergeometric distribution.
* With replacement, this should use a multinomial distribution.
* Tier 2 (in parallel): Select a sample of size n_partition.
If anyone is interested in implementing this, I have a rough draft which works without replacement, but it needs to be cleaned up and augmented to do sampling with replacement too.
> Improve exact stratified sampling implementation
> ------------------------------------------------
>
> Key: SPARK-4500
> URL: https://issues.apache.org/jira/browse/SPARK-4500
> Project: Spark
> Issue Type: Improvement
> Components: MLlib
> Affects Versions: 1.2.0
> Reporter: Joseph K. Bradley
>
> The current implementation for exact stratified sampling (sampleByKeyExact) could be more efficient. Proposed algorithm sketch:
> * Sampling is done separately for each stratum. Here, all counts are w.r.t. a fixed stratum.
> * Let:
> ** N = total number of elements in all partitions
> ** n_partition = number of elements in a given partition
> * This method uses 2-tiered sampling:
> ** Tier 1 (on driver): Select the sample sizes {n_partition} for each partition.
> *** Without replacement, this uses a multivariate hypergeometric distribution.
> *** With replacement, this should use a multinomial distribution.
> ** Tier 2 (in parallel): Select a sample of size n_partition.
> If anyone is interested in implementing this, I have a rough draft which works without replacement, but it needs to be cleaned up and augmented to do sampling with replacement too.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org