Giter Site home page Giter Site logo

Comments (9)

haifengl avatar haifengl commented on April 28, 2024

Sorry, this is a documentation problem. The labels should be in the range [0, k), where k is the number of classes. In your sample code, we should have

val exampleLabels = Array(0, 1)

We could change Array to Map. However, there is a performance issue for large number of points. Some people tried to plot millions data points. Map will make the UI unusable.

from smile.

Xyclade avatar Xyclade commented on April 28, 2024

Oh maybe I explained it wrongly:

My suggestion was to keep the array for the labels the same, but to change the implementation in the constructor, such that next to the array you get a global lookup table which holds the unique values and their Colors / legends. I'll work it out, such that you can see exactly what I mean, because explaining it is rather difficult.

Ps. It should not affect the performance, as the extra computation is only n where n is the amount of labels. At least, in the way I see the adjustment.

from smile.

haifengl avatar haifengl commented on April 28, 2024

The performance is not in the constructor but in plot. For each data point, we may need change color or legend, now it is done by a Map lookup instead of array index. In terms of complexity, it is still O(n) for HashMap. But the constant factor of n is much bigger now. In your experiments, please try millions data points to make sure if it is still ok. Maybe I am wrong. Thanks!

from smile.

Xyclade avatar Xyclade commented on April 28, 2024

I will test with a lot of datapoints. This is the fix I'm suggesting. Since the lookup in the hashmap should be O(1) it should not affect the plot method in performance.

In a second commit I merged the two for loops as I missed the second one in the first commit.
I'll let you know how the test goes.

from smile.

Xyclade avatar Xyclade commented on April 28, 2024

For 10 million datapoints the time to plot was equal (+/- 1 second on 1.04 minutes plotting time) for both methods.

from smile.

haifengl avatar haifengl commented on April 28, 2024

Cool. BTW, we don't need to check if id is negative now. Can you rename valueLookupTable to classLookupTable? Thanks!

I had a commit updating the comment. Can you please update the comment again? The API may be confusing now. The user may not have clear idea of what is the color/legend of class 100.

from smile.

Xyclade avatar Xyclade commented on April 28, 2024

I removed the negative check and renamed the table. However I cannot find the commit regarding the comment, could you point me out where I should update this comment? 👍

from smile.

haifengl avatar haifengl commented on April 28, 2024

Sorry, forgot to push to github. It is there now. Thanks!

from smile.

Xyclade avatar Xyclade commented on April 28, 2024

Tnx for merging it 😄

from smile.

Related Issues (20)

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.