Giter Site home page Giter Site logo

kuffmode / msa Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 1.0 96.54 MB

Hopefully, a compact and general-purpose Python package for Multiperturbation Shapley value Analysis (MSA).

Home Page: https://kuffmode.github.io/msa/

License: MIT License

Python 100.00%
shapley-value gametheory brainmapping causality artificial-neural-networks python

msa's Introduction

I study computational neuroscience and compose music. That's it for now!

msa's People

Contributors

kuffmode avatar shreydixit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

shreydixit

msa's Issues

Documentation Refactoring

Hi @luisa-hoerauf

The documentation is old and the current developers are "overfitted" to it. New eyes are appreciated.

Tasks:

  • Go over all the documentation and suggest changes.

All communication can happen on this issue by commenting on your progress and doubts. Once you're done, you can open a pull request which will close this issue.

Regards,
Shrey Dixit

Causal influences and Pandas 1.5

Causal influence matrix gets shifted in Pandas 1.5 but all tests pass. We have to dig into this and see if it's the case for Pandas 2.

Update requirements

So some of the packages we are using can be updated. I realized seaborn v 0.11 has a bug that is fixed in 0.13 but we're still using 0.11

ValueError: Objective function returned values of different data types

def lesion_esn_behavior(complements, network, training_data, ground_truth):
    """
    This function lesions nodes and tracks their contributions to the output signal. This is for the classic MSA part.
    """
    if len(complements) == len(network.W):
        return 0 # every node in the network is lesioned so toss a zero to your MSA oh valley of plenty.

    lesioned_network = deepcopy(network)
    for target in complements: # same as above
        lesioned_network.W[target] = 0.00001
        lesioned_network.W_fb[target] = 0.00001
        lesioned_network.W_in[target] = 0.00001

    lesioned_network.fit(X=None, y=training_data)
    y_pred = lesioned_network.predict() # contrary to the previous function, here we want the output signal.

    return float(np.linalg.norm(y_pred,2))

I want to use float number to be ovjective function, but it is not work. If i using int number, it is work. I don't know how to solve it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.