Skip to content

Commit

Permalink
changed
Browse files Browse the repository at this point in the history
  • Loading branch information
Ritam Guha authored and Ritam Guha committed Nov 2, 2020
1 parent d5f2a20 commit 9e14cf7
Show file tree
Hide file tree
Showing 26 changed files with 67 additions and 99 deletions.
27 changes: 7 additions & 20 deletions Py_FS.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: Py-FS
Version: 0.0.5.11
Version: 0.0.6.0
Summary: A Python Package for Feature Selection
Home-page: https://github.com/Ritam-Guha/Py_FS
Author: Ritam Guha
Expand Down Expand Up @@ -69,12 +69,6 @@ Description: # Py_FS: A Python Package for Feature Selection

### Wrappers

#### BBA

#### CS

#### EO

#### GA

* Guha, R., Ghosh, M., Kapri, S., Shaw, S., Mutsuddi, S., Bhateja, V., & Sarkar, R. (2019). Deluge based Genetic Algorithm for feature selection. Evolutionary intelligence, 1-11.
Expand All @@ -95,40 +89,33 @@ Description: # Py_FS: A Python Package for Feature Selection

#### GWO

#### HS
* Dhargupta, S., Ghosh, M., Mirjalili, S., & Sarkar, R. (2020). Selective opposition based grey wolf optimization. Expert Systems with Applications, 113389.

#### MA

* T. Bhattacharyya, B. Chatterjee, P. K. Singh, J. H. Yoon, Z. W. Geem, R. Sarkar, “Mayfly in Harmony: A New Hybrid Meta-heuristic Feature Selection Algorithm”, IEEE Access, 2020.

#### PSO

* Ghosh, M., Guha, R., Singh, P. K., Bhateja, V., & Sarkar, R. (2019). A histogram based fuzzy ensemble technique for feature selection. Evolutionary Intelligence, 12(4), 713-724.

* Ghosh, M., Guha, R., Alam, I., Lohariwal, P., Jalan, D., & Sarkar, R. (2019). Binary Genetic Swarm Optimization: A Combination of GA and PSO for Feature Selection. Journal of Intelligent Systems, 29(1), 1598-1610.

#### RDA

#### SCA

#### WOA

* Guha, R., Ghosh, M., Mutsuddi, S., Sarkar, R., & Mirjalili, S. (2020). Embedded chaotic whale survival algorithm for filter-wrapper feature selection. arXiv preprint arXiv:2005.04593.
* Guha, R., Ghosh, M., Mutsuddi, S. et al. Embedded chaotic whale survival algorithm for filterwrapper feature selection. Soft Comput 24, 12821–12843 (2020). https://doi.org/10.1007/s00500-020-05183-1.

### Filters

#### PCC

* Guha, R., Ghosh, K. K., Bhowmik, S., & Sarkar, R. (2020, February). Mutually Informed Correlation Coefficient (MICC)-a New Filter Based Feature Selection Method. In 2020 IEEE Calcutta Conference (CALCON) (pp. 54-58). IEEE.

#### SCC

#### MI

* Guha, R., Ghosh, K. K., Bhowmik, S., & Sarkar, R. (2020, February). Mutually Informed Correlation Coefficient (MICC)-a New Filter Based Feature Selection Method. In 2020 IEEE Calcutta Conference (CALCON) (pp. 54-58). IEEE.

#### Relief

* Guha, R., Ghosh, K. K., Bhowmik, S., & Sarkar, R. (2020, February). Mutually Informed Correlation Coefficient (MICC)-a New Filter Based Feature Selection Method. In 2020 IEEE Calcutta Conference (CALCON) (pp. 54-58). IEEE.

## 1. Wrapper-based Nature-inpsired Feature Selection
## 1. Wrapper-based Nature-inspired Feature Selection
Wrapper-based Nature-inspired methods are very popular feature selection approaches due to their efficiency and simplicity. These methods progress by introducing random set of candidate solutions (agents which are natural elements like particles, whales, bats etc.) and improving these solutions gradually by using guidance mechanisms of fitter agents. In order to calculate the fitness of the candidate solutions, wrappers require some learning algorithm (like classifiers) to calculate the worth of a solution at every iteration. This makes wrapper methods extremely reliable but computationally expensive as well.

Py_FS currently supports the following 12 wrapper-based FS methods:
Expand Down
6 changes: 1 addition & 5 deletions Py_FS.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,4 @@ Py_FS/wrapper/nature_inspired/__pycache__/WOA.cpython-38.pyc
Py_FS/wrapper/nature_inspired/__pycache__/__init__.cpython-38.pyc
Py_FS/wrapper/nature_inspired/__pycache__/_transfer_functions.cpython-38.pyc
Py_FS/wrapper/nature_inspired/__pycache__/_transformation_functions.cpython-38.pyc
Py_FS/wrapper/nature_inspired/__pycache__/_utilities.cpython-38.pyc
dist/Py_FS-0.0.5.10-py3-none-any.whl
dist/Py_FS-0.0.5.10.tar.gz
dist/Py_FS-0.0.5.9-py3-none-any.whl
dist/Py_FS-0.0.5.9.tar.gz
Py_FS/wrapper/nature_inspired/__pycache__/_utilities.cpython-38.pyc
4 changes: 2 additions & 2 deletions Py_FS/evaluation/evaluate.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.evaluation._utilities import Metric
# from _utilities import Metric
# from Py_FS.evaluation._utilities import Metric
from _utilities import Metric

import numpy as np

Expand Down
4 changes: 2 additions & 2 deletions Py_FS/filter/MI.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"""

import numpy as np
from Py_FS.filter._utilities import normalize, Result
# from sklearn import datasets
# from Py_FS.filter._utilities import normalize, Result
from sklearn import datasets

def MI(data, target):
# function that assigns scores to features according to Mutual Information (MI)
Expand Down
4 changes: 2 additions & 2 deletions Py_FS/filter/PCC.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"""

import numpy as np
from Py_FS.filter._utilities import normalize, Result
# from sklearn import datasets
# from Py_FS.filter._utilities import normalize, Result
from sklearn import datasets

def PCC(data, target):
# function that assigns scores to features according to Pearson's Correlation Coefficient (PCC)
Expand Down
4 changes: 2 additions & 2 deletions Py_FS/filter/Relief.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

from ReliefF import ReliefF
import numpy as np
from Py_FS.filter._utilities import normalize, Result
# from sklearn import datasets
# from Py_FS.filter._utilities import normalize, Result
from sklearn import datasets

def Relief(data, target):
# function that assigns scores to features according to Relief algorithm
Expand Down
4 changes: 2 additions & 2 deletions Py_FS/filter/SCC.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"""

import numpy as np
from Py_FS.filter._utilities import normalize, Result
# from sklearn import datasets
# from Py_FS.filter._utilities import normalize, Result
from sklearn import datasets

def SCC(data, target):
# function that assigns scores to features according to Spearman's Correlation Coefficient (SCC)
Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/BBA.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function

def BBA(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_function_shape='s', constantLoudness=True, save_conv_graph=False):

Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/CS.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function,sigmoid
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function,sigmoid
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function

def CS (num_nests, max_iter, train_data, train_label, obj_function=compute_fitness, trans_function_shape='s', save_conv_graph=False):

Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/EO.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function


def EO(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_func_shape='s', save_conv_graph=False):
Expand Down
4 changes: 2 additions & 2 deletions Py_FS/wrapper/nature_inspired/GA.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy


def GA(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, prob_cross=0.4, prob_mut=0.3, save_conv_graph=False):
Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/GSA.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function


def GSA(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_function_shape='s', save_conv_graph=False):
Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/GWO.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function


def GWO(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_func_shape='s', save_conv_graph=False):
Expand Down
4 changes: 2 additions & 2 deletions Py_FS/wrapper/nature_inspired/HS.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy

def HS(num_agents, max_iter, train_data, train_label, obj_function = compute_fitness, save_conv_graph = False):

Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/MA.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function,sigmoid
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function,sigmoid
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function

def MA(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_function_shape='s', prob_mut=0.2, save_conv_graph=False):

Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/PSO.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function


def PSO(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_func_shape='s', save_conv_graph=False):
Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/RDA.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function


def RDA(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_function_shape='s', save_conv_graph=False):
Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/SCA.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function



Expand Down
8 changes: 4 additions & 4 deletions Py_FS/wrapper/nature_inspired/WOA.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
from sklearn.model_selection import train_test_split
from sklearn import datasets

from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
# from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from _transfer_functions import get_trans_function
# from Py_FS.wrapper.nature_inspired._utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
# from Py_FS.wrapper.nature_inspired._transfer_functions import get_trans_function
from _utilities import Solution, Data, initialize, sort_agents, display, compute_fitness, compute_accuracy
from _transfer_functions import get_trans_function


def WOA(num_agents, max_iter, train_data, train_label, obj_function=compute_fitness, trans_function_shape='s', save_conv_graph=False):
Expand Down
19 changes: 2 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,6 @@ This toolbox has been developed by a team of students from [Computer Science and

### Wrappers

#### BBA

#### CS

#### EO

#### GA

* Guha, R., Ghosh, M., Kapri, S., Shaw, S., Mutsuddi, S., Bhateja, V., & Sarkar, R. (2019). Deluge based Genetic Algorithm for feature selection. Evolutionary intelligence, 1-11.
Expand All @@ -87,7 +81,7 @@ This toolbox has been developed by a team of students from [Computer Science and

#### GWO

#### HS
* Dhargupta, S., Ghosh, M., Mirjalili, S., & Sarkar, R. (2020). Selective opposition based grey wolf optimization. Expert Systems with Applications, 113389.

#### MA

Expand All @@ -99,10 +93,6 @@ This toolbox has been developed by a team of students from [Computer Science and

* Ghosh, M., Guha, R., Alam, I., Lohariwal, P., Jalan, D., & Sarkar, R. (2019). Binary Genetic Swarm Optimization: A Combination of GA and PSO for Feature Selection. Journal of Intelligent Systems, 29(1), 1598-1610.

#### RDA

#### SCA

#### WOA

* Guha, R., Ghosh, M., Mutsuddi, S. et al. Embedded chaotic whale survival algorithm for filter–wrapper feature selection. Soft Comput 24, 12821–12843 (2020). https://doi.org/10.1007/s00500-020-05183-1.
Expand All @@ -113,14 +103,9 @@ This toolbox has been developed by a team of students from [Computer Science and

* Guha, R., Ghosh, K. K., Bhowmik, S., & Sarkar, R. (2020, February). Mutually Informed Correlation Coefficient (MICC)-a New Filter Based Feature Selection Method. In 2020 IEEE Calcutta Conference (CALCON) (pp. 54-58). IEEE.

#### SCC

#### MI

* Guha, R., Ghosh, K. K., Bhowmik, S., & Sarkar, R. (2020, February). Mutually Informed Correlation Coefficient (MICC)-a New Filter Based Feature Selection Method. In 2020 IEEE Calcutta Conference (CALCON) (pp. 54-58). IEEE.

#### Relief

* Guha, R., Ghosh, K. K., Bhowmik, S., & Sarkar, R. (2020, February). Mutually Informed Correlation Coefficient (MICC)-a New Filter Based Feature Selection Method. In 2020 IEEE Calcutta Conference (CALCON) (pp. 54-58). IEEE.

## 1. Wrapper-based Nature-inspired Feature Selection
Wrapper-based Nature-inspired methods are very popular feature selection approaches due to their efficiency and simplicity. These methods progress by introducing random set of candidate solutions (agents which are natural elements like particles, whales, bats etc.) and improving these solutions gradually by using guidance mechanisms of fitter agents. In order to calculate the fitness of the candidate solutions, wrappers require some learning algorithm (like classifiers) to calculate the worth of a solution at every iteration. This makes wrapper methods extremely reliable but computationally expensive as well.
Expand Down
Loading

0 comments on commit 9e14cf7

Please sign in to comment.