Skip to main content

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 X<sub>1</sub>; X<sub>2</sub>; ... ; X<sub>K</sub>. Then for each fold i, we use X<sub>i</sub> 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
    ============
    
    [<img src="https://github.com/StarlangSoftware/Sampling/blob/master/video.jpg" width="50%">](https://youtu.be/wijWOiv70nE)
    
    For Developers
    ============
    You can also see [Python](https://github.com/starlangsoftware/Sampling-Py), [Java](https://github.com/starlangsoftware/Sampling), [C++](https://github.com/starlangsoftware/Sampling-CPP), [C](https://github.com/starlangsoftware/Sampling-C), [Swift](https://github.com/starlangsoftware/Sampling-Swift), [Js](https://github.com/starlangsoftware/Sampling-Js), [Php](https://github.com/starlangsoftware/Sampling-Php), or [C#](https://github.com/starlangsoftware/Sampling-CS) repository.
    
    ## Requirements
    
    * [Python 3.7 or higher](#python)
    * [Git](#git)
    
    ### Python 
    
    To check if you have a compatible version of Python installed, use the following command:
    
        python -V
        
    You can find the latest version of Python [here](https://www.python.org/downloads/).
    
    ### Git
    
    Install the [latest version of Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
    
    ## Pip Install
    
    	pip3 install NlpToolkit-Sampling-Cy
    
    ## 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 Sampling will be created. Or you can use below link for exploring the code:
    
    	git clone https://github.com/starlangsoftware/Sampling-Cy.git
    
    ## Open project with Pycharm IDE
    
    Steps for opening the cloned project:
    
    * Start IDE
    * Select **File | Open** from main menu
    * Choose `Sampling-CY` file
    * Select open as project option
    * Couple of seconds, dependencies will be downloaded. 
    
    Detailed Description
    ============
    
    + [CrossValidation](#crossvalidation)
    + [Bootstrap](#bootstrap)
    + [KFoldCrossValidation](#kfoldcrossvalidation)
    + [StratifiedKFoldCrossValidation](#stratifiedkfoldcrossvalidation)
    
    ## CrossValidation
    
    k. eğitim kümesini elde etmek için
    
    	getTrainFold(self, k: int) -> list
    
    k. test kümesini elde etmek için
    
    	getTestFold(self, k: int) -> list
    
    ## Bootstrap
    
    Bootstrap için BootStrap sınıfı
    
    	Bootstrap(self, instanceList: list, seed: int)
    
    Ö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(self, instanceList: list, K: int, seed: int)
    
    Ö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(self, instanceLists: list, K: int, seed: int)
    
    Ö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. 

Metadata

Release files for nlptoolkit-sampling-cy 1.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nlptoolkit-sampling-cy 1.0.9
File Size Uploaded
nlptoolkit_sampling_cy-1.0.9.tar.gz 266.7 kB Details

Release files / nlptoolkit_sampling_cy-1.0.9.tar.gz

Download URL nlptoolkit_sampling_cy-1.0.9.tar.gz
Size 266.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b929c2d36516f8a7c88cbf8c4f383c9a10e8ff8b28d90f1ae6d60248b30343ff
BLAKE2b-256 checksum
How to use checksums
0ebc15657c611790881e9bb24fa34db5b2e59535ee4c9e3ddd90dfe6b881a377
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.0

Release history Release notifications | RSS feed

This release

1.0.9 This release

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page