سلام
و وقت دوستان بخیر
من برای یک مساله کلاسه بندی از svm خطی و از تابع خود متلب svmtrain استفاده میکنم. میخوام به پارامترهای خط جداکننده مثل w دسترسی داشته باشم. ظاهرا به طور مستقیم نمیشه. میخوام از رابطه
Sigma(alpha(i)*y(i)*x(i))=w
این مقدار رو به دست بیارم. اینکارو که میکنم و خط حاصل رو که ترسیم میکنم با چیزی که خود متلب رسم میکنه کاملا مغایره. علت چیه؟ آلفای بدست اومده از تابع بالا چرا نمیتونه در رابطه w صدق کنه و مقدار صحیح رو بده؟؟؟
راه مستقیمی برای بدست آوردن w هست؟
برای بیشتر متوجه شدن منظورم بخشی از کد رو میگذارم:
و وقت دوستان بخیر
من برای یک مساله کلاسه بندی از svm خطی و از تابع خود متلب svmtrain استفاده میکنم. میخوام به پارامترهای خط جداکننده مثل w دسترسی داشته باشم. ظاهرا به طور مستقیم نمیشه. میخوام از رابطه
Sigma(alpha(i)*y(i)*x(i))=w
این مقدار رو به دست بیارم. اینکارو که میکنم و خط حاصل رو که ترسیم میکنم با چیزی که خود متلب رسم میکنه کاملا مغایره. علت چیه؟ آلفای بدست اومده از تابع بالا چرا نمیتونه در رابطه w صدق کنه و مقدار صحیح رو بده؟؟؟
راه مستقیمی برای بدست آوردن w هست؟
برای بیشتر متوجه شدن منظورم بخشی از کد رو میگذارم:
کد:
s=svmtrain(x',y','showplot',1,'boxconstraint',C,'method','smo'); alpha=s.Alpha; S=s.SupportVectorIndices; w=0; ii=0; for i=S' ii=ii+1; w=w+alpha(ii)*y(i)*x(:,i); end