# Fluid.umap~ transform message

**URL:** https://discourse.flucoma.org/t/fluid-umap-transform-message/1857
**Category:** Usage Questions
**Created:** [March 21, 2023, 1:35pm UTC](https://discourse.flucoma.org/t/fluid-umap-transform-message/1857 "2023-03-21T13:35:22Z")
**Posts on this page:** 1
**Showing post:** 10

<div class="post-metadata">

### Author: ![rodrigo.constanzo](https://discourse.flucoma.org/user_avatar/discourse.flucoma.org/rodrigo.constanzo/32/12_2.png) [@rodrigo.constanzo](https://discourse.flucoma.org/u/rodrigo.constanzo)
#### Post date: [April 29, 2023, 8:17am UTC](https://discourse.flucoma.org/t/fluid-umap-transform-message/1857/10 "2023-04-29T08:17:46Z")

</div>

> [@philippe.salembier](#):
>
> Once this mapping is defined, I would like to use it to characterize the sound of a piano in the context of a live event. As I would like to use the same mapping as the one trained on the database, I was thinking to use the transformpoint message to see whether the current timbre of the piano was close to the representation of the timbre extracted for the database. But doing this I also noticed that event if was using as live piano the audio that was actually used during the training, the mapping was somewhat inaccurate.

I’ve not followed this thread super closely, so I may be missing something about the specifics of your setup or approach, but it seems to me that you’re describing a classifier here, rather than dimensionality reduction.

You can obviously use dimensionally reduction as part of the recipe for classification, but in my testing/experience I got (significantly) better results _without_ using UMAP (or PCA) first and just feeding the MFCCs + stats (104d in my “recipe”) directly into a classifier. Although it is an old (and long) thread, I go through my tests/processes/comparisons in [this thread](https://discourse.flucoma.org/t/regression-classification-regressification/547). The main outcome was that “raw” descriptors/stats worked the best, and for me it was a matter of finding the right combination of stats and freq range to get the best accuracy.

For a quick test you can use `sp.classtrain` and `sp.classmatch` from [SP-Tools](https://discourse.flucoma.org/t/sp-tools-machine-learning-tools-for-drums-and-percussion/) to see if that does what you want, and if so you can then refine/customize the specific descriptors that work well/better for piano.

If you don’t want to specifically define classes you can use kmeans/clustering to find however many points you like, and then use that to feed a classifier (`sp.clustertrain` in SP-Tools for quick testing as well).

At the moment I’ve been [experimenting with using an MLP version of the classifier](https://discourse.flucoma.org/t/optimizing-a-neural-network-classifier-fluid-mlpclassifier/) which needs to be trained/converged before use, and have found the results better/faster too. (this is not implemented in the release version of `sp.classtrain`, but the dev one has it built in if you want to test that.

---

_[View the full topic](https://discourse.flucoma.org/t/fluid-umap-transform-message/1857)._
