Giter VIP home page Giter VIP logo

dynai's People

Contributors

radumg avatar

Stargazers

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

Watchers

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

dynai's Issues

add support for more Regression algorithms

Add

  • SimpleLinearRegression

In linear regression, the model specification is that the dependent variable, y is a linear combination of the parameters (but need not be linear in the independent variables).

  • MultipleLinearRegression

  • MultivariateLinearRegression

  • LogisticRegression

It is a generalized linear model used for binomial regression.
Like many forms of regression analysis, it makes use of several predictor variables that may be either numerical or categorical.
For example, the probability that a person has a heart attack within a specified time period might be predicted from knowledge of the person's age, sex and body mass index.
Logistic regression is used extensively in the medical and social sciences as well as marketing applications such as prediction of a customer's propensity to purchase a product or cease a subscription.

Note : this should only be done after #2 and #7 are complete

Decouple Machine from algorithms

This enhancement would decouple a Machine from any particular algorithm, instead allowing us to specify the algorithm as an input.

Requires
#2 to be completed
abstracting Machine to use Accord.NET interfaces

Machine.Learn node returns null

The Machine.Learn node returns null instead of the trained Machine.

Note, the node does work at least once as the Machine.Predict node runs, so the underlying algorithm is trained.

Replace dynamic hacks with generics or delegates

Description

I'm using lots of dynamic types to marshall input data from a Machine.Predict() to its associated Algorithm.Predict() method.
The input ends up malformed in Algorithm.Predict()

Why do it this way

The Predict method is defined on the IAlgorithm interface but since each algorithm has a different return type, it declares its inputs/outputs as dynamic.

Limitations

That wouldn't be a problem in C# land, but Dynamo doesn't like an input port with dynamic as type and unwraps lists to feed individual values - madenning ! Solved with [Arbitrary...] tag in the end so Dynamo leaves lists alone.

Dynamo also can't resolve nodes that take interfaces as inputs to ports, despite feeding it classes that implement those interfaces.

Also can't use generics like `IAlgorithm<Tinput, Toutput> as they're not known and the algorithm is stored on the machine.

What to do about it

  • potentially find a way to use generics - i wasted several hours on it already but Dynamo won't play ball
  • use delegates instead of generics
  • not return the value from Predict directly, but you'd still have the data types conversion issues.

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

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

  • D3 photo D3

    Data-Driven Documents codes.