Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation Docs have an example of installing Python 3.8 #90

Closed
AdrianAntico opened this issue Jan 15, 2021 · 14 comments
Closed

Installation Docs have an example of installing Python 3.8 #90

AdrianAntico opened this issue Jan 15, 2021 · 14 comments
Labels
documentation Improvements or additions to documentation

Comments

@AdrianAntico
Copy link

Description

Change your installation docs to have an example of installing a version of Python that is compatible with this module.

Context

If the software is made for Python 3.5, 3.6, or 3.7 then the installation examples shouldn't show someone how to install Python 3.8

Possible Implementation

Change the 3.8 to 3.5,6, or 7.

Possible Alternatives

(Optional) Describe any alternative solutions or features you've considered.

@mzjp2
Copy link
Contributor

mzjp2 commented Jan 15, 2021

Causalnex 0.9 onwards should be Python 3.6, 3.7 and 3.8 as far as I know. Where did you see Python 3.5/6/7 referenced?

@mzjp2 mzjp2 changed the title <Title> Installation Docs have an example of installing Python 3.8 Installation Docs have an example of installing Python 3.8 Jan 15, 2021
@mzjp2 mzjp2 added the documentation Improvements or additions to documentation label Jan 15, 2021
@AdrianAntico
Copy link
Author

@mzjp2 Thanks for the quick reply! It's in the Frequently Asked Questions. Also, pygraphviz isn't available for Python 3.8. When I tried running it it suggested an alternative way to print the graph but I couldn't get that to work. Now I'm wondering if I should just install Python 3.7 to bypass that issue.

What version of Python does CausalNex use?

CausalNex is built for Python 3.5, 3.6 and 3.7.

@mzjp2
Copy link
Contributor

mzjp2 commented Jan 15, 2021

@mzjp2 Thanks for the quick reply! It's in the Frequently Asked Questions.

We completely forgot to update that section - bad grepping skills! Thanks for pointing out, we'll get it fixed ASAP.

I had a look at https://pypi.org/project/pygraphviz/ and it seems to be supported on Python 3.8 (at least version 1.6 is).

@AdrianAntico
Copy link
Author

I didn't have any luck installing it. I'm switching to 3.7.9 for now. I'm mostly looking to test out your module on a particular use-case. I can always revisit the python versioning down the road.

Thanks for the quick replies though!

@mzjp2
Copy link
Contributor

mzjp2 commented Jan 15, 2021

Ah, sorry you couldn't get it to work :(

No worries, thanks for testing out CasalNex and opening the issue. Feel free to engage whenever!

@AdrianAntico
Copy link
Author

Turns out installing python 3.7.9 didn't enable me to install pygraphviz either. Looks like most of their open issues are about installation. I don't recall seeing examples that utilize something other than pygraphviz (please point me to one if they exist) and if they aren't there could the examples include alternative graphing methods?

@mzjp2
Copy link
Contributor

mzjp2 commented Jan 15, 2021

Turns out installing python 3.7.9 didn't enable me to install pygraphviz either. Looks like most of their open issues are about installation. I don't recall seeing examples that utilize something other than pygraphviz (please point me to one if they exist) and if they aren't there could the examples include alternative graphing methods?

Is this useful? https://causalnex.readthedocs.io/en/latest/03_tutorial/plotting_tutorial.html#Alternative-solutions

@AdrianAntico
Copy link
Author

That's definitely helpful!

@AdrianAntico
Copy link
Author

@mzjp2 I was able to get pygraphviz installed. I conversed with the package creator and he gave me some steps to follow that worked.

  1. Needed to have visual cpp build tools. Can find here: https://visualstudio.microsoft.com/visual-cpp-build-tools/
  2. Restart server after installing
  3. git clone https://github.com/pygraphviz/pygraphviz.git
  4. Open PowerShell and cd to pygraphviz
  5. If your graphviz folder has the version in the name, remove it so it's just Graphviz
  6. In PowerShell, run:
    $PATH = [Environment]::GetEnvironmentVariable("PATH")
    $graphviz_path = "C:\Program Files\Graphviz\bin
    [Environment]::SetEnvironmentVariable("PATH", "$graphviz_path; $PATH")
    python -m pip install --upgrade pip wheel setuptools
    python -m pip install -r requirements/test.txt
    python -m pip install --global-option=build_ext --global-option="-IC:\Program Files\Graphviz\include"
    --global-option="-LC:\Program Files\Graphviz\lib" `
    .
    python -m pip list

@mzjp2
Copy link
Contributor

mzjp2 commented Jan 20, 2021

Amazing, thanks for sharing back here and helping anybody else with a similar issue. This could potentially go into our docs as a how-to for Windows (it's very tricky getting PyGraphViz to work on Windows, as you've found)

@AdrianAntico
Copy link
Author

The author stated that in a future release it should be easier but just in case it isn't, there's always the method above. Feel free to add it to the docs. When I go to repo to test something out, I like to see the help needed to install challenging dependencies.

@AdrianAntico
Copy link
Author

Also, I have a really interesting use case I'm taking on that will end up relying on some sort of pgm. Let me know if you're interested in what I'm looking to do as it might lead to potential enhancement and innovation opportunities.

@mzjp2
Copy link
Contributor

mzjp2 commented Jan 20, 2021

Ooh, absolutely! @qbphilip may also be interested here :)

@AdrianAntico
Copy link
Author

Shoot me an email at adrianantico@gmail.com

qbphilip added a commit to GabrielAzevedoFerreiraQB/causalnex that referenced this issue Jan 28, 2021
* Merge back to develop

* Simplifying viz.draw syntax in tutorial notebook (mckinsey#46)

* Add non negativity constraint in numpy lasso (mckinsey#41)

* Add plotting tutorial to the documentation (mckinsey#47)

* Unpin some requirements

* Mixed type data generation (mckinsey#55)

Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.

* Merge back to develop (mckinsey#59)

* Pytorch NOTEARS (mckinsey#63)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (mckinsey#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Update release.md

* Address coments

* Corrected release.md

* fc1 to adjacency

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Pinned sphinx-auto-doc-typehints (mckinsey#66)

* Corrected a spelling/grammar mistake (mckinsey#55)

* Fix/lint (mckinsey#73)

* Hotfix/0.4.3 (mckinsey#7) - Address broken links and grammar

* Fix documentation links in README (mckinsey#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (mckinsey#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (mckinsey#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* black

* pin pytorch version

* pin pytorch version

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Structure learning regressor (mckinsey#68)

* initial commit (local copy-paste)

* fixed minor comments

* minor bugfix

* impute from children inital commit

* bugfixes and method option

* auto thresholding

* autothreshold and bugfix

* make threshold removal explicit

* add l1 argument

* remove child imputation

* feat importance fix and tabu logic

* moved threshold till dag

* restructure with base class

* coef mask

* recipe

* enable bias fitting

* persist bias as node attribute

* allow fit_intercept

* minor PR comment fixes

* minor comment adjustment

* test coverage and l1 clarification

* recipe

* minor test fixes

* more tests

* full test coverage

* revove python 3.5/3.6 unsupported import

* add normalization option

* idiomatic typing

* correct pylint errors

* update some tests

* more typeing updates

* more pylint requirements

* more pylint disable

* python 3.5 support

* try to get to work with 3.5

* full coverage and 3.5 support

* remove base class to pass test

* remove unneeded supression

* black formatting changes

* remove unused import

* pytlint supression

* minor reformat change

* isort fix

* better defensive programming

* fix unittests

* docstring update

* do Raises docstring properly

* action SWE suggestions

* hotfixes

* minor update

* minor black formatting change

* final merge checkbox

* fix end of file

* Data Gen root node initialisation fix (mckinsey#72)

* Hotfix/0.4.3 (mckinsey#7) - Address broken links and grammar

* Fix documentation links in README (mckinsey#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (mckinsey#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (mckinsey#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* fix for consinuous normal data

* generalise across all dtypes

* support fit_intercept

* fixed many test errors

* test logic fixes

* lint test fixes

* python 3.5 failure change

* minor test bugfix

* black

* pin pytorch version

* pin pytorch version

* additional test parameter

* black formatting

* requested changes

* test updates and docstring

* black format change

* disable too many lines

* change

* move recipe to tutorial folder

* releaseMD changes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>

* [1/2] Poisson data for data gen (mckinsey#61)

* Hotfix/0.4.3 (mckinsey#7) - Address broken links and grammar

* Fix documentation links in README (mckinsey#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (mckinsey#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (mckinsey#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* variable name change bugfix

* fix tests

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>

* [2/2] Nonlinear Data gen (mckinsey#60)

* Hotfix/0.4.3 (mckinsey#7) - Address broken links and grammar

* Fix documentation links in README (mckinsey#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (mckinsey#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (mckinsey#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* add nonlinear

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* add nonlinear to init

* change order in all

* change release.md

* root node fix on core + count

* nonlinear support to wrappers

* docstring update

* bugfix and reproducability fix

* many tests and test updates

* poiss bugfix and test fix

* moar test coverage

* categorical dataframe test coverage

* full test coverage and linting

* fix linting and fstring

* black reformat

* fix unused pylint argument

* pytest fix

* FINAL linting fix

* Fix stuff (mckinsey#75)

CircleCI fixes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* update black version (mckinsey#76)

* fix black

* Fix/check for NA or Infinity when notears is used  (mckinsey#54)

* update scipy version (mckinsey#77)

* add DYNOTEARS implementation (mckinsey#50)

Adds DYNOTEARS and corresponding data generator (for testing)

* Pytorch NOTEARS extension - Non-Linear/Hidden Layer (mckinsey#65)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (mckinsey#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Add hidden layer

* small refactor

* directional adj

* minor edits

* fix bias issues

* breaking changes update to the interface

* typo

* new regressor regularisation interface

* update forward method

* forward(X) predictions work

* working!

* bugfix data normalisation

* some fixes

* average regularisation and adj calc at end

* give credit!

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* loc lin docstring update

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* docstring + fc1/fc2 name updates

* moar docstring updates

* more minor updates

* remove normalize option

* plotting util

* rename to DAGRegressor

* rename and checks

* more util functions

* fix bias

* fix bias with no intercept

* fix linear adj

* add tests

* minor fix

* minor fixes

* extend interface to bias

* differentialte coef_ and feature_imporances

* seperate bias element

* tests

* more test coverage

* nonlinear test coverage

* test hotfix

* more test coverage

* test requirements update

* more test coverage

* formatting changes

* final pylint change

* more linting

* more bestpractice structuring

* more minor fixes

* FINAL linting updates

* actual last change

* update to reg defaults, additions to the tutorial

* nonlinear regularisation updates

* regressor tutorial

* almost finishing touches

* gradient based h function!

* soft clamp and coef feature importance seperation

* small api update, closer to batchnorm

* docstring updates

* stronger soft clamping

* gradient L1 rather than L2

* fcpos neg removal, gradient optim

* revert back to create_graph=True for 2nd derivative

* remove print and test fix

* black reformatting

* new black version

* full test coverage

* isort fix

* pylint fix

* first layer h(W) for speed optimization

* fix batch norm system

* add nonlinear test

* test hotfix

* black reformat

* isort fix

* remove X requirement from h_func

* regressor tutorial final commit and black update

* LayerNorm replacement

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* major changes

* add standardization

* minort changes

* fix tests

* rename reg parameters

* linting

* test coverage, docstting

* check array for infs

* fix isinstance to base type

* fix isort, add test coverage

* new tutorial

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* test string match

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* assert improvement

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* SWE suggestions

* minor bugfix

* more test fixing

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: angeldrothqb <67913551+angeldrothqb@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* Merge release/0.8.0 back into develop for release 0.8.0 (mckinsey#82)

* Hotfix/0.4.3 (mckinsey#7) - Address broken links and grammar

* Fix documentation links in README (mckinsey#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (mckinsey#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (mckinsey#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* release.md, version bump, docs

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* fix tests (mckinsey#87)

* Fix pygments fail (mckinsey#84)

Thanks Zain!

* update notebook beginning (mckinsey#89)

* Add Binary distribution type support (mckinsey#85)

* binary dtype folder and __init__

* dtype base class

* continuous dtype

* binary dtype

* update core

* make plural

* update interface for idx

* minor variable name change

* notears update

* python 3.5 support

* fix fstring

* remove categorical methods, doctrings

* formatting and docstrings

* remove redundant cat code

* isort

* indexerror check

* defensive check tests

* datatype loss tests

* more test coverage

* more tests and formatting

* fix test import

* remove double test

* linting

* docstring and pylint

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* fix long string

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* remove relative imports

* docstring fix

* dict comprehension

* list comprehension and neatness

* remove unuesd import to __init__

* fix test

* remove unused return interface

* add binary f1score tests

* one datatype instane per feature

* rename dtype -> disttype, attach dists to nodes

* fix tests

* fix linting

* fix preserve node dtyper

* fix tests

* fix tests

* fix tests

* final docstring and test fixes

* lint fix

* test_fix, warning

* linting

* fix test

* fix tests

* reduce threshold of test

* raise better error

* black linting

* remove warning

* remove useless supression and import

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Add sklearn binary classifier (mckinsey#90)

* binary dtype folder and __init__

* dtype base class

* continuous dtype

* binary dtype

* update core

* make plural

* update interface for idx

* minor variable name change

* notears update

* python 3.5 support

* fix fstring

* remove categorical methods, doctrings

* formatting and docstrings

* remove redundant cat code

* isort

* indexerror check

* defensive check tests

* datatype loss tests

* more test coverage

* more tests and formatting

* fix test import

* remove double test

* linting

* docstring and pylint

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* fix long string

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* remove relative imports

* docstring fix

* dict comprehension

* list comprehension and neatness

* remove unuesd import to __init__

* fix test

* remove unused return interface

* new sklearn folder structure

* sklearn class outline

* new dtype interface

* docstring clarification

* inverse link function

* add binary f1score tests

* one datatype instane per feature

* rename dtype -> disttype, attach dists to nodes

* fix tests

* fix linting

* fix preserve node dtyper

* fix tests

* fix tests

* fix tests

* final docstring and test fixes

* lint fix

* test_fix, warning

* linting

* fix test

* fix tests

* reduce threshold of test

* docstring clarification

* _target_dist_type injection

* docstring updates + clf fit outline

* old doctring deprecation

* clf predict_proba and predict

* return bugfix

* docstring update

* import fix, linting, clf fit finished

* args docstring and None schema

* raise better error

* black linting

* linting

* revert to public interface

* remove warning

* remove useless supression and import

* add useless change to resolve merge conflict

* update inits

* standardization and data reconstruction

* remove unused imports

* fix clf .precit()

* regressor fit_predict

* remove useless regressor predict

* test import fix

* fix warnings

* pass series name thru

* fix schema pass thru

* better dict comprehension

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* import and comment fixes

* update to .format()

* fig sklearn is fitted test

* more dtype schema insertion

* DAGRegressor test fix

* dag regressor test

* more linting

* big test restructure

* combined test suite

* error string update

* more test coverage

* linting and isort

* move test to combined test

* return float64 preds

* moar clf tests

* remove untestable (multiclass) code

* class number error test

* balck reformat

* docstrings, pylint

* fix test bug

* standard scaler for _base

* pull classes direct from LabelEncoder

* update tutorial

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Fix/uniform discretisation (mckinsey#65)

* Fix uniform discretiser

* Fix uniform discretiser

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* release.MD

* version bump

* Update causalnex/structure/pytorch/dist_type/_base.py

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Update causalnex/structure/pytorch/dist_type/__init__.py

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: GabrielAzevedoFerreiraQB <57528979+GabrielAzevedoFerreiraQB@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: stevelersl <55385183+SteveLerQB@users.noreply.github.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: KING-SID <sidhantbendre22@gmail.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Jebq <jb.oger2312@gmail.com>
Co-authored-by: Shuhei Ishida <shuhei.ishida66@gmail.com>
qbphilip added a commit to GabrielAzevedoFerreiraQB/causalnex that referenced this issue Jan 28, 2021
* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* Release/0.8.0 (#80)

* Merge back to develop

* Simplifying viz.draw syntax in tutorial notebook (#46)

* Add non negativity constraint in numpy lasso (#41)

* Add plotting tutorial to the documentation (#47)

* Unpin some requirements

* Mixed type data generation (#55)

Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.

* Merge back to develop (#59)

* Pytorch NOTEARS (#63)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Update release.md

* Address coments

* Corrected release.md

* fc1 to adjacency

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Pinned sphinx-auto-doc-typehints (#66)

* Corrected a spelling/grammar mistake (#55)

* Fix/lint (#73)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* black

* pin pytorch version

* pin pytorch version

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Structure learning regressor (#68)

* initial commit (local copy-paste)

* fixed minor comments

* minor bugfix

* impute from children inital commit

* bugfixes and method option

* auto thresholding

* autothreshold and bugfix

* make threshold removal explicit

* add l1 argument

* remove child imputation

* feat importance fix and tabu logic

* moved threshold till dag

* restructure with base class

* coef mask

* recipe

* enable bias fitting

* persist bias as node attribute

* allow fit_intercept

* minor PR comment fixes

* minor comment adjustment

* test coverage and l1 clarification

* recipe

* minor test fixes

* more tests

* full test coverage

* revove python 3.5/3.6 unsupported import

* add normalization option

* idiomatic typing

* correct pylint errors

* update some tests

* more typeing updates

* more pylint requirements

* more pylint disable

* python 3.5 support

* try to get to work with 3.5

* full coverage and 3.5 support

* remove base class to pass test

* remove unneeded supression

* black formatting changes

* remove unused import

* pytlint supression

* minor reformat change

* isort fix

* better defensive programming

* fix unittests

* docstring update

* do Raises docstring properly

* action SWE suggestions

* hotfixes

* minor update

* minor black formatting change

* final merge checkbox

* fix end of file

* Data Gen root node initialisation fix (#72)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* fix for consinuous normal data

* generalise across all dtypes

* support fit_intercept

* fixed many test errors

* test logic fixes

* lint test fixes

* python 3.5 failure change

* minor test bugfix

* black

* pin pytorch version

* pin pytorch version

* additional test parameter

* black formatting

* requested changes

* test updates and docstring

* black format change

* disable too many lines

* change

* move recipe to tutorial folder

* releaseMD changes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>

* [1/2] Poisson data for data gen (#61)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* variable name change bugfix

* fix tests

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>

* [2/2] Nonlinear Data gen (#60)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* add nonlinear

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* add nonlinear to init

* change order in all

* change release.md

* root node fix on core + count

* nonlinear support to wrappers

* docstring update

* bugfix and reproducability fix

* many tests and test updates

* poiss bugfix and test fix

* moar test coverage

* categorical dataframe test coverage

* full test coverage and linting

* fix linting and fstring

* black reformat

* fix unused pylint argument

* pytest fix

* FINAL linting fix

* Fix stuff (#75)

CircleCI fixes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* update black version (#76)

* fix black

* Fix/check for NA or Infinity when notears is used  (#54)

* update scipy version (#77)

* add DYNOTEARS implementation (#50)

Adds DYNOTEARS and corresponding data generator (for testing)

* Pytorch NOTEARS extension - Non-Linear/Hidden Layer (#65)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Add hidden layer

* small refactor

* directional adj

* minor edits

* fix bias issues

* breaking changes update to the interface

* typo

* new regressor regularisation interface

* update forward method

* forward(X) predictions work

* working!

* bugfix data normalisation

* some fixes

* average regularisation and adj calc at end

* give credit!

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* loc lin docstring update

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* docstring + fc1/fc2 name updates

* moar docstring updates

* more minor updates

* remove normalize option

* plotting util

* rename to DAGRegressor

* rename and checks

* more util functions

* fix bias

* fix bias with no intercept

* fix linear adj

* add tests

* minor fix

* minor fixes

* extend interface to bias

* differentialte coef_ and feature_imporances

* seperate bias element

* tests

* more test coverage

* nonlinear test coverage

* test hotfix

* more test coverage

* test requirements update

* more test coverage

* formatting changes

* final pylint change

* more linting

* more bestpractice structuring

* more minor fixes

* FINAL linting updates

* actual last change

* update to reg defaults, additions to the tutorial

* nonlinear regularisation updates

* regressor tutorial

* almost finishing touches

* gradient based h function!

* soft clamp and coef feature importance seperation

* small api update, closer to batchnorm

* docstring updates

* stronger soft clamping

* gradient L1 rather than L2

* fcpos neg removal, gradient optim

* revert back to create_graph=True for 2nd derivative

* remove print and test fix

* black reformatting

* new black version

* full test coverage

* isort fix

* pylint fix

* first layer h(W) for speed optimization

* fix batch norm system

* add nonlinear test

* test hotfix

* black reformat

* isort fix

* remove X requirement from h_func

* regressor tutorial final commit and black update

* LayerNorm replacement

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* major changes

* add standardization

* minort changes

* fix tests

* rename reg parameters

* linting

* test coverage, docstting

* check array for infs

* fix isinstance to base type

* fix isort, add test coverage

* new tutorial

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* test string match

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* assert improvement

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* SWE suggestions

* minor bugfix

* more test fixing

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: angeldrothqb <67913551+angeldrothqb@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* release.md, version bump, docs

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: GabrielAzevedoFerreiraQB <57528979+GabrielAzevedoFerreiraQB@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: stevelersl <55385183+SteveLerQB@users.noreply.github.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: KING-SID <sidhantbendre22@gmail.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Jebq <jb.oger2312@gmail.com>

* Release/0.8.1 (#94)

* Merge back to develop

* Simplifying viz.draw syntax in tutorial notebook (#46)

* Add non negativity constraint in numpy lasso (#41)

* Add plotting tutorial to the documentation (#47)

* Unpin some requirements

* Mixed type data generation (#55)

Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.

* Merge back to develop (#59)

* Pytorch NOTEARS (#63)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Update release.md

* Address coments

* Corrected release.md

* fc1 to adjacency

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Pinned sphinx-auto-doc-typehints (#66)

* Corrected a spelling/grammar mistake (#55)

* Fix/lint (#73)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* black

* pin pytorch version

* pin pytorch version

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Structure learning regressor (#68)

* initial commit (local copy-paste)

* fixed minor comments

* minor bugfix

* impute from children inital commit

* bugfixes and method option

* auto thresholding

* autothreshold and bugfix

* make threshold removal explicit

* add l1 argument

* remove child imputation

* feat importance fix and tabu logic

* moved threshold till dag

* restructure with base class

* coef mask

* recipe

* enable bias fitting

* persist bias as node attribute

* allow fit_intercept

* minor PR comment fixes

* minor comment adjustment

* test coverage and l1 clarification

* recipe

* minor test fixes

* more tests

* full test coverage

* revove python 3.5/3.6 unsupported import

* add normalization option

* idiomatic typing

* correct pylint errors

* update some tests

* more typeing updates

* more pylint requirements

* more pylint disable

* python 3.5 support

* try to get to work with 3.5

* full coverage and 3.5 support

* remove base class to pass test

* remove unneeded supression

* black formatting changes

* remove unused import

* pytlint supression

* minor reformat change

* isort fix

* better defensive programming

* fix unittests

* docstring update

* do Raises docstring properly

* action SWE suggestions

* hotfixes

* minor update

* minor black formatting change

* final merge checkbox

* fix end of file

* Data Gen root node initialisation fix (#72)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* fix for consinuous normal data

* generalise across all dtypes

* support fit_intercept

* fixed many test errors

* test logic fixes

* lint test fixes

* python 3.5 failure change

* minor test bugfix

* black

* pin pytorch version

* pin pytorch version

* additional test parameter

* black formatting

* requested changes

* test updates and docstring

* black format change

* disable too many lines

* change

* move recipe to tutorial folder

* releaseMD changes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>

* [1/2] Poisson data for data gen (#61)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* variable name change bugfix

* fix tests

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>

* [2/2] Nonlinear Data gen (#60)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* add nonlinear

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* add nonlinear to init

* change order in all

* change release.md

* root node fix on core + count

* nonlinear support to wrappers

* docstring update

* bugfix and reproducability fix

* many tests and test updates

* poiss bugfix and test fix

* moar test coverage

* categorical dataframe test coverage

* full test coverage and linting

* fix linting and fstring

* black reformat

* fix unused pylint argument

* pytest fix

* FINAL linting fix

* Fix stuff (#75)

CircleCI fixes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* update black version (#76)

* fix black

* Fix/check for NA or Infinity when notears is used  (#54)

* update scipy version (#77)

* add DYNOTEARS implementation (#50)

Adds DYNOTEARS and corresponding data generator (for testing)

* Pytorch NOTEARS extension - Non-Linear/Hidden Layer (#65)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Add hidden layer

* small refactor

* directional adj

* minor edits

* fix bias issues

* breaking changes update to the interface

* typo

* new regressor regularisation interface

* update forward method

* forward(X) predictions work

* working!

* bugfix data normalisation

* some fixes

* average regularisation and adj calc at end

* give credit!

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* loc lin docstring update

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* docstring + fc1/fc2 name updates

* moar docstring updates

* more minor updates

* remove normalize option

* plotting util

* rename to DAGRegressor

* rename and checks

* more util functions

* fix bias

* fix bias with no intercept

* fix linear adj

* add tests

* minor fix

* minor fixes

* extend interface to bias

* differentialte coef_ and feature_imporances

* seperate bias element

* tests

* more test coverage

* nonlinear test coverage

* test hotfix

* more test coverage

* test requirements update

* more test coverage

* formatting changes

* final pylint change

* more linting

* more bestpractice structuring

* more minor fixes

* FINAL linting updates

* actual last change

* update to reg defaults, additions to the tutorial

* nonlinear regularisation updates

* regressor tutorial

* almost finishing touches

* gradient based h function!

* soft clamp and coef feature importance seperation

* small api update, closer to batchnorm

* docstring updates

* stronger soft clamping

* gradient L1 rather than L2

* fcpos neg removal, gradient optim

* revert back to create_graph=True for 2nd derivative

* remove print and test fix

* black reformatting

* new black version

* full test coverage

* isort fix

* pylint fix

* first layer h(W) for speed optimization

* fix batch norm system

* add nonlinear test

* test hotfix

* black reformat

* isort fix

* remove X requirement from h_func

* regressor tutorial final commit and black update

* LayerNorm replacement

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* major changes

* add standardization

* minort changes

* fix tests

* rename reg parameters

* linting

* test coverage, docstting

* check array for infs

* fix isinstance to base type

* fix isort, add test coverage

* new tutorial

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* test string match

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* assert improvement

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* SWE suggestions

* minor bugfix

* more test fixing

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: angeldrothqb <67913551+angeldrothqb@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* Merge release/0.8.0 back into develop for release 0.8.0 (#82)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* release.md, version bump, docs

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* fix tests (#87)

* Fix pygments fail (#84)

Thanks Zain!

* update notebook beginning (#89)

* Add Binary distribution type support (#85)

* binary dtype folder and __init__

* dtype base class

* continuous dtype

* binary dtype

* update core

* make plural

* update interface for idx

* minor variable name change

* notears update

* python 3.5 support

* fix fstring

* remove categorical methods, doctrings

* formatting and docstrings

* remove redundant cat code

* isort

* indexerror check

* defensive check tests

* datatype loss tests

* more test coverage

* more tests and formatting

* fix test import

* remove double test

* linting

* docstring and pylint

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* fix long string

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* remove relative imports

* docstring fix

* dict comprehension

* list comprehension and neatness

* remove unuesd import to __init__

* fix test

* remove unused return interface

* add binary f1score tests

* one datatype instane per feature

* rename dtype -> disttype, attach dists to nodes

* fix tests

* fix linting

* fix preserve node dtyper

* fix tests

* fix tests

* fix tests

* final docstring and test fixes

* lint fix

* test_fix, warning

* linting

* fix test

* fix tests

* reduce threshold of test

* raise better error

* black linting

* remove warning

* remove useless supression and import

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Add sklearn binary classifier (#90)

* binary dtype folder and __init__

* dtype base class

* continuous dtype

* binary dtype

* update core

* make plural

* update interface for idx

* minor variable name change

* notears update

* python 3.5 support

* fix fstring

* remove categorical methods, doctrings

* formatting and docstrings

* remove redundant cat code

* isort

* indexerror check

* defensive check tests

* datatype loss tests

* more test coverage

* more tests and formatting

* fix test import

* remove double test

* linting

* docstring and pylint

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* fix long string

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* remove relative imports

* docstring fix

* dict comprehension

* list comprehension and neatness

* remove unuesd import to __init__

* fix test

* remove unused return interface

* new sklearn folder structure

* sklearn class outline

* new dtype interface

* docstring clarification

* inverse link function

* add binary f1score tests

* one datatype instane per feature

* rename dtype -> disttype, attach dists to nodes

* fix tests

* fix linting

* fix preserve node dtyper

* fix tests

* fix tests

* fix tests

* final docstring and test fixes

* lint fix

* test_fix, warning

* linting

* fix test

* fix tests

* reduce threshold of test

* docstring clarification

* _target_dist_type injection

* docstring updates + clf fit outline

* old doctring deprecation

* clf predict_proba and predict

* return bugfix

* docstring update

* import fix, linting, clf fit finished

* args docstring and None schema

* raise better error

* black linting

* linting

* revert to public interface

* remove warning

* remove useless supression and import

* add useless change to resolve merge conflict

* update inits

* standardization and data reconstruction

* remove unused imports

* fix clf .precit()

* regressor fit_predict

* remove useless regressor predict

* test import fix

* fix warnings

* pass series name thru

* fix schema pass thru

* better dict comprehension

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* import and comment fixes

* update to .format()

* fig sklearn is fitted test

* more dtype schema insertion

* DAGRegressor test fix

* dag regressor test

* more linting

* big test restructure

* combined test suite

* error string update

* more test coverage

* linting and isort

* move test to combined test

* return float64 preds

* moar clf tests

* remove untestable (multiclass) code

* class number error test

* balck reformat

* docstrings, pylint

* fix test bug

* standard scaler for _base

* pull classes direct from LabelEncoder

* update tutorial

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Fix/uniform discretisation (#65)

* Fix uniform discretiser

* Fix uniform discretiser

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* release.MD

* version bump

* Update causalnex/structure/pytorch/dist_type/_base.py

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Update causalnex/structure/pytorch/dist_type/__init__.py

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: GabrielAzevedoFerreiraQB <57528979+GabrielAzevedoFerreiraQB@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: stevelersl <55385183+SteveLerQB@users.noreply.github.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: KING-SID <sidhantbendre22@gmail.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Jebq <jb.oger2312@gmail.com>
Co-authored-by: Shuhei Ishida <shuhei.ishida66@gmail.com>

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Angel Droth <67913551+angeldrothqb@users.noreply.github.com>
Co-authored-by: GabrielAzevedoFerreiraQB <57528979+GabrielAzevedoFerreiraQB@users.noreply.github.com>
Co-authored-by: stevelersl <55385183+SteveLerQB@users.noreply.github.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: KING-SID <sidhantbendre22@gmail.com>
Co-authored-by: Jebq <jb.oger2312@gmail.com>
Co-authored-by: Shuhei Ishida <shuhei.ishida66@gmail.com>
pull bot pushed a commit to vishalbelsare/causalnex that referenced this issue Apr 4, 2021
* binary dtype folder and __init__

* dtype base class

* continuous dtype

* binary dtype

* update core

* make plural

* update interface for idx

* minor variable name change

* notears update

* python 3.5 support

* fix fstring

* remove categorical methods, doctrings

* formatting and docstrings

* remove redundant cat code

* isort

* indexerror check

* defensive check tests

* datatype loss tests

* more test coverage

* more tests and formatting

* fix test import

* remove double test

* linting

* docstring and pylint

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* fix long string

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* remove relative imports

* docstring fix

* dict comprehension

* list comprehension and neatness

* remove unuesd import to __init__

* fix test

* remove unused return interface

* new sklearn folder structure

* sklearn class outline

* new dtype interface

* docstring clarification

* inverse link function

* add binary f1score tests

* one datatype instane per feature

* rename dtype -> disttype, attach dists to nodes

* fix tests

* fix linting

* fix preserve node dtyper

* fix tests

* fix tests

* fix tests

* final docstring and test fixes

* lint fix

* test_fix, warning

* linting

* fix test

* fix tests

* reduce threshold of test

* docstring clarification

* _target_dist_type injection

* docstring updates + clf fit outline

* old doctring deprecation

* clf predict_proba and predict

* return bugfix

* docstring update

* import fix, linting, clf fit finished

* args docstring and None schema

* raise better error

* black linting

* linting

* revert to public interface

* remove warning

* remove useless supression and import

* add useless change to resolve merge conflict

* update inits

* standardization and data reconstruction

* remove unused imports

* fix clf .precit()

* regressor fit_predict

* remove useless regressor predict

* test import fix

* fix warnings

* pass series name thru

* fix schema pass thru

* better dict comprehension

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* import and comment fixes

* update to .format()

* fig sklearn is fitted test

* more dtype schema insertion

* DAGRegressor test fix

* dag regressor test

* more linting

* big test restructure

* combined test suite

* error string update

* more test coverage

* linting and isort

* move test to combined test

* return float64 preds

* moar clf tests

* remove untestable (multiclass) code

* class number error test

* balck reformat

* docstrings, pylint

* fix test bug

* standard scaler for _base

* pull classes direct from LabelEncoder

* update tutorial

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
pull bot pushed a commit to vishalbelsare/causalnex that referenced this issue Apr 4, 2021
* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* Release/0.8.0 (#80)

* Merge back to develop

* Simplifying viz.draw syntax in tutorial notebook (#46)

* Add non negativity constraint in numpy lasso (#41)

* Add plotting tutorial to the documentation (#47)

* Unpin some requirements

* Mixed type data generation (#55)

Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.

* Merge back to develop (#59)

* Pytorch NOTEARS (#63)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Update release.md

* Address coments

* Corrected release.md

* fc1 to adjacency

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Pinned sphinx-auto-doc-typehints (#66)

* Corrected a spelling/grammar mistake (#55)

* Fix/lint (#73)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* black

* pin pytorch version

* pin pytorch version

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Structure learning regressor (#68)

* initial commit (local copy-paste)

* fixed minor comments

* minor bugfix

* impute from children inital commit

* bugfixes and method option

* auto thresholding

* autothreshold and bugfix

* make threshold removal explicit

* add l1 argument

* remove child imputation

* feat importance fix and tabu logic

* moved threshold till dag

* restructure with base class

* coef mask

* recipe

* enable bias fitting

* persist bias as node attribute

* allow fit_intercept

* minor PR comment fixes

* minor comment adjustment

* test coverage and l1 clarification

* recipe

* minor test fixes

* more tests

* full test coverage

* revove python 3.5/3.6 unsupported import

* add normalization option

* idiomatic typing

* correct pylint errors

* update some tests

* more typeing updates

* more pylint requirements

* more pylint disable

* python 3.5 support

* try to get to work with 3.5

* full coverage and 3.5 support

* remove base class to pass test

* remove unneeded supression

* black formatting changes

* remove unused import

* pytlint supression

* minor reformat change

* isort fix

* better defensive programming

* fix unittests

* docstring update

* do Raises docstring properly

* action SWE suggestions

* hotfixes

* minor update

* minor black formatting change

* final merge checkbox

* fix end of file

* Data Gen root node initialisation fix (#72)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* fix for consinuous normal data

* generalise across all dtypes

* support fit_intercept

* fixed many test errors

* test logic fixes

* lint test fixes

* python 3.5 failure change

* minor test bugfix

* black

* pin pytorch version

* pin pytorch version

* additional test parameter

* black formatting

* requested changes

* test updates and docstring

* black format change

* disable too many lines

* change

* move recipe to tutorial folder

* releaseMD changes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>

* [1/2] Poisson data for data gen (#61)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* variable name change bugfix

* fix tests

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>

* [2/2] Nonlinear Data gen (#60)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* add nonlinear

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* add nonlinear to init

* change order in all

* change release.md

* root node fix on core + count

* nonlinear support to wrappers

* docstring update

* bugfix and reproducability fix

* many tests and test updates

* poiss bugfix and test fix

* moar test coverage

* categorical dataframe test coverage

* full test coverage and linting

* fix linting and fstring

* black reformat

* fix unused pylint argument

* pytest fix

* FINAL linting fix

* Fix stuff (#75)

CircleCI fixes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* update black version (#76)

* fix black

* Fix/check for NA or Infinity when notears is used  (#54)

* update scipy version (#77)

* add DYNOTEARS implementation (#50)

Adds DYNOTEARS and corresponding data generator (for testing)

* Pytorch NOTEARS extension - Non-Linear/Hidden Layer (#65)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Add hidden layer

* small refactor

* directional adj

* minor edits

* fix bias issues

* breaking changes update to the interface

* typo

* new regressor regularisation interface

* update forward method

* forward(X) predictions work

* working!

* bugfix data normalisation

* some fixes

* average regularisation and adj calc at end

* give credit!

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* loc lin docstring update

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* docstring + fc1/fc2 name updates

* moar docstring updates

* more minor updates

* remove normalize option

* plotting util

* rename to DAGRegressor

* rename and checks

* more util functions

* fix bias

* fix bias with no intercept

* fix linear adj

* add tests

* minor fix

* minor fixes

* extend interface to bias

* differentialte coef_ and feature_imporances

* seperate bias element

* tests

* more test coverage

* nonlinear test coverage

* test hotfix

* more test coverage

* test requirements update

* more test coverage

* formatting changes

* final pylint change

* more linting

* more bestpractice structuring

* more minor fixes

* FINAL linting updates

* actual last change

* update to reg defaults, additions to the tutorial

* nonlinear regularisation updates

* regressor tutorial

* almost finishing touches

* gradient based h function!

* soft clamp and coef feature importance seperation

* small api update, closer to batchnorm

* docstring updates

* stronger soft clamping

* gradient L1 rather than L2

* fcpos neg removal, gradient optim

* revert back to create_graph=True for 2nd derivative

* remove print and test fix

* black reformatting

* new black version

* full test coverage

* isort fix

* pylint fix

* first layer h(W) for speed optimization

* fix batch norm system

* add nonlinear test

* test hotfix

* black reformat

* isort fix

* remove X requirement from h_func

* regressor tutorial final commit and black update

* LayerNorm replacement

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* major changes

* add standardization

* minort changes

* fix tests

* rename reg parameters

* linting

* test coverage, docstting

* check array for infs

* fix isinstance to base type

* fix isort, add test coverage

* new tutorial

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* test string match

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* assert improvement

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* SWE suggestions

* minor bugfix

* more test fixing

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: angeldrothqb <67913551+angeldrothqb@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* release.md, version bump, docs

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: GabrielAzevedoFerreiraQB <57528979+GabrielAzevedoFerreiraQB@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: stevelersl <55385183+SteveLerQB@users.noreply.github.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: KING-SID <sidhantbendre22@gmail.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Jebq <jb.oger2312@gmail.com>

* Release/0.8.1 (#94)

* Merge back to develop

* Simplifying viz.draw syntax in tutorial notebook (#46)

* Add non negativity constraint in numpy lasso (#41)

* Add plotting tutorial to the documentation (#47)

* Unpin some requirements

* Mixed type data generation (#55)

Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.

* Merge back to develop (#59)

* Pytorch NOTEARS (#63)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Update release.md

* Address coments

* Corrected release.md

* fc1 to adjacency

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Pinned sphinx-auto-doc-typehints (#66)

* Corrected a spelling/grammar mistake (#55)

* Fix/lint (#73)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* black

* pin pytorch version

* pin pytorch version

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Structure learning regressor (#68)

* initial commit (local copy-paste)

* fixed minor comments

* minor bugfix

* impute from children inital commit

* bugfixes and method option

* auto thresholding

* autothreshold and bugfix

* make threshold removal explicit

* add l1 argument

* remove child imputation

* feat importance fix and tabu logic

* moved threshold till dag

* restructure with base class

* coef mask

* recipe

* enable bias fitting

* persist bias as node attribute

* allow fit_intercept

* minor PR comment fixes

* minor comment adjustment

* test coverage and l1 clarification

* recipe

* minor test fixes

* more tests

* full test coverage

* revove python 3.5/3.6 unsupported import

* add normalization option

* idiomatic typing

* correct pylint errors

* update some tests

* more typeing updates

* more pylint requirements

* more pylint disable

* python 3.5 support

* try to get to work with 3.5

* full coverage and 3.5 support

* remove base class to pass test

* remove unneeded supression

* black formatting changes

* remove unused import

* pytlint supression

* minor reformat change

* isort fix

* better defensive programming

* fix unittests

* docstring update

* do Raises docstring properly

* action SWE suggestions

* hotfixes

* minor update

* minor black formatting change

* final merge checkbox

* fix end of file

* Data Gen root node initialisation fix (#72)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* fix for consinuous normal data

* generalise across all dtypes

* support fit_intercept

* fixed many test errors

* test logic fixes

* lint test fixes

* python 3.5 failure change

* minor test bugfix

* black

* pin pytorch version

* pin pytorch version

* additional test parameter

* black formatting

* requested changes

* test updates and docstring

* black format change

* disable too many lines

* change

* move recipe to tutorial folder

* releaseMD changes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>

* [1/2] Poisson data for data gen (#61)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* variable name change bugfix

* fix tests

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>

* [2/2] Nonlinear Data gen (#60)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* refactor & docstring

* remove unused helper object

* add data gen to init

* make test more robust

* add count data and test, use logs for poisson samples for stability

* add nonlinear

* fix tests

* duplicate fixtures

* remove unused fixtures

* refactor data_generators into package with core and wrappers

* move wrapper to test_wrapper

* add nonlinear to init

* change order in all

* change release.md

* root node fix on core + count

* nonlinear support to wrappers

* docstring update

* bugfix and reproducability fix

* many tests and test updates

* poiss bugfix and test fix

* moar test coverage

* categorical dataframe test coverage

* full test coverage and linting

* fix linting and fstring

* black reformat

* fix unused pylint argument

* pytest fix

* FINAL linting fix

* Fix stuff (#75)

CircleCI fixes

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* update black version (#76)

* fix black

* Fix/check for NA or Infinity when notears is used  (#54)

* update scipy version (#77)

* add DYNOTEARS implementation (#50)

Adds DYNOTEARS and corresponding data generator (for testing)

* Pytorch NOTEARS extension - Non-Linear/Hidden Layer (#65)

* NoTears as ScoreSolver

* refactor continuous solver

* adding attribute to access weight matrix

* refactoring continuous solver

* Adding fit_lasso method

* add data_gen_continuous.py and tests (#38)

* add data_gen.py

* rename

* wrap SM

* move data_gen_continous, create test

* more coverage

* test fixes

* move discrete sem to another file

* node list dupe check test

* ValueError tests

* replace dag and sem functions with Ben's verions

* add Ben's tests

* fix fstring

* to_numpy_array coverage

* Ben's comments

* remove unreachable ValueError for coverage

* remove unused fixture

* remove redundant test

* remove extensions

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docstring

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* docs

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* doc

Co-Authored-By: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* rename file, g_dag rename to sm

* add new tests for equal weights

* docstring

* steve docstring, leq fix

* steve comments + docstrings

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>

* Adding check input and removing some inner functions

* Removing attribute original_ndarray

* Aligning from pandas with new implementation

* Adding tests for fit_lasso

* More tests for lasso

* wrapping tabu params in a dict

* Aligning tests with new tabu params

* Aligning from_pandas with new tabu_params

* Adding fit_intercept option to _fit method

* Adding scaling option

* fixing lasso tests

* Adding a test for fit_intercept

* scaling option only with mean

* Correction in lasso bounds

* Fix typos

* Remove duplicated bounds function

* adding comments

* add torch files from xunzheng

* add from_numpy_torch function that works like from_numpy_lasso

* lint

* add requirements

* add debug functionality

* add visual debug test

* add license

* allow running as main for viz, comments

* move to contrib

* make multi layer work a bit better

* add comment for multi layer

* use polynomial dag constraint for better speed comparison

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* revert unnecessary changes to keep PR lean

* fixes

* refactor

* Integrated tests

* Checkpoint

* Refactoring

* Finished initial refactoring

* All tests passed

* Cleaning

* Git add testing

* Get adjacency matrix

* Done cleaning

* Revert change to original notears

* Revert change to original structuremodel

* Revert change to pylintrc

* Undo deletion

* Apply suggestions from Zain

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Addressed Zain comments

* Migrated from_numpy

* Delete contrib test

* Migrated w_threshold

* Some linting

* Change to None

* Undo deletion

* List comprehension

* Refactoring scipy and remove scipy optimiser

* Refactoring

* Refactoring

* Refactoring complete

* change from np to torch tensor

* More refactoring

* Remove hnew equal to None

* Refactor again and remove commented line

* Minor change

* change to params

* Addressing Philip's comment

* Add property

* Add fc2 property weights

* Change to weights

* Docstring

* Linting

* Linting completed

* Add gpu code

* Add gpu to from_numpy and from_pandas

* cuda 0 run out of memory

* Debugging

* put 5

* debugging gpu

* shift to inner loop

* debugging not in place

* Use cada instead of to

* Support both interfaces

* Benchmarking gpu

* Minor fix

* correct import path for test

* change gpu from 5 to 1

* Debugging

* Debugging

* Experimenting

* Linting

* Remove hidden layer and gpu

* Linting

* Testing and linting

* Correct pytorch to torch

* Add init zeros

* Change weight threshold to 0.25

* Revert requirements.txt

* Add hidden layer

* small refactor

* directional adj

* minor edits

* fix bias issues

* breaking changes update to the interface

* typo

* new regressor regularisation interface

* update forward method

* forward(X) predictions work

* working!

* bugfix data normalisation

* some fixes

* average regularisation and adj calc at end

* give credit!

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* loc lin docstring update

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* docstring + fc1/fc2 name updates

* moar docstring updates

* more minor updates

* remove normalize option

* plotting util

* rename to DAGRegressor

* rename and checks

* more util functions

* fix bias

* fix bias with no intercept

* fix linear adj

* add tests

* minor fix

* minor fixes

* extend interface to bias

* differentialte coef_ and feature_imporances

* seperate bias element

* tests

* more test coverage

* nonlinear test coverage

* test hotfix

* more test coverage

* test requirements update

* more test coverage

* formatting changes

* final pylint change

* more linting

* more bestpractice structuring

* more minor fixes

* FINAL linting updates

* actual last change

* update to reg defaults, additions to the tutorial

* nonlinear regularisation updates

* regressor tutorial

* almost finishing touches

* gradient based h function!

* soft clamp and coef feature importance seperation

* small api update, closer to batchnorm

* docstring updates

* stronger soft clamping

* gradient L1 rather than L2

* fcpos neg removal, gradient optim

* revert back to create_graph=True for 2nd derivative

* remove print and test fix

* black reformatting

* new black version

* full test coverage

* isort fix

* pylint fix

* first layer h(W) for speed optimization

* fix batch norm system

* add nonlinear test

* test hotfix

* black reformat

* isort fix

* remove X requirement from h_func

* regressor tutorial final commit and black update

* LayerNorm replacement

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* major changes

* add standardization

* minort changes

* fix tests

* rename reg parameters

* linting

* test coverage, docstting

* check array for infs

* fix isinstance to base type

* fix isort, add test coverage

* new tutorial

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* test string match

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* assert improvement

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* SWE suggestions

* minor bugfix

* more test fixing

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Co-authored-by: angeldrothqb <67913551+angeldrothqb@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* Merge release/0.8.0 back into develop for release 0.8.0 (#82)

* Hotfix/0.4.3 (#7) - Address broken links and grammar

* Fix documentation links in README (#2)

* Fix links in README

* library -> libraries

* Fix github link in docs

* Clean up grammar and consistency in documentation (#4)

* Clean up grammar and consistency in `README` files

* Add esses, mostly

* Reword feature description to not appear automatic

* Update docs/source/05_resources/05_faq.md

Co-Authored-By: Ben Horsburgh <benhorsburgh@outlook.com>

Co-authored-by: Ben Horsburgh <benhorsburgh@outlook.com>

* hotfix/0.4.3: fix broken links

Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>

* Release/0.5.0

* Plotting now backed by pygraphviz. This allows:
   * More powerful layout manager
   * Cleaner fully customisable theme
   * Out-the-box styling for different node and edge types
* Can now get subgraphs from StructureModel containing a specific node
* Bugfix to resolve issue when fitting CPDs with some missing states in data
* Minor documentation fixes and improvements

* Release/0.6.0

* Release/0.7.0 (#57)

* Added plottting tutorial to the documentation
* Updated `viz.draw` syntax in tutorial notebooks
* Bugfix on notears lasso (`from_numpy_lasso` and `from_pandas_lasso`) where the non-negativity constraint was not being set
* Added DAG-based synthetic data generator for mixed types (binary, categorical, continuous) using a linear SEM approach.
* Unpinned some requirements

* release.md, version bump, docs

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* fix tests (#87)

* Fix pygments fail (#84)

Thanks Zain!

* update notebook beginning (#89)

* Add Binary distribution type support (#85)

* binary dtype folder and __init__

* dtype base class

* continuous dtype

* binary dtype

* update core

* make plural

* update interface for idx

* minor variable name change

* notears update

* python 3.5 support

* fix fstring

* remove categorical methods, doctrings

* formatting and docstrings

* remove redundant cat code

* isort

* indexerror check

* defensive check tests

* datatype loss tests

* more test coverage

* more tests and formatting

* fix test import

* remove double test

* linting

* docstring and pylint

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* fix long string

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* remove relative imports

* docstring fix

* dict comprehension

* list comprehension and neatness

* remove unuesd import to __init__

* fix test

* remove unused return interface

* add binary f1score tests

* one datatype instane per feature

* rename dtype -> disttype, attach dists to nodes

* fix tests

* fix linting

* fix preserve node dtyper

* fix tests

* fix tests

* fix tests

* final docstring and test fixes

* lint fix

* test_fix, warning

* linting

* fix test

* fix tests

* reduce threshold of test

* raise better error

* black linting

* remove warning

* remove useless supression and import

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Add sklearn binary classifier (#90)

* binary dtype folder and __init__

* dtype base class

* continuous dtype

* binary dtype

* update core

* make plural

* update interface for idx

* minor variable name change

* notears update

* python 3.5 support

* fix fstring

* remove categorical methods, doctrings

* formatting and docstrings

* remove redundant cat code

* isort

* indexerror check

* defensive check tests

* datatype loss tests

* more test coverage

* more tests and formatting

* fix test import

* remove double test

* linting

* docstring and pylint

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* fix long string

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* docstring fix

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* remove relative imports

* docstring fix

* dict comprehension

* list comprehension and neatness

* remove unuesd import to __init__

* fix test

* remove unused return interface

* new sklearn folder structure

* sklearn class outline

* new dtype interface

* docstring clarification

* inverse link function

* add binary f1score tests

* one datatype instane per feature

* rename dtype -> disttype, attach dists to nodes

* fix tests

* fix linting

* fix preserve node dtyper

* fix tests

* fix tests

* fix tests

* final docstring and test fixes

* lint fix

* test_fix, warning

* linting

* fix test

* fix tests

* reduce threshold of test

* docstring clarification

* _target_dist_type injection

* docstring updates + clf fit outline

* old doctring deprecation

* clf predict_proba and predict

* return bugfix

* docstring update

* import fix, linting, clf fit finished

* args docstring and None schema

* raise better error

* black linting

* linting

* revert to public interface

* remove warning

* remove useless supression and import

* add useless change to resolve merge conflict

* update inits

* standardization and data reconstruction

* remove unused imports

* fix clf .precit()

* regressor fit_predict

* remove useless regressor predict

* test import fix

* fix warnings

* pass series name thru

* fix schema pass thru

* better dict comprehension

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* import and comment fixes

* update to .format()

* fig sklearn is fitted test

* more dtype schema insertion

* DAGRegressor test fix

* dag regressor test

* more linting

* big test restructure

* combined test suite

* error string update

* more test coverage

* linting and isort

* move test to combined test

* return float64 preds

* moar clf tests

* remove untestable (multiclass) code

* class number error test

* balck reformat

* docstrings, pylint

* fix test bug

* standard scaler for _base

* pull classes direct from LabelEncoder

* update tutorial

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Fix/uniform discretisation (#65)

* Fix uniform discretiser

* Fix uniform discretiser

Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>

* release.MD

* version bump

* Update causalnex/structure/pytorch/dist_type/_base.py

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

* Update causalnex/structure/pytorch/dist_type/__init__.py

Co-authored-by: Zain Patel <zain.patel@quantumblack.com>

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: GabrielAzevedoFerreiraQB <57528979+GabrielAzevedoFerreiraQB@users.noreply.github.com>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: stevelersl <55385183+SteveLerQB@users.noreply.github.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: Zain Patel <zain.patel@quantumblack.com>
Co-authored-by: KING-SID <sidhantbendre22@gmail.com>
Co-authored-by: Zain Patel <30357972+mzjp2@users.noreply.github.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Jebq <jb.oger2312@gmail.com>
Co-authored-by: Shuhei Ishida <shuhei.ishida66@gmail.com>

* deprecate python3.5

* modify setup.py

* fix

* better black linting

* fix tests

* fix break coverage

* Update RELEASE.md

Co-authored-by: Ben Horsburgh <Ben.Horsburgh@quantumblack.com>
Co-authored-by: Nikos Tsaousis <tsanikgr@users.noreply.github.com>
Co-authored-by: Deepyaman Datta <deepyaman.datta@utexas.edu>
Co-authored-by: Philip Pilgerstorfer <34248114+qbphilip@users.noreply.github.com>
Co-authored-by: Angel Droth <67913551+angeldrothqb@users.noreply.github.com>
Co-authored-by: GabrielAzevedoFerreiraQB <57528979+GabrielAzevedoFerreiraQB@users.noreply.github.com>
Co-authored-by: stevelersl <55385183+SteveLerQB@users.noreply.github.com>
Co-authored-by: LiseDiagneQB <60981366+LiseDiagneQB@users.noreply.github.com>
Co-authored-by: Casey Juanxi Li <50737712+caseyliqb@users.noreply.github.com>
Co-authored-by: qbphilip <philip.pilgerstorfer@quantumblack.com>
Co-authored-by: KING-SID <sidhantbendre22@gmail.com>
Co-authored-by: Jebq <jb.oger2312@gmail.com>
Co-authored-by: Shuhei Ishida <shuhei.ishida66@gmail.com>
Co-authored-by: angeldrothqb <angel.droth@quantumblack.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants