Skip to content

StarlangSoftware/Sampling-Js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sampling Strategies

K-Fold cross-validation

In K-fold cross-validation, the aim is to generate K training/validation set pair, where training and validation sets on fold i do no overlap. First, we divide the dataset X into K parts as X1; X2; ... ; XK. Then for each fold i, we use Xi as the validation set and the remaining as the training set.

Possible values of K are 10 or 30. One extreme case of K-fold cross-validation is leave-one-out, where K = N and each validation set has only one instance. If we have more computation power, we can have multiple runs of K-fold cross-validation, such as 10 x 10 cross-validation or 5 x 2 cross-validation.

Bootstrapping

If we have very small datasets, we do not insist on the non-overlap of training and validation sets. In bootstrapping, we generate K multiple training sets, where each training set contains N examples (like the original dataset). To get N examples, we draw examples with replacement. For the validation set, we use the original dataset. The drawback of bootstrapping is that the bootstrap samples overlap more than the cross-validation sample, hence they are more dependent.

Video Lectures

For Developers

You can also see Java, Python, Cython, C++, C, Swift, or C# repository.

Requirements

Node.js

To check if you have a compatible version of Node.js installed, use the following command:

node -v

You can find the latest version of Node.js here.

Git

Install the latest version of Git.

Npm Install

npm install nlptoolkit-sampling

Download Code

In order to work on code, create a fork from GitHub page. Use Git for cloning the code to your local or below line for Ubuntu:

git clone <your-fork-git-link>

A directory called util will be created. Or you can use below link for exploring the code:

git clone https://github.com/starlangsoftware/sampling-js.git

Open project with Webstorm IDE

Steps for opening the cloned project:

  • Start IDE
  • Select File | Open from main menu
  • Choose Sampling-Js file
  • Select open as project option
  • Couple of seconds, dependencies will be downloaded.

Detailed Description

CrossValidation

k. eğitim kümesini elde etmek için

getTrainFold(k: number): Array<T>

k. test kümesini elde etmek için

getTestFold(k: number): Array<T>

Bootstrap

Bootstrap için BootStrap sınıfı

Bootstrap(instanceList: Array<T>, seed: number)

Örneğin elimizdeki veriler a adlı ArrayList'te olsun. Bu veriler üstünden bir bootstrap örneklemi tanımlamak için (5 burada rasgelelik getiren seed'i göstermektedir. 5 değiştirilerek farklı samplelar elde edilebilir)

bootstrap = Bootstrap(a, 5)

ardından üretilen sample'ı çekmek için ise

sample = bootstrap.getSample()

yazılır.

KFoldCrossValidation

K kat çapraz geçerleme için KFoldCrossValidation sınıfı

KFoldCrossValidation(instanceList: Array<T>, K: number, seed: number)

Örneğin elimizdeki veriler a adlı ArrayList'te olsun. Bu veriler üstünden 10 kat çapraz geçerleme yapmak için (2 burada rasgelelik getiren seed'i göstermektedir. 2 değiştirilerek farklı samplelar elde edilebilir)

kfold = KFoldCrossValidation(a, 10, 2)

ardından yukarıda belirtilen getTrainFold ve getTestFold metodları ile sırasıyla i. eğitim ve test kümeleri elde edilebilir.

StratifiedKFoldCrossValidation

Stratified K kat çapraz geçerleme için StratifiedKFoldCrossValidation sınıfı

StratifiedKFoldCrossValidation(instanceLists: Array<Array<T>>, K: number, seed: number)

Örneğin elimizdeki veriler a adlı ArrayList of listte olsun. Stratified bir çapraz geçerlemede sınıflara ait veriler o sınıfın oranında temsil edildikleri için her bir sınıfa ait verilerin ayrı ayrı ArrayList'te olmaları gerekmektedir. Bu veriler üstünden 30 kat çapraz geçerleme yapmak için (4 burada rasgelelik getiren seed'i göstermektedir. 4 değiştirilerek farklı samplelar elde edilebilir)

stratified = StratifiedKFoldCrossValidation(a, 30, 4)

ardından yukarıda belirtilen getTrainFold ve getTestFold metodları ile sırasıyla i. eğitim ve test kümeleri elde edilebilir.