[ot-users] Functional curves

BAUDIN Michael michael.baudin at edf.fr
Wed Aug 9 10:37:05 CEST 2017

Hi all,

Here is an attempt at providing a PCA algorithm in OpenTURNS. I wrote it for Pamphile while we were working in the HDR algorithm.

Please use it with caution : the testing was rather fast and the implementation is quite slow, because of several for loop I could not remove.

I wrote it in order to make the algorithm written by Pamphile rely entirely on OpenTURNS. The main goal was not to avoid Sklearn, but rather to be able to integrate it into OT if later needed (and I think it will be needed soon).

While discussing with Pamphile, we were wondering if the current Karhunen-Love algorithm available in OT could be used in order to compute the PCA ?

Best regards,


De : users-bounces at openturns.org [mailto:users-bounces at openturns.org]
Envoyé : mercredi 9 août 2017 09:17
À : users at openturns.org
Objet : Re: [ot-users] Functional curves

nice work!

the black curve is the median right ? I'm confused with the other 2 red ones.


De : users-bounces at openturns.org<mailto:users-bounces at openturns.org> <users-bounces at openturns.org<mailto:users-bounces at openturns.org>> de la part de Pamphile ROY <roy at cerfacs.fr<mailto:roy at cerfacs.fr>>
Envoyé : mardi 8 août 2017 16:28:28
À : users
Objet : [ot-users] Functional curves

Hi everyone,

Thanks to Michaël Baudin's inputs, I have made a function which enables functional plots using openTURNS.
If you don't know this, it is useful when you have lots of 1D curves and you want to find the mean curve, outliers, etc.

Here is the GitHub:


and in case, here is the reddit link:


The master branch is making heavy use of scikit-learn instead of OT. This choice is motivated by the speed and
by the ability to optimize easily the bandwidth (for kernel smoothing).

The openTURNS branch uses the class ot.KernelSmoothing and the function computeMinimumVolumeLevelSetWithThreshold.
Michaël has done some work for replacing the PCA's class from scikit-learn with OT. I will eventually get some time to integrate this (or someone can ;)).

Both branches are tested and slightly documented. Feel free to comment and even do pull requests :)


Pamphile ROY

Ce message et toutes les pièces jointes (ci-après le 'Message') sont établis à l'intention exclusive des destinataires et les informations qui y figurent sont strictement confidentielles. Toute utilisation de ce Message non conforme à sa destination, toute diffusion ou toute publication totale ou partielle, est interdite sauf autorisation expresse.

Si vous n'êtes pas le destinataire de ce Message, il vous est interdit de le copier, de le faire suivre, de le divulguer ou d'en utiliser tout ou partie. Si vous avez reçu ce Message par erreur, merci de le supprimer de votre système, ainsi que toutes ses copies, et de n'en garder aucune trace sur quelque support que ce soit. Nous vous remercions également d'en avertir immédiatement l'expéditeur par retour du message.

Il est impossible de garantir que les communications par messagerie électronique arrivent en temps utile, sont sécurisées ou dénuées de toute erreur ou virus.

This message and any attachments (the 'Message') are intended solely for the addressees. The information contained in this Message is confidential. Any use of information contained in this Message not in accord with its purpose, any dissemination or disclosure, either whole or partial, is prohibited except formal approval.

If you are not the addressee, you may not copy, forward, disclose or use any part of it. If you have received this message in error, please delete it and all copies from your system and notify the sender immediately by return message.

E-mail communication cannot be guaranteed to be timely secure, error or virus-free.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openturns.org/pipermail/users/attachments/20170809/89e86ab7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PrincipalComponentAnalysisAlgorithm.py
Type: application/octet-stream
Size: 5264 bytes
Desc: PrincipalComponentAnalysisAlgorithm.py
URL: <http://openturns.org/pipermail/users/attachments/20170809/89e86ab7/attachment.obj>

More information about the users mailing list