Vectorized Correlation

Attached is some code that makes use of a measure of correlation I mentioned in my first real paper on A.I. (see the definition of “symm”) that I’ve finally gotten around to coding as a standalone measure.

The code is annotated to explain how it works, but the basic idea is that sorting reveals information about the correlation between two vectors of numbers. For example, imagine you have a set of numbers from 1 to 100, listed in ascending order, in vector x, and the numbers -1 to -100, in vector y, listed in descending order. This would produce the following plot in the (x,y) plane:

Now sort each set of numbers in ascending order, and save the resultant mappings of ordinals. For example, in the case of vector x, the list is already sorted in ascending order, so the ordinals don’t change. In contrast, in the case of vector y, the list is sorted in descending order, so ordinal 1 gets mapped to the last spot, ordinal 2 gets mapped to the second to last spot, and so on. This will produce another pair of vectors that represent the mappings generated by the sorting function, which for vector x will be s_x = (1,2, \ldots, ... N), and for vector y will be s_y = (N, N-1, \ldots, ... 1), where N is the number of items in each vector. Therefore, by taking the difference between the corresponding ordinals in s_x and s_y, we can arrive at a measure of correlation, since it tells us to what extent the values in x and y share the same ordinal relationships, which is more or less what correlation attempts to measure. This can be easily mapped to the traditional [-1,1] scale, and the results are exactly what intuition suggests, which is that the example above constitutes perfect negative correlation, an increasing line constitutes perfect positive correlation, and adding noise, or changing the shape, diminishes correlation.

Because I’ve abstracted sorting using information theory, you could I suppose measure the correlation between any two ordered sets of mathematical objects.

Also attached is another script that uses basically the same method to measure correlation between numerical data and ordinal data. The specific example attached allows you to measure which dimensions in a dataset (numerical) are most relevant to driving the value of the classifier (ordinal).

Black Tree AutoML – MacOS

I’ve completed an initial free version of my software for MacOS, and it’s a stand-alone executable you can download below, together with a few example datasets. Here’s a video that shows you how to use the software, but it’s really straightforward:

Download Executable (click on the ellipsis on the far right of the screen, and select “Download”).

Download Example Datasets (Courtesy of UCI)

Swift Source Code

Black Tree AutoML Kick Starter Campaign

Just following up, I’ve already raised some money through my Kick Starter campaign, but as this is my primary source of fundraising for the time being, more is obviously better:

As a reminder, there are four levels of funding:

1. $5
2. $25
3. $100
4. $500

Each entitles you to a commercial license to use increasingly sophisticated versions of my software.

Feel free to forward this to anyone that you think might be interested, as these are deeply discounted licenses to use software, which is already only a small fraction of the cost of competing products, that are again, demonstrably inferior.

Regards,

Charles

Black Tree AutoML Kickstarter Campaign

Dear Readers,

I’ve decided to fund my A.I. venture using Kickstarter, as it is the most attractive avenue to keep things moving, since it effectively allows me to sell discounted versions of my software upfront, and keep whatever proceeds I raise:

https://www.kickstarter.com/projects/blacktreeautoml/black-tree-automatic-machine-learning

There are four levels of funding:

1. $5

2. $25

3. $100

4. $500

Each gives one person a life-time commercial license to use increasingly sophisticated versions of my software, that I plan to charge monthly for once the software is released on Apple’s App Store.

The idea is to completely democratize access to A.I., by taking the software to market using the Apple App Store, offering it at a small fraction of what competing products charge, the idea being that a global audience that pays a small sum per month is more profitable than marketing only to enterprise clients that pay large sums of money –

The plan is to sell the McDonalds of A.I., for $5 or $50 per month, depending on what you need.

There’s a video on the Kickstarter page that demonstrates the software, but at a high-level, it is, as far as I know, the most efficient machine learning software on Earth, and incomparably more efficient than Neural Networks, accomplishing in seconds what takes a Neural Network hours. It is also fully autonomous, so you don’t need a data scientist to use it –

Anyone can use it, as it’s point and click.

This will allow small and large businesses alike to make use of cutting-edge A.I. that could help manage inventory, predict sales, predict customer behavior, etc.

I’ve also shown that it’s capable of diagnosing diseases using medical imaging, such as brain MRI’s, again with the same or better accuracy as a neural network:

https://derivativedribble.wordpress.com/2021/09/23/confidence-based-prediction/

Because it can run quickly on a laptop, this will allow for medical care to be delivered in parts of the world where it is otherwise unavailable, and at some point, I plan to offer a free version for exactly this purpose.

Your support is appreciated, and it’s really going to make a difference.

Best,

Charles

Matrix / A.I. Library for Mac OS Swift

This is still a work in progress, but it contains a lot of functions that I found to be missing from Swift for doing machine learning, and using matrices in general.

Note this is of course subject to my copyright policy, and cannot be used for commercial purposes.

The actual commercial version of my core A.I. library should be ready in about a month, as this is going much faster than I thought it would.

I’ve also included a basic main file that shows you how to read a dataset, run nearest neighbor, manipulate vectors, and generate clusters. It’s the same exact algorithms you’ll find in my Octave library, the only difference being it’s written in Swift, which is not vectorized, but has the advantage of publishing to the Apple Store, and that’s the only reason I’m doing this, since I don’t really need a GUI for this audience.