Lineer Regresyon


#1

Hocalarım burada öğrenme yöneteminde perception u kullanıyoruz random ağrılıklar atıyoruz öğrenmede problem yok ama bu şekilde doğru orjinden geçince ayrıştırma yapamıyoruz, doğrunun orjinden ayrılması lazım bunu nasıl sağlayabiliriz.


#2

Uluslararasi bir forumda boyle kotu soru soranlarin sorusunu silerler gecerler. Muneccim degil kimse. Burasi Turkish oldugu icin yardimci olmaya calisayim.

Sorunun cevabi tabii ki kodunun yanlis olmasi. Simdi kodunu da gormedigimiz icin spekulasyon yapip hatanin ne olabilecegine dair bir tarafimizdan bir seyler uyduralim:

Buyuk ihtimalle y = \beta_0 + \beta_1 x + \epsilon gibi bir lineer regresyona \beta_0 koymadigin icin butun dogrularin orijinden geciyor.


#3

while (error!=0)
{
dim1 = 0;
error = 0;
for (int i = 0; i < aClass1; i++)
{
net = 0;
for (int j = 0; j < 3; j++)
net += w[j] * p[dim1 + j];

			if (net > 0)
				fnet = 1;

			else
				fnet = -1;

			for (int k = 0; k < 3; k++)
				w[k] = w[k] + c *(d1 - fnet)*p[dim1 + k];				
				
			error += abs((d1 - fnet) / 2);				
			
			drawAgain();
			dogruCiz(w);
			dim1 += 3;
			
		}

		dim2 = 0;
		for (int i = 0; i < aClass2; i++)
		{
			net = 0;
			for (int j = 0; j < 3; j++)
				net += w[j] * q[dim2 + j];

			if (net > 0)
				fnet = 1;

			else
				fnet = -1;

			for (int k = 0; k < 3; k++)
				w[k] = w[k] + c * (d2 - fnet)*q[dim2 + k];
			
			error += abs((d2-fnet) / 2);				
			
			drawAgain();
			dogruCiz(w);				
			dim2 += 3;			
		
		}
		
		cycle++;

	}

	label1->Text = w[0].ToString() + "x";
	label1->Text = w[1].ToString() + "y";
	label3->Text = w[2].ToString();
	label4->Text = cycle.ToString()+" cycle";

}

kodum bu şekilde dedikleriniz var sadece 1000 cycle da değilde daha az cycle da bulmak istiyorum.
kodum koymuştum düzenleyip buraya öyle koyacaktım ama unuttum kusura bakmayın.