Neural FCA

A big homework to merge Neural Networks and Formal Concept Analysis. Created for the course Ordered Sets in Data Analysis (GitHub repo) taught in Data Science Master programme in HSE University, Moscow.

Example of a network build upon Fruits dataset

Task description

To-do list

  • Bare minimum (4 pts.)
    • Find a dataset for binary classification:
      Ideal dataset would be: openly available, with various datatypes (numbers, categories, graphs, etc), with hundreds of rows;
    • Describe scaling (binarization) strategy for the dataset features,
    • Describe prediction quality measure best suited for the dataset
      (e.g. accuracy, f1 score, or any measure that you find reasonable),
    • Fit and test the network on your task
      (consider NeuralFCA.ipynb to create and fit your network).
  • Ways to improve the basic pipeline:
    • Write better scaling algorithm to binarize the original data
    • Test and document various techniques to select best concepts from the concept lattice
      (it would be great if your network will only contain no more than 30 concepts)
    • Test and document the efficiency of various nonlinearities to put in the network
    • Compare the prediction quality of the proposed model with State-of-the-Art approaches
    • Create a nice and readable visualization of the network

How to submit

Students are expected to provide the working code and pdf report for their homework by the end of the semester.

The code should be available on the students GitHub accounts. Please, create a new notebook and a new pipeline similar to that of LazyFCA homework.

You can consult neural_lib.py and NeuralFCA.ipynb for examples how to create, fit and visualize your network.

A pdf report should describe the reasoning behind every step of your homework. For example, it should contain a description of your dataset, what quality measure you have chosen (and why), how did you optimize the network, etc.