seljuknet Posted November 23, 2013 Share Posted November 23, 2013 Merhabalar arkadaşlar bu programı nasıl çalıştırırım C# mış, ama ben çalıştıramadım ne kurmam lazım. class KNN { public float knnBenzerlikHes(float[] gelenMailVectoru, float[] q) { float benzerlikOranı = 0; float toplamUst = 0, toplamAlt1 = 0, toplamAlt2 = 0; for (int i = 0; i < gelenMailVectoru.Length; i++) { toplamUst += float.Parse(gelenMailVectoru[i].ToString()) * float.Parse(q[i].ToString()); toplamAlt1 += float.Parse(gelenMailVectoru[i].ToString()) * float.Parse(gelenMailVectoru[i].ToString()); toplamAlt2 += float.Parse(q[i].ToString()) * float.Parse(q[i].ToString()); } benzerlikOranı = toplamUst / (float)(Math.Sqrt(toplamAlt1) * Math.Sqrt(toplamAlt2)); return benzerlikOranı; //0 ile 1 arasında bir değer döner. 1'e ne kadar yakınsa benzerlik o kadar fazladır. } } Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted November 23, 2013 Share Posted November 23, 2013 Bu tam olarak bir program değil, class yani sınıf. Yeni nesne türetip kullanabilirsin ancak bu şekilde işine yaracak bir şeye benzemiyor doğrusu. Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 Bu tam olarak bir program değil, class yani sınıf. Yeni nesne türetip kullanabilirsin ancak bu şekilde işine yaracak bir şeye benzemiyor doğrusu. evet bu yüzden nasıl yapabilirim class oluştursam çalışır mı ve hangi program kullanmalıyım? yeniyim de bu işlerde. Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted November 23, 2013 Share Posted November 23, 2013 (edited) MS Visual Studio programıyla çalıştırabilirsin. Şimdi yeniyim diyorsun sana yapman gereken şeyleri adım adım söylesem kötü olacağım biliyorum daha önce çok başıma geldi çünkü :D En azından şunu söylemeliyim ki eğer bu işlere yeni girdiysen bu kodlar sana ağır gelecektir ve kullanabileceğini sanmıyorum. Edited November 23, 2013 by SimpsoN_Bart Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 MS Visual Studio programıyla çalıştırabilirsin. Şimdi yeniyim diyorsun sana yapman gereken şeyleri adım adım söylesem kötü olacağım biliyorum daha önce çok başıma geldi çünkü :D En azından şunu söylemeliyim ki eğer bu işlere yeni girdiysen bu kodlar sana ağır gelecektir ve kullanabileceğini sanmıyorum. bu bir ödev o yüzden lazım, yani alakasız bir dersten bu konuda program yapmamı istediler. O derste de herhangi bir yazılım öğrenmiyoruz. Bu yüzden bu program lazım bana. Çalışması gerekiyor Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 arkadaşlar burada istediğim kodlar var ama eclipse te açamıyorum nasıl açabilirim. düzenleme yapmak ve çalıştırmak için. http://paul.luminos.nl/update/408 yardımcı olur musunuz? Quote Link to comment Share on other sites More sharing options...
tekserkan Posted November 23, 2013 Share Posted November 23, 2013 arkadaş ben bir konsol uygulaması hazırlayıp göndermeye çalışacağım. Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 arkadaş ben bir konsol uygulaması hazırlayıp göndermeye çalışacağım. eğer bunu yaparsan duacın olurum valla sağolasın. Quote Link to comment Share on other sites More sharing options...
tekserkan Posted November 23, 2013 Share Posted November 23, 2013 (edited) bu gelenmailvectoru ve q değeri nedir acaba sayısal bir değer mi yoksa bir string değer mi? Edited November 23, 2013 by tekserkan Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 bu gelenmailvectoru ve q değeri nedir acaba sayısal bir değer mi yoksa bir string değer mi? malesef hiç bilgim yok, bir hocamız ödev verdi yazılımı bana yapında nasıl yaparsanız yapın dedi. Ara sınavınıza ekleyeceğim not olarak dedi. Bu ders yazılım dersi de değil. Yazılım hakkında bilgim de yok. bu yüzden böyle kaldım :S Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 ya da aşağıdaki kodu çalıştırmam için ne yapabilirim. // kNN demo // Jerry Zhu, Carnegie Mellon University, 2000/12 // My first Java program. import java.applet.Applet; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class KNN extends Applet implements ActionListener { private TextField inputN, inputComplexity, inputK, inputKNN; private Button Step1Button, Step2Button, Step3Button; private Label errLabel; private KNNCanvas theKNNCanvas; private Canvas theTruthCanvas; private int n, complexity, k, knn; private boolean[][] truth; private class Sample { int x; int y; boolean label; } Sample[] samples; private class Distance { double d; boolean label; } Distance[] distances; public void init() { GridBagLayout bag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); this.setLayout(bag); // create input fields for // N: the size of the area is N*N Label label = new Label("Step 1: Field size(10--80):"); bag.setConstraints(label, c); this.add(label); inputN = new TextField("80", 2); bag.setConstraints(inputN, c); this.add(inputN); // Complexity: of the true distribution label = new Label(" complexity(1--100):"); bag.setConstraints(label, c); this.add(label); inputComplexity = new TextField("5", 2); bag.setConstraints(inputComplexity, c); this.add(inputComplexity); Step1Button = new Button("Create Truth"); Step1Button.addActionListener(this); c.anchor = GridBagConstraints.WEST; c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row bag.setConstraints(Step1Button, c); c.anchor = GridBagConstraints.CENTER; this.add(Step1Button); // k: number of positive or negative examples label = new Label("Step 2: samples(1--2000):"); c.gridwidth = 1; // reset to default bag.setConstraints(label, c); this.add(label); inputK = new TextField("10", 2); bag.setConstraints(inputK, c); this.add(inputK); Step2Button = new Button("Generate Samples"); Step2Button.addActionListener(this); c.anchor = GridBagConstraints.WEST; c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row bag.setConstraints(Step2Button, c); c.anchor = GridBagConstraints.CENTER; this.add(Step2Button); // kNN: the number of neighbors considered in kNN. label = new Label("Step 3: kNN(1--100):"); c.anchor = GridBagConstraints.WEST; c.gridwidth = 1; // reset to default bag.setConstraints(label, c); c.anchor = GridBagConstraints.CENTER; this.add(label); inputKNN = new TextField("1", 2); bag.setConstraints(inputKNN, c); this.add(inputKNN); Step3Button = new Button("Classify"); Step3Button.addActionListener(this); this.add(Step3Button); errLabel = new Label(" "); c.anchor = GridBagConstraints.WEST; c.fill = GridBagConstraints.BOTH; c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row bag.setConstraints(errLabel, c); this.add(errLabel); // the truth canvas theTruthCanvas = new TruthCanvas(); theTruthCanvas.setSize(404, 404); c.fill = GridBagConstraints.BOTH; c.weightx = 0; c.weighty = 1; c.gridwidth = 1; c.gridwidth = GridBagConstraints.RELATIVE; // last component in a row c.gridheight = GridBagConstraints.REMAINDER; // last component in a column bag.setConstraints(theTruthCanvas, c); this.add(theTruthCanvas); // the KNN canvas theKNNCanvas = new KNNCanvas(); theKNNCanvas.setSize(404, 404); c.fill = GridBagConstraints.BOTH; c.weightx = 1; c.weighty = 1; c.gridwidth = GridBagConstraints.REMAINDER; // last component in a row c.gridheight = GridBagConstraints.REMAINDER; // last component in a column bag.setConstraints(theKNNCanvas, c); this.add(theKNNCanvas); } public void actionPerformed(ActionEvent e) { if (e.getSource() == Step1Button) { n = new Integer(inputN.getText()).intValue(); complexity = new Integer(inputComplexity.getText()).intValue(); k=0; // remove previous samples truth = new boolean[n][n]; int x, y; for (x=0; x<n; x++) for (y=0; y<n; y++) truth[x][y] = true; for (int i=0; i<complexity; i++) {double w1, w2, b; w1 = Math.random()*2 - 1; w2 = Math.random()*2 - 1; b = Math.random()*n/2; for (x=0; x<n; x++) for (y=0; y<n; y++) if (w1*(x-n/2)+w2*(y-n/2)+b>0) truth[x][y] = !truth[x][y]; } theTruthCanvas.repaint(); } else if (e.getSource() == Step2Button) { k = new Integer(inputK.getText()).intValue(); samples = new Sample[k]; int i; for (i=0; i<k; i++) { samples[i] = new Sample(); samples[i].x = (int)(Math.random()*n); samples[i].y = (int)(Math.random()*n); samples[i].label = truth[samples[i].x][samples[i].y]; } theTruthCanvas.repaint(); } else if (e.getSource() == Step3Button) {int i; knn = new Integer(inputKNN.getText()).intValue(); distances = new Distance[knn]; for (i=0; i<knn; i++) { distances[i] = new Distance(); } theKNNCanvas.repaint(); } } public void start() { } class KNNCanvas extends Canvas { public void paint(Graphics g) { int m=5; // m*m 'pixel' // draw bounding box g.setColor(Color.black); System.out.println(n); g.drawRect(0, 0, n*m+1, n*m+1); // for each point, classify it with kNN. int error = 0; // number of misclassified points for (int x=0; x<n; x++) for (int y=0; y<n; y++) { // find the knn for (int i=0; i<k; i++){ double dist = (samples[i].x-x)*(samples[i].x-x)+(samples[i].y-y)*(samples[i].y-y); if (i<knn) {distances[i].d = dist; distances[i].label = samples[i].label; } else {// go through the knn list and replace the biggest one if possible double biggestd = distances[0].d; int biggestindex = 0; for (int a=1; a<knn; a++) if (distances[a].d > biggestd) {biggestd = distances[a].d; biggestindex = a; } if (dist < biggestd) {distances[biggestindex].d = dist; distances[biggestindex].label = samples[i].label; } } } // count which label in knn occurs most, this is the classification of (x,y) int nT=0, nF=0; boolean classification; for (int i=0; i<knn; i++) if (distances[i].label == true) nT++; else nF++; if (nT<nF) classification = false; else if (nT>nF) classification = true; else classification = Math.random() < 0.5; // if tie, randomly break it if (classification == false) g.setColor(Color.white); else g.setColor(Color.green); g.fillRect(m*x+1, m*y+1, m, m); // count classification errors if (classification != truth[x][y]) error ++; } // update error label if (n>0) errLabel.setText(" Error rate = " + (float)error/n/n*100 + "%"); // draw labeled samples g.setColor(Color.black); for (int i=0; i<k; i++) {if (samples[i].label == true) g.drawOval(samples[i].x*m+1, samples[i].y*m+1, m, m); else {g.drawLine(samples[i].x*m+(m+1)/2, samples[i].y*m+1, samples[i].x*m+(m+1)/2, samples[i].y*m+m); g.drawLine(samples[i].x*m+1, samples[i].y*m+(m+1)/2, samples[i].x*m+m, samples[i].y*m+(m+1)/2); } } } } class TruthCanvas extends Canvas { public void paint(Graphics g) { int m=5; // m*m 'pixel' // draw bounding box g.setColor(Color.black); System.out.println(n); g.drawRect(0, 0, n*m+1, n*m+1); // for each point, draw its true classification for (int x=0; x<n; x++) for (int y=0; y<n; y++) { if (truth[x][y] == false) g.setColor(Color.white); else g.setColor(Color.green); g.fillRect(m*x+1, m*y+1, m, m); } // draw labeled samples g.setColor(Color.black); for (int i=0; i<k; i++) {if (samples[i].label == true) g.drawOval(samples[i].x*m+1, samples[i].y*m+1, m, m); else {g.drawLine(samples[i].x*m+(m+1)/2, samples[i].y*m+1, samples[i].x*m+(m+1)/2, samples[i].y*m+m); g.drawLine(samples[i].x*m+1, samples[i].y*m+(m+1)/2, samples[i].x*m+m, samples[i].y*m+(m+1)/2); } } } } } Quote Link to comment Share on other sites More sharing options...
tekserkan Posted November 23, 2013 Share Posted November 23, 2013 (edited) buyrun program indirme linki. http://www.4shared.com/rar/KbQfpMnM/devUygulamas.html eğer istediğiniz exe değilde class is buyrun : http://www.4shared.com/rar/EuQxgfYt/KNN.html belki bu uyglamaların proje dosyaları istenebilir onuda upload ettim: http://www.4shared.com/rar/QkAFFaek/Proje.html java ile fazla uğraşmadığım için o konuda yardımcı olamayacağım fakat visual studio yu kullanabilirsiniz.bir önceki kodda hata vardı düzelttim.bu java kodunda hata yok ise derlerim ve buraya koyarım fakat hata var ise birşey yapamam. Edited November 23, 2013 by tekserkan Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 buyrun program indirme linki. http://www.4shared.com/rar/KbQfpMnM/devUygulamas.html eğer istediğiniz exe değilde class is buyrun : http://www.4shared.com/rar/EuQxgfYt/KNN.html java ile fazla uğraşmadığım için o konuda yardımcı olamayacağım fakat visual studio yu kullanabilirsiniz.bir önceki kodda hata vardı düzelttim.bu java kodunda hata yok ise derlerim ve buraya koyarım fakat hata var ise birşey yapamam. Allah razı çok teşekkür ederim. Hemen denemeler yapıyorum. Quote Link to comment Share on other sites More sharing options...
galetis Posted November 23, 2013 Share Posted November 23, 2013 http://rextester.com/ZNANFN64615 Altta run it butonuna tıklarsanız çalışır Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 http://rextester.com/ZNANFN64615 Altta run it butonuna tıklarsanız çalışır bu gerçekten de istediğime yakın olmuş nasıl yaptınız diye sormayacağım :) fakat değer girmem lazım giremeden değer verdi. Verilen değer 0-1 arası olması gerekiyor ve bu doğrultuda bir değer de çıktı. Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 buyrun program indirme linki. http://www.4shared.com/rar/KbQfpMnM/devUygulamas.html eğer istediğiniz exe değilde class is buyrun : http://www.4shared.com/rar/EuQxgfYt/KNN.html belki bu uyglamaların proje dosyaları istenebilir onuda upload ettim: http://www.4shared.com/rar/QkAFFaek/Proje.html java ile fazla uğraşmadığım için o konuda yardımcı olamayacağım fakat visual studio yu kullanabilirsiniz.bir önceki kodda hata vardı düzelttim.bu java kodunda hata yok ise derlerim ve buraya koyarım fakat hata var ise birşey yapamam. hocam Allah razı olsun seni çok uğraştırdım ben bir c kodu bulayım bizim hocanın anlayacağı dilden sen yine böyle 3 lü şekilde bana verebilir misin kodlama örneğini göndersem? Quote Link to comment Share on other sites More sharing options...
seljuknet Posted November 23, 2013 Author Share Posted November 23, 2013 hocam şunun türkçe programlamasını yapmak istiyorum http://paul.luminos.nl/download/document/knn.zip Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.