2016-05-05 6 views
0

私はRVMタスクの分類のためにUCIからいくつかのデータセットをダウンロードしました。しかし、使用方法はわかりません。トレーニングやテストに使用する前に、これらのデータセットを正規化する必要があります。 例えば、私はUCIに「banknote authentication Data Set」をダウンロードしました。そして、matlabのsvmtrainを使ってsvmモデルを取得します(データをテストするためにsvmモデルを使用し、svm分類結果がOKの場合はrvmコードを使用します)。RVMの分類にUCIのデータセットを使用する方法は?

>> load banknote 
>> meas = banknote(:,1:4); 
>> species = banknote(:,5); 
>> data = [meas(:,1), meas(:,2), meas(:,3), meas(:,4)]; 
>> groups = ismember(species,1); 
>> [train, test] = crossvalind('holdOut',groups); 
>> cp = classperf(groups); 
>> svmStruct = svmtrain(data(train,:),groups(train),'showplot',true); 

これらは、私はMathWorks社のMATLABで行うもので、次のメッセージが出ます:

??? Error using ==> svmtrain at 470 
Unable to solve the optimization problem: 
Maximum number of iterations exceeded; increase options.MaxIter. 
To continue solving the problem with the current solution as the 
starting point, set x0 = x before calling quadprog. 

そして、ここでは、データセットの一部である(総ライン1372とトレーニングとテストのための休息のためのいくつかを使用):

3.6216,8.6661,-2.8073,-0.44699,0 
4.5459,8.1674,-2.4586,-1.4621,0 
3.866,-2.6383,1.9242,0.10645,0 
3.4566,9.5228,-4.0112,-3.5944,0 
0.32924,-4.4552,4.5718,-0.9888,0 
4.3684,9.6718,-3.9606,-3.1625,0 
3.5912,3.0129,0.72888,0.56421,0 
2.0922,-6.81,8.4636,-0.60216,0 
3.2032,5.7588,-0.75345,-0.61251,0 
1.5356,9.1772,-2.2718,-0.73535,0 
1.2247,8.7779,-2.2135,-0.80647,0 
3.9899,-2.7066,2.3946,0.86291,0 
1.8993,7.6625,0.15394,-3.1108,0 
-1.5768,10.843,2.5462,-2.9362,0 
3.404,8.7261,-2.9915,-0.57242,0 

この問題についてのアドバイスはありますか?ありがとうございます。

答えて

0

後でコミットします。スケール関数を使用してフィーチャを正規化します。データセットのフィーチャが多すぎる場合は、PCAを使用してディメンションを減らすことができます。

関連する問題