Commit b6745483 authored by nfoy's avatar nfoy

Merge branch 'integration-1.2' of...

Merge branch 'integration-1.2' of git+ssh://scm.gforge.inria.fr/gitroot/openvibe/openvibe into integration-1.2
parents cd0351a0 6a8b4b0b
......@@ -202,11 +202,23 @@ boolean CConfigurationBuilder::preConfigure(void)
gtk_tree_view_append_column(l_pChannelNameTreeView, l_pChannelNameValueTreeViewColumn);
// Connects custom GTK signals
GObject* l_pTmp[4];
l_pTmp[0] = gtk_builder_get_object(m_pBuilderConfigureInterface, "button_change_channel_names");
l_pTmp[1] = gtk_builder_get_object(m_pBuilderConfigureChannelInterface, "button_apply_channel_name");
l_pTmp[2] = gtk_builder_get_object(m_pBuilderConfigureChannelInterface, "button_remove_channel_name");
l_pTmp[3] = gtk_builder_get_object(m_pBuilderConfigureChannelInterface, "treeview_electrode_names");
if(l_pTmp[0]) g_signal_connect(l_pTmp[0], "pressed", G_CALLBACK(button_change_channel_names_cb), this);
if(l_pTmp[1]) g_signal_connect(l_pTmp[1], "pressed", G_CALLBACK(button_apply_channel_name_cb), this);
if(l_pTmp[2]) g_signal_connect(l_pTmp[2], "pressed", G_CALLBACK(button_remove_channel_name_cb), this);
if(l_pTmp[3]) g_signal_connect(l_pTmp[3], "row-activated", G_CALLBACK(treeview_apply_channel_name_cb), this);
if(!l_pTmp[0] || !l_pTmp[1] || !l_pTmp[2] || !l_pTmp[3])
{
// @fixme should make a log entry if any NULL but no manager here
#if defined _DEBUG_Callbacks_
cout << "Note: The driver UI file lacks some of the expected buttons or elements. This may be intentional." << endl;
#endif
}
g_signal_connect(gtk_builder_get_object(m_pBuilderConfigureInterface, "button_change_channel_names"), "pressed", G_CALLBACK(button_change_channel_names_cb), this);
g_signal_connect(gtk_builder_get_object(m_pBuilderConfigureChannelInterface, "button_apply_channel_name"), "pressed", G_CALLBACK(button_apply_channel_name_cb), this);
g_signal_connect(gtk_builder_get_object(m_pBuilderConfigureChannelInterface, "button_remove_channel_name"), "pressed", G_CALLBACK(button_remove_channel_name_cb), this);
g_signal_connect(gtk_builder_get_object(m_pBuilderConfigureChannelInterface, "treeview_electrode_names"), "row-activated", G_CALLBACK(treeview_apply_channel_name_cb), this);
gtk_builder_connect_signals(m_pBuilderConfigureInterface, NULL);
gtk_builder_connect_signals(m_pBuilderConfigureChannelInterface, NULL);
......
......@@ -464,7 +464,7 @@ CInterfacedScenario::CInterfacedScenario(const IKernelContext& rKernelContext, C
// Output a log message if any box of the scenario is in some special state
CIdentifier l_oBoxIdentifier = OV_UndefinedIdentifier;
boolean l_bWarningUpdate = false, l_bWarningDeprecated = false, l_bNoteUnstable = false;
boolean l_bWarningUpdate = false, l_bWarningDeprecated = false, l_bNoteUnstable = false, l_bWarningUnknown = false;
while ((l_oBoxIdentifier = m_rScenario.getNextBoxIdentifier(l_oBoxIdentifier)) != OV_UndefinedIdentifier)
{
const IBox *l_pBox = m_rScenario.getBoxDetails(l_oBoxIdentifier);
......@@ -476,14 +476,19 @@ CInterfacedScenario::CInterfacedScenario(const IKernelContext& rKernelContext, C
}
if (!l_bWarningDeprecated && l_oBoxProxy.isDeprecated())
{
m_rKernelContext.getLogManager() << LogLevel_Warning << "Scenario has deprecated box(es). Please consider using other boxes instead.\n";
m_rKernelContext.getLogManager() << LogLevel_Warning << "Scenario contains deprecated box(es). Please consider using other boxes instead.\n";
l_bWarningDeprecated = true;
}
if (!l_bNoteUnstable && l_oBoxProxy.isUnstable())
{
m_rKernelContext.getLogManager() << LogLevel_Debug << "Scenario has unstable box(es).\n";
m_rKernelContext.getLogManager() << LogLevel_Debug << "Scenario contains unstable box(es).\n";
l_bNoteUnstable = true;
}
if (!l_bWarningUnknown && !l_oBoxProxy.isBoxAlgorithmPluginPresent())
{
m_rKernelContext.getLogManager() << LogLevel_Warning << "Scenario contains unknown box algorithm(s).\n";
l_bWarningUnknown = true;
}
}
}
......
......@@ -11,6 +11,7 @@ INCLUDE_DIRECTORIES(../)
ADD_EXECUTABLE(${PROJECT_NAME} test_tagstream.cpp ../ovasCTagStream.cpp)
INCLUDE("FindOpenViBE")
INCLUDE("FindThirdPartyBoost")
INCLUDE("FindThirdPartyBoost_System")
INCLUDE("FindThirdPartyBoost_Thread")
......
......@@ -13,7 +13,7 @@ int main()
// The construction of the second TagStream must fail because of port already in use.
CTagStream tagStream2;
}
catch(std::exception &e) {
catch( std::exception& ) {
ok=true;
}
......
<OpenViBE-Scenario>
<Creator>OpenViBE</Creator>
<CreatorVersion>1.1.0+git</CreatorVersion>
<Boxes>
<Box>
<Identifier>(0x000001b3, 0x00001dd9)</Identifier>
......@@ -39,7 +41,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x004b1b63)</Value>
<Value>(0x00000000, 0x0140dd3a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -98,7 +100,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x004df769)</Value>
<Value>(0x00000000, 0x012f7f49)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -169,7 +171,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x003b34f4)</Value>
<Value>(0x00000000, 0x0107fa9f)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -245,7 +247,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x009ba89e)</Value>
<Value>(0x00000000, 0x017edc7f)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -346,7 +348,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0058ecc3)</Value>
<Value>(0x00000000, 0x01620685)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -444,25 +446,18 @@
<Value>Linear Discrimimant Analysis (LDA)</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Number of partitions for k-fold cross-validation test</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Use shrinkage</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Value>true</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
<Name>Shrinkage coefficient (-1 == auto)</Name>
<DefaultValue>-1.000000</DefaultValue>
<Value>-1.000000</Value>
<Value>0</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
......@@ -472,11 +467,18 @@
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Number of partitions for k-fold cross-validation test</Name>
<DefaultValue>10</DefaultValue>
<Value>5</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Balance classes</Name>
<DefaultValue>false</DefaultValue>
<Value>true</Value>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
......@@ -503,7 +505,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0177ec55)</Value>
<Value>(0x00000000, 0x02edbb58)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc67a01dc, 0x28ce06c1)</Identifier>
......@@ -570,7 +572,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x004eb2dc)</Value>
<Value>(0x00000000, 0x013b6cb8)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -635,7 +637,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0059275b)</Value>
<Value>(0x00000000, 0x011ab8e2)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -707,7 +709,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0050b63e)</Value>
<Value>(0x00000000, 0x010257c6)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -800,7 +802,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0053c12c)</Value>
<Value>(0x00000000, 0x014bbe4a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -867,7 +869,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x000e6f86)</Value>
<Value>(0x00000000, 0x0040af17)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -926,7 +928,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0044155d)</Value>
<Value>(0x00000000, 0x013a2df6)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -1056,7 +1058,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0002b314)</Value>
<Value>(0x00000000, 0x00201ccf)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -1111,7 +1113,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0041a891)</Value>
<Value>(0x00000000, 0x01256795)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -1170,7 +1172,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0049066c)</Value>
<Value>(0x00000000, 0x012e0e30)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -1263,7 +1265,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x008d044f)</Value>
<Value>(0x00000000, 0x01a16618)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......
......@@ -761,14 +761,7 @@
<DefaultValue>Linear Discrimimant Analysis (LDA)</DefaultValue>
<Value>Linear Discrimimant Analysis (LDA)</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Number of partitions for k-fold cross-validation test</Name>
<DefaultValue>10</DefaultValue>
<Value>0</Value>
<Modifiability>false</Modifiability>
</Setting>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Use shrinkage</Name>
......@@ -790,13 +783,20 @@
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Number of partitions for k-fold cross-validation test</Name>
<DefaultValue>5</DefaultValue>
<Value>0</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Balance classes</Name>
<DefaultValue>false</DefaultValue>
<Value>true</Value>
<Modifiability>false</Modifiability>
</Setting>
</Setting>
</Settings>
<Attributes>
<Attribute>
......
......@@ -33,6 +33,12 @@ This input should be connected to the feature vector stream to classify. Each ti
a classification process will be triggered. Consequently, a classification stimulation will be sent on the
first output of this box.
* |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Input1|
* |OVP_DocBegin_BoxAlgorithm_ClassifierProcessor_Input2|
If this input receives the stimulation OVTK_StimulationId_TrainCompleted, the box will reload the classifier
from the disk. It can be used to implement simple incremental learning.
* |OVP_DocEnd_BoxAlgorithm_ClassifierProcessor_Input2|
__________________________________________________________________
Outputs description
......
......@@ -72,7 +72,7 @@ parameters you will have available. This will depend on the classification algor
* |OVP_DocEnd_BoxAlgorithm_ClassifierTrainer_Settings|
*
* * |OVP_DocBegin_BoxAlgorithm_ClassifierTrainer_Setting1|
This is the stimulation to consider to trigger the training process.
This is the stimulation to consider to trigger the training process and save the learned classifier to disk.
* |OVP_DocEnd_BoxAlgorithm_ClassifierTrainer_Setting1|
*
* * |OVP_DocBegin_BoxAlgorithm_ClassifierTrainer_Setting2|
......@@ -111,8 +111,14 @@ the classifier trained with the whole data. The cross-validation is only an erro
the resulting model. See the miscellaneous section for details on how the k-fold test is done in this box, and possible
caveats about the cross-validation procedure.
* |OVP_DocEnd_BoxAlgorithm_ClassifierTrainer_Setting10|
* |OVP_DocBegin_BoxAlgorithm_ClassifierTrainer_Setting11|
If the number of class labels is unbalanced, the classifiers tend to be biased towards the majority labels.
This option can be used to resample the dataset to feature all classes equally. Doing this may make sense
if the box is used for incremental learning, where all classes may not be equally represented in the training data
obtained so far, even if the design itself is balanced. Note that enabling this will make the cross-validation
results optimistic. In most conditions, the feature should be disabled.
* |OVP_DocBegin_BoxAlgorithm_ClassifierTrainer_Setting11|
__________________________________________________________________
......@@ -258,5 +264,13 @@ source, the signal processing chains for the different classes, or the classifie
then to be investigated. Also, if very low accuracies are observed in these matrices, it may give reason
to suspect that prediction accuracies on fresh data might be likewise lacking -- or worse.
Incremental Learning
The box can also be used for simple incremental (online) learning. To achieve this, simply send the box the training
stimulation and it will train a classifier with all the data it has received so far. You can give it more
feature vectors later, and trigger the learning again by sending another stimulation. Likewise, the corresponding
classifier processor box can be made to load new classifiers during playback. With classifiers like LDA,
this practice is usually feasible when the data is reasonable sized (as in basic motor imagery).
* |OVP_DocEnd_BoxAlgorithm_ClassifierTrainer_Miscellaneous|
*/
......@@ -11,7 +11,7 @@
#include <vector>
#include <iostream>
//#define OV_DEBUG_CLASSIFIER_LISTENER
// #define OV_DEBUG_CLASSIFIER_LISTENER
#ifdef OV_DEBUG_CLASSIFIER_LISTENER
#define DEBUG_PRINT(x) x
......@@ -403,8 +403,9 @@ namespace OpenViBEPlugins
if(l_bValid)
{
rBox.addSetting(l_sParameterName, l_oTypeIdentifier, l_sBuffer, rBox.getSettingCount()-1);
DEBUG_PRINT(std::cout << "Adding setting (case A) " << l_sParameterName << " : " << l_sBuffer << "\n";)
// @FIXME argh, the -2 is a hard coding that the classifier trainer has 2 settings after the classifier setting... ouch
DEBUG_PRINT(std::cout << "Adding setting (case A) " << l_sParameterName << " : " << l_sBuffer << " to slot " << rBox.getSettingCount()-2 << "\n";)
rBox.addSetting(l_sParameterName, l_oTypeIdentifier, l_sBuffer, rBox.getSettingCount()-2);
i++;
}
}
......
<OpenViBE-Scenario>
<Creator>OpenViBE</Creator>
<CreatorVersion>1.1.0+git</CreatorVersion>
<Boxes>
<Box>
<Identifier>(0x03dba115, 0x4c1f8a3a)</Identifier>
......@@ -62,7 +64,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x016f6511)</Value>
<Value>(0x00000000, 0x0605dd92)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -130,7 +132,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0022035e)</Value>
<Value>(0x00000000, 0x00b1465e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -189,7 +191,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00219eba)</Value>
<Value>(0x00000000, 0x00c9d9cd)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -240,7 +242,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0021d10e)</Value>
<Value>(0x00000000, 0x00acd187)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -311,7 +313,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00f1c322)</Value>
<Value>(0x00000000, 0x051600f2)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -387,7 +389,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0021d10a)</Value>
<Value>(0x00000000, 0x00b22076)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -456,7 +458,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00f5a0fd)</Value>
<Value>(0x00000000, 0x0504c48f)</Value>
</Attribute>
<Attribute>
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
......@@ -531,7 +533,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0031055b)</Value>
<Value>(0x00000000, 0x00d76ab4)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -603,7 +605,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00221426)</Value>
<Value>(0x00000000, 0x00b1897a)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -679,7 +681,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00225746)</Value>
<Value>(0x00000000, 0x00bc8c12)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -769,7 +771,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x017bb72f)</Value>
<Value>(0x00000000, 0x07ad5bf2)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -841,7 +843,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0022467c)</Value>
<Value>(0x00000000, 0x00a83b22)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -900,7 +902,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00225742)</Value>
<Value>(0x00000000, 0x00b24205)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -982,7 +984,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x018c6d5d)</Value>
<Value>(0x00000000, 0x07b213e9)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1061,7 +1063,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x002528b0)</Value>
<Value>(0x00000000, 0x00ab7133)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1136,7 +1138,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x01585379)</Value>
<Value>(0x00000000, 0x0799e517)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1255,7 +1257,14 @@
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
<Name>Number of partitions for k-fold cross-validation test</Name>
<DefaultValue>10</DefaultValue>
<Value>10</Value>
<Value>5</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Balance classes</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
......@@ -1274,7 +1283,7 @@
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xac393855, 0x3c85869b)</Value>
<Value>(0x9de21779, 0x37776c89)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
......@@ -1282,7 +1291,11 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x01a0f0a5)</Value>
<Value>(0x00000000, 0x082a348e)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc67a01dc, 0x28ce06c1)</Identifier>
<Value></Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -1393,7 +1406,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x007e175b)</Value>
<Value>(0x00000000, 0x02babeb3)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1496,7 +1509,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0079a288)</Value>
<Value>(0x00000000, 0x02bf65dd)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1593,7 +1606,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x058c5c9f)</Value>
<Value>(0x00000000, 0x0ea3ceab)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1713,7 +1726,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x012be48b)</Value>
<Value>(0x00000000, 0x05ab8e92)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -1789,7 +1802,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0022ccad)</Value>
<Value>(0x00000000, 0x00b1897c)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1872,7 +1885,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x00229a5c)</Value>
<Value>(0x00000000, 0x00c3a003)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -1935,7 +1948,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x002938de)</Value>
<Value>(0x00000000, 0x00d82340)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
......@@ -2042,7 +2055,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x0071e6c9)</Value>
<Value>(0x00000000, 0x02a4db23)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......@@ -2128,7 +2141,7 @@
</Attribute>
<Attribute>
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
<Value>(0x00000000, 0x01765777)</Value>
<Value>(0x00000000, 0x07b9f121)</Value>
</Attribute>
<Attribute>
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
......
......@@ -1258,6 +1258,13 @@
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Balance classes</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
......@@ -1274,7 +1281,7 @@
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xac393855, 0x3c85869b)</Value>
<Value>(0x9de21779, 0x37776c89)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
......@@ -3231,4 +3238,4 @@
<NumChildren>0</NumChildren>
</VisualisationWidget>
</VisualisationTree>
</OpenViBE-Scenario>
\ No newline at end of file
</OpenViBE-Scenario>
......@@ -1265,6 +1265,13 @@
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Balance classes</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>
<Attributes>
<Attribute>
......@@ -1281,7 +1288,7 @@
</Attribute>
<Attribute>
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
<Value>(0xac393855, 0x3c85869b)</Value>
<Value>(0x9de21779, 0x37776c89)</Value>
</Attribute>
<Attribute>
<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
......@@ -3242,4 +3249,4 @@
<NumChildren>0</NumChildren>
</VisualisationWidget>
</VisualisationTree>
</OpenViBE-Scenario>
\ No newline at end of file
</OpenViBE-Scenario>
......@@ -1265,6 +1265,13 @@
<Value>10</Value>
<Modifiability>false</Modifiability>
</Setting>
<Setting>
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
<Name>Balance classes</Name>
<DefaultValue>false</DefaultValue>
<Value>false</Value>
<Modifiability>false</Modifiability>
</Setting>