Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
med:lab_5 [2020/04/30 02:18]
pszwed [Metody Eksploracji Danych: Laboratorium 5]
— (current)
Line 1: Line 1:
-====== Metody Eksploracji Danych: Laboratorium 5 ====== 
- 
-Podczas zajęć będziemy korzystali z funkcji biblioteki Weka wołanych programowo z kodu Java. 
- 
-{{:med:med-lab05.pdf|Opis zadań (PDF)}} 
- 
-:!: Prezentacja na YouTube 
- 
-[[https://youtu.be/uutIrXYbV5w| Laboratotrium 5 część 1 (6.23)]] 
-[[https://youtu.be/6gSbj9EyD7I| Laboratotrium 5 część 2 (17.38)]] 
- 
-Zapoznaj się z treścią  
-  *{{:med:med-w05.pdf|Wykładu 4: ogólny opis zagadnienia klasyfikacji oraz regresja logistyczna}}   
-  *{{:med:med-w05.pdf|Wykładu 5: naiwny mode Bayesa i drzewa decyzyjne}}  
-  *{{:med:med-w06.pdf|Wykładu 6: Support Vector Machines i k-NN}} 
- 
-===== Zbiory danych ===== 
- 
-[[http://home.agh.edu.pl/~pszwed/wiki/doku.php?id=med:datasets#laboratorium_5_klasyfikacja_proste_dwuwymiarowe_obserwacje|Zbiory danych]] - dwuwymiarowym obserwacjom X1 i X2 przypisana jest etykieta klasy (atrybut nominalny Y) 
- 
-===== Weka ===== 
- 
- 
-Brak specjalnych wymagań 
- 
-Biblioteka weka.jar:  ''/opt/weka/weka.jar'' 
- 
-===== IDE ===== 
- 
-  * W ''usr/local/bin'' jest dostępne Eclipse Neon 
-  * Utwórz projekt 
-  * Wybierz: //Project -> Properties -> Java Build Path.// Następnie zakładkę //Libraries// i opcję //Add External JARs//. Dodaj bibliotekę ''weka.jar '' 
- 
- 
-Dostępne są także 
-  *IntelliJ 
-  *Netbeans 
-===== Kod ===== 
- 
-Fragmenty kodu: 
- 
- 
-5.1.1 
-<code java> 
-DataSource source = new DataSource("c-001.arff"); 
-Instances data = source.getDataSet(); 
- 
-if (data.classIndex() == -1) 
- data.setClassIndex(data.numAttributes() - 1); 
- 
-</code> 
- 
- 
-Utworznenie i uczenie klasyfikatora 
- 
-5.1.3 
-<code java> 
-Classifier cls = new NaiveBayes(); 
-cls.buildClassifier(data); 
-</code> 
- 
-Instancja do sklasyfikowania  
- 
-5.1.4 
-<code java> 
-Instance inst = new DenseInstance (3); 
-inst.setDataset (data); 
-inst.setValue(0, 1.1); // wartośc dla X1 
-inst.setValue(1, 2.2); // wartość dla X2  
-</code> 
- 
-5.1.5/6 
-<code java> 
- 
-double y = cls.classifyInstance(inst); 
- 
-double[] distrib = cls.distributionForInstance(inst); 
-System.out.printf(Locale.US,"%d->%f %d->%f\n",0,distrib[0],1,distrib[1]); 
-</code> 
- 
- 
-5.2.2 
-<code java> 
-List<Attribute> atts = Arrays.asList( 
-    new Attribute("X1"), 
-    new Attribute("X2"), 
-    new Attribute("Y",Arrays.asList("tak","nie"))); 
-             
-Instances result = new Instances("some-relation", new ArrayList<> (atts),0); 
-result.setClassIndex(result.numAttributes()-1); 
- 
-</code> 
- 
-5.2.3 
-<code java> 
-for(double x1=-10;x1<=10;x1+=0.1){ 
- for(double x2=-10;x2<=10;x2+=0.1){ 
-  Instance inst = new DenseInstance(3); 
-  inst.setValue(0, x1); 
-  inst.setValue(1, x2); 
- 
-  inst.setDataset(result); 
-  double y = cls.classifyInstance(inst); 
-  inst.setClassValue(y); 
-  result.add(inst); 
- } 
-} 
- 
-</code> 
- 
-5.2.4 
-<code java> 
-ArffSaver saver = new ArffSaver(); 
-saver.setInstances(result); 
-saver.setFile(new File("c-001-result.arff")); 
-saver.writeBatch(); 
-</code> 
- 
-5.4.2 
-<code java> 
-Classifier cls; 
-cls = new NaiveBayes(); 
- 
-Evaluation eval = new Evaluation(data); 
-eval.crossValidateModel(cls, data, 10, new Random(1)); 
- 
-eval.toSummaryString() 
-eval.confusionMatrix() 
-System.out.printf(Locale.US, 
-"[prec recall fmeasure]:\t%f\t%f\t%f\n", 
-eval.weightedPrecision(), 
-eval.weightedRecall(), 
-eval.weightedFMeasure()); 
- 
-</code> 
- 
  
med/lab_5.1588205923.txt.gz · Last modified: 2020/04/30 02:18 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0