سلام
و وقت دوستان بخیر
من برای یک مساله کلاسه بندی از 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