Weka Sana (Bir dosyayı yemek örneklerini dönüştürmek ve sonra her örneğinin tüm N en yakın komşuları bulmak)
ancak ayarlayabilirsiniz öneriyorsun ne düşündüğünü yapmak için bir astar yok Weka ve birkaç satır Java'yı aşağıdaki şekilde kullanarak bir komut satırı stili bir kaplamaya kadar:
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
import weka.core.neighboursearch.LinearNNSearch;
public class WekaCLFindNN {
public static void main(String[] args) throws Exception {
//report that the code is running
System.out.println("Weka Command Line Find Nearest " + args[0] + " Neighbors for each Instance in " + args[1]); // Display the string.
//setup datasources, grab instances, and calculate the nearest neighbors
DataSource source = new DataSource(""+args[1]);
Instances instances = source.getDataSet();
weka.core.neighboursearch.LinearNNSearch knn = new LinearNNSearch(instances);
//cycle through the dataset and get instances for the nearestneighbors
for(int j=0;j<instances.numInstances();j++){
Instances nearestInstances= knn.kNearestNeighbours(instances.instance(j), Integer.parseInt(args[0]));
//cycle through the instances and printout the nearestneighbors
System.out.println("\n\n" + instances.instance(j));
for(int i =0;i<Integer.parseInt(args[0]);i++)
{
System.out.println("\n\t" + nearestInstances.instance(i));
}
}
//close the code
System.out.println("\n"+"Nearest Neighbors found"); // Display the string.
}
}
altına kodundan sonra cammand hattından bir astar olarak bu çağırmak için nasıl bir örnek göstermektedir.
Java cp weka.jar ;. WekaCLFindNN numNNCSVfile burada
benim makinede çalışan bunun bir ekran resmi. Ben java çalıştırdığımda weka.jar dosyası ve WekaCLFindNN dosyası dizininde olduğunu unutmayın. Ayrıca ben sınıf yolu separater bir noktalı Windows altında bu çalıştırıyorum unutmayın (;) Linux altında bu çalışıyormuş Eğer iki nokta üst üste kullanması gerekir (:)
Rolü yok sayabilirsiniz Sadece Weka'nın stderr'e bir şeyler fırlattığı veritabanı sürücüsü hakkında. ama gördüğünüz gibi vektörler hizada bırakılır ve en yakın komşuları da istediğin gibi listelenir. Eğer bir günlük dosyasında veri istiyorsanız
sadece bu şekilde yürütmek
java cp weka.jar ;. WekaCLFindNN>
outputlog günlük dosyası şu şekilde görünecektir ve bu veritabanı hakkında hata yok göreceksiniz:
en yakın komşuları hem olması güzel olurdu da ve orijinal örnek veri kümesindeki indeksini kNearestNeighbours yöntemini kontrol ettim ve indeks verilerinin raporlanmadan hemen önce atıldığını gördüm. Bunu istiyorsanız, LinearNNSearch sınıfını miras almanız ve hem örnekleri hem de endeksleri çıkaran yeni bir yöntem yazmanız gerekecek.
Yani bu size yardımcı olmuştur. Weka'nın bunu kutudan çıkarmaması talihsiz bir durum, ama sadece birkaç satırlık kodla yapabilirsiniz.