صفحه 2 از 4 اولاول 1234 آخرآخر
نمایش نتایج 41 تا 80 از 165

نام تاپیک: همپوشان

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    نقل قول: همپوشان

    توی تولباکس متلب نداره؟؟

  2. #2

    نقل قول: همپوشان

    lotfan mishe komakam konid????????

  3. #3

    نقل قول: همپوشان

    شما ابتدا باید یه برنامه svm را گیر بیارید و داده ها را مانند سایر روشها در اون آموزش بدید

  4. #4

    نقل قول: همپوشان

    فکر نکنم تولباکس داشته باشه

  5. #5

    نقل قول: همپوشان

    من این برنامه رو پیداکردم چجوری باید ازش استفاده کنم
    function [D, a_star] = SVM(train_features, train_targets, params, region)

    % Classify using (a very simple implementation of) the support vector machine algorithm
    %
    % Inputs:
    % features- Train features
    % targets - Train targets
    % params - [kernel, kernel parameter, solver type, Slack]
    % Kernel can be one of: Gauss, RBF (Same as Gauss), Poly, Sigmoid, or Linear
    % The kernel parameters are:
    % RBF kernel - Gaussian width (One parameter)
    % Poly kernel - Polynomial degree
    % Sigmoid - The slope and constant of the sigmoid (in the format [1 2], with no separating commas)
    % Linear - None needed
    % Solver type can be one of: Perceptron, Quadprog
    % region - Decision region vector: [-x x -y y number_of_points]
    %
    % Outputs
    % D - Decision sufrace
    % a - SVM coeficients
    %
    % Note: The number of support vectors found will usually be larger than is actually
    % needed because both solvers are approximate.

    [Dim, Nf] = size(train_features);
    Dim = Dim + 1;
    train_features(Dim,:) = ones(1,Nf);
    z = 2*(train_targets>0) - 1;

    %Get kernel parameters
    [kernel, ker_param, solver, slack] = process_params(params);

    %Transform the input features
    y = zeros(Nf);
    switch kernel,
    case {'Gauss','RBF'},
    for i = 1:Nf,
    y(:,i) = exp(-sum((train_features-train_features(:,i)*ones(1,Nf)).^2)'/(2*ker_param^2));
    end
    case {'Poly', 'Linear'}
    if strcmp(kernel, 'Linear')
    ker_param = 1;
    end

    for i = 1:Nf,
    y(:,i) = (train_features'*train_features(:,i) + 1).^ker_param;
    end
    case 'Sigmoid'
    if (length(ker_param) ~= 2)
    error('This kernel needs two parameters to operate!')
    end

    for i = 1:Nf,
    y(:,i) = tanh(train_features'*train_features(:,i)*ker_param (1)+ker_param(2));
    end
    otherwise
    error('Unknown kernel. Can be Gauss, Linear, Poly, or Sigmoid.')
    end

    %Find the SVM coefficients
    switch solver
    case 'Quadprog'
    %Quadratic programming
    if ~isfinite(slack)
    alpha_star = quadprog((z'*z).*(y'*y), -ones(1, Nf), [], [], z, 0, 0)';
    else
    alpha_star = quadprog((z'*z).*(y'*y), -ones(1, Nf), [], [], z, 0, 0, slack)';
    end
    a_star = (alpha_star.*z)*y';

    %Find the bias
    in = find((alpha_star > 0) & (alpha_star < slack));
    if isempty(in),
    bias = 0;
    else
    B = z(in) - a_star * y(:,in);
    bias = mean(B(in));
    end

    case 'Perceptron'
    max_iter = 1e5;
    iter = 0;
    rate = 0.01;
    xi = ones(1,Nf)/Nf*slack;

    if ~isfinite(slack),
    slack = 0;
    end

    %Find a start point
    processed_y = [y; ones(1,Nf)] .* (ones(Nf+1,1)*z);
    a_star = mean(processed_y')';

    while ((sum(sign(a_star'*processed_y+xi)~=1)>0) & (iter < max_iter))
    iter = iter + 1;
    if (iter/5000 == floor(iter/5000)),
    disp(['Working on iteration number ' num2str(iter)])
    end

    %Find the worse classified sample (That farthest from the border)
    dist = a_star'*processed_y+xi;
    [m, indice] = min(dist);
    a_star = a_star + rate*processed_y(:,indice);

    %Calculate the new slack vector
    xi(indice) = xi(indice) + rate;
    xi = xi / sum(xi) * slack;
    end

    if (iter == max_iter),
    disp(['Maximum iteration (' num2str(max_iter) ') reached']);
    else
    disp(['Converged after ' num2str(iter) ' iterations.'])
    end

    bias = 0;
    a_star = a_star(1:Nf)';

    case 'Lagrangian'
    %Lagrangian SVM (See Mangasarian & Musicant, Lagrangian Support Vector Machines)
    tol = 1e-5;
    max_iter = 1e5;
    nu = 1/Nf;
    iter = 0;

    D = diag(z);
    alpha = 1.9/nu;

    e = ones(Nf,1);
    I = speye(Nf);
    Q = I/nu + D*y'*D;
    P = inv(Q);
    u = P*e;
    oldu = u + 1;

    while ((iter<max_iter) & (sum(sum((oldu-u).^2)) > tol)),
    iter = iter + 1;
    if (iter/5000 == floor(iter/5000)),
    disp(['Working on iteration number ' num2str(iter)])
    end
    oldu = u;
    f = Q*u-1-alpha*u;
    u = P*(1+(abs(f)+f)/2);
    end

    a_star = y*D*u(1:Nf);
    bias = -e'*D*u;

    otherwise
    error('Unknown solver. Can be either Quadprog or Perceptron')
    end

    %Find support verctors
    sv = find(abs(a_star) > 1e-10);
    Nsv = length(sv);
    if isempty(sv),
    error('No support vectors found');
    else
    disp(['Found ' num2str(Nsv) ' support vectors'])
    end

    %Margin
    b = 1/sqrt(sum(a_star.^2));
    disp(['The margin is ' num2str(b)])

    %Now build the decision region
    N = region(5);
    xx = linspace (region(1),region(2),N);
    yy = linspace (region(3),region(4),N);
    D = zeros(N);

    for j = 1:N,
    y = zeros(N,1);
    for i = 1:Nsv,
    data = [xx(j)*ones(1,N); yy; ones(1,N)];

    switch kernel,
    case {'Gauss','RBF'},
    y = y + a_star(i) * exp(-sum((data-train_features(:,sv(i))*ones(1,N)).^2)'/(2*ker_param^2));
    case {'Poly', 'Linear'}
    y = y + a_star(i) * (data'*train_features(:,sv(i))+1).^ker_param;
    case 'Sigmoid'
    y = y + a_star(i) * tanh(data'*train_features(:,sv(i))*ker_param(1)+ke r_param(2));
    end
    end
    D(:,j) = (y + bias);
    end


    D = D>0;

  6. #6

    نقل قول: همپوشان

    توی ابتدای فایل نحوه استفاده را نوشته بسته به داده شما داره
    بهتره در مورد svm مطالعه کنید تا بدونید چه ورودی هایی را باید بدید
    حالا بگردید شاید از این راحت تر هم باشه که فقط داده ها رابهش بدید و خروجی بگیرید چون تو اینجا پارامترهای پیش فرض نداره حتما باید بدونید چی می خواهید بهش بدید

  7. #7

    نقل قول: همپوشان

    یه سری تصاویر داشتم ،ازشون lbp گرفتم hلان میخوام ایناروبه یک svm بدم
    آخرین ویرایش به وسیله sama.66 : یک شنبه 12 مرداد 1393 در 13:51 عصر

  8. #8

    نقل قول: همپوشان

    حالا svm میخواد چیکار کنه؟

  9. #9

    نقل قول: همپوشان

    توی همون کدهایی که فرستاده بودم این فایل برای کلاسیفایربودازاین میتونم استفاده کنم؟؟
    function [final_accu,PreLabel] = NNClassifier(Samples_Train,Samples_Test,Labels_Tra  in,Labels_Test)

    Train_Model = Samples_Train;
    Test_Model = Samples_Test;
    numTest = size(Test_Model,2);
    numTrain = size(Train_Model,2);

    current_test = [];
    current_comp = [];
    PreLabel = [];
    current_value = 0;
    min_value = 99999;
    class_index = 1;

    for index2 = 1:numTest
    current_test = Test_Model(:,index2);
    for index3 = 1:numTrain
    current_comp = Train_Model(:,index3);

    current_value = sum(abs(current_test - current_comp));
    if(current_value<min_value)
    min_value = current_value;
    class_index = Labels_Train(1,index3);
    end
    end

    PreLabel = [PreLabel,class_index];
    min_value = 99999;
    class_index = 1;
    end

    Comp_Label = PreLabel - Labels_Test;
    Comp_Label = Comp_Label;
    accu_count = 0;
    for index3 = 1:size(Comp_Label,2)
    if(Comp_Label(1,index3)==0)
    accu_count = accu_count+1;
    end
    end

    final_accu = (accu_count/double(size(Comp_Label,2)))*100;



  10. #10

    نقل قول: همپوشان

    دقیقا چی کار می خواهید بکنید؟

  11. #11

    نقل قول: همپوشان

    که به عنوان یه ویژگی ازش استفاده کنم
    svmتومطلب دستورداره ولی نمیدونم چجوری استفاده کنم لطفا راهنماییم کنید
    svmtrainبرای اموزش

    و svmclassifyبرای ازمایش
    آخرین ویرایش به وسیله sama.66 : یک شنبه 12 مرداد 1393 در 13:52 عصر

  12. #12

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    که به عنوان یه ویژگی ازش استفاده کنم(دو دسته داده دارم پلاک و غیر پلاک وقتی svm بتونه با دقت بالا جداشون کنه یعنی توی تصویر هم میتونه این کار رو بکنه.,یعنی اگر یک پنجره رو توی تصویر بلغزونم svm می تونه پیداش کنه و آشکارش کنه)
    svmتومطلب دستورداره ولی نمیدونم چجوری استفاده کنم لطفا راهنماییم کنید
    svmtrainبرای اموزش

    و svmclassifyبرای ازمایش
    توی هلپش فکر کنم توضیح داده حالا من متلب ندارم و از octave استفاده می کنم که چنین دستوری نداره شاید دوستان دیگه بتونند توضیح بیشتری بدهند شما خودتون یه کم جلو ببرید هر جا اشکال داشتید بگید

  13. #13

    نقل قول: همپوشان

    helpe matlabo k mikhunam yekami gij misham kasi hast betune komakam kone?????

  14. #14

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    helpe matlabo k mikhunam yekami gij misham kasi hast betune komakam kone?????
    ببینید الان توی اینترنت این صفحه هلپ svclassify هست (فکر کنم هلپ متلب هم همین طوره )آخر صفحه را نگاه کنید یک نمونه کد برای اجرا گذاشته شده همون را اجرا کنید
    بعد داده های خودتون را مطابق همین بذارید داخل کد
    اشکال کجاشت؟

    http://www.mathworks.com/help/stats/​svmclassify.html

  15. #15

    نقل قول: همپوشان

    (درکل 660 تا پلاک و 1200تا غیرپلاک دارم،ابعاد یک در479هستن)
    من میخوام مثلا دوتادرمیان دوتا غیرپلاک و یکی پلاک روبدم بهsvm،
    یعنی باید هردفعه دوتاغیرپلاک و یکی پلاک رو بهم بچسبونم؟؟( که ابعادش میشه 3در479)بعدیک ماتریس به ابعاد3در479ایجادکنم که 2تاغیرپلاک روصفربزارم اون یه دونه پلاک رو هم یک بزارم،به این شکل درسته؟؟؟

  16. #16

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    (درکل 660 تا پلاک و 1200تا غیرپلاک دارم،ابعاد یک در479هستن)
    من میخوام مثلا دوتادرمیان دوتا غیرپلاک و یکی پلاک روبدم بهsvm،
    یعنی باید هردفعه دوتاغیرپلاک و یکی پلاک رو بهم بچسبونم؟؟( که ابعادش میشه 3در479)بعدیک ماتریس به ابعاد3در479ایجادکنم که 2تاغیرپلاک روصفربزارم اون یه دونه پلاک رو هم یک بزارم،به این شکل درسته؟؟؟
    شما باید ابتدا از پلاک و غیر پلاک هر کدومشون دو سوم اونها را واسه آموزش و یک سوم را برای آزمایش جدا کنید یعنی 440 پلاک به همراه 800 غیر پلاک ( جمعا 1240) را برای آموزش و مابقی (220 پلاک و 400 غیر پلاک جمعا 620 ) را برای آزمایش نگه دارید
    اینکه دو در میون باشن ترتیبشون مهم نیست همون بهتره که مثلا ماتریس که 1240 در 479 هست، تعداد 440 تای اولی پلاک و مابقی غیر پلاک باشن یعنی لازم نیست یک در میون بذارید چون وارد برنامه که میشه اصلا ربطی به ترتیب نداره
    بنابراین شما در ابتدا یک اتریس 1240 در 479 به نام xdata برای svmtrain ایجاد می کنید سپس یک ماتریس 1240 در یک به نام group ایجاد می کنید که 440 تای اولی یک باشه و بقیه صفر باشه
    سپس با svmclassify داده هایی که برای آزمایش نگه داشته بودید را طبقه بندی می کنید و کارآیی روش را به دست می آورید

  17. #17

    نقل قول: همپوشان

    manzuretun in code?
    load fisheriris
    xdata = meas(51:end,3:4);
    group = species(51:end);
    svmStruct = svmtrain(xdata,group,'ShowPlot',true);

    dadamo k mizaram tuye workspace vali chejuri ouno mikhune?

  18. #18

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    manzuretun in code?
    load fisheriris
    xdata = meas(51:end,3:4);
    group = species(51:end);
    svmStruct = svmtrain(xdata,group,'ShowPlot',true);

    dadamo k mizaram tuye workspace vali chejuri ouno mikhune?
    شما تعدادی هیستوگرام برای پلاکها داریدمثلا 50 تا هر کدوم به ابعاد یک در 512
    حالا تمام اینها را بچسبونید به هم تا یک ماتریس 50 در 512 ایجاد بشه
    و برای غیر پلاکها هم مثلا 30 تا هیستوگرام غیر پلاک دارید اونها را هم به انتهای اون قبلی اضافه کنید تا نهایتا یک ماتریس 80 در 512 ایجاد بشه
    که این در دستور svmtrain تشکیل پارامتر xdataرا میده
    بعد باید یک ماتریس به ابعاد 80 در یک ایجاد کنید که 50 تا عضو اول اون یک و مابقی صفر باشن و اسم ماتریس را هم بذارید group
    بعد مانند کدی که گذاشتید اجرا کنید به همین راحتی

  19. #19

    نقل قول: همپوشان

    اتصال مثلا 2تا ماتریس به این شکله؟

     C=cat(1,A,B) 


    چجوری ایناروبهم بچسبونم
    آخرین ویرایش به وسیله sama.66 : دوشنبه 13 مرداد 1393 در 20:28 عصر

  20. #20

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    اتصال مثلا 2تا ماتریس به این شکله؟

     C=cat(1,A,B) 


    چجوری ایناروبهم بچسبونم
    این داده ها کجا هستند توی فایلند یا جای دیگه؟

  21. #21

    نقل قول: همپوشان

    نه منظورم اینه E=cat(1,A,B)

    نمیدونم چرا به اون شکل نمایش داده شد

  22. #22

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    نه منظورم اینه E=cat(1,A,B)

    نمیدونم چرا به اون شکل نمایش داده شد
    مثلا شما یه ماتریس a,b دارید می خواهید به هم بچسبونید
    که اگه بخواهید ستون به ستون باشه میشه c اگه بخواهید سطر به سطر باشه میشه d

    a=[1 2 3];
    b=[4 5 6];
    c=[a b];
    d=[a; b];

    یه مثال دیگه من یک ماتریس خالی به ابعاد 10 در سه میسازم و می خوام سطرهای اون را با ماتریس های یک در سه پر کنم
    توجه: دستور rand یه سری عدد تصادفی میسازه که برای این مثال به کار بردم

    a= zeros(10,3);

    for i=1:10
    b=rand(1,3);
    a(i,:)=b;
    end

  23. #23

    نقل قول: همپوشان

    من توی فایل دارم این داده هارو،نمیدونم باید بیارم توی workspace یا نه؟؟؟؟؟؟

  24. #24

    نقل قول: همپوشان

    خب 1240تارو چجوری بهم بچسبونم متوجه نمیشم

  25. #25

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    خب 1240تارو چجوری بهم بچسبونم متوجه نمیشم
    من هم دارم همین میگم این داده ها کجا هستند؟ توی workspace یا توی فایل ذخیره شدن؟

  26. #26

    نقل قول: همپوشان

    فقط اولی رو میخونه
    Error using cd
    Cannot CD to nonpelak (Name is nonexistent or not a directory).

    Error in Untitled (line 9)
    cd nonpelak;

  27. #27

    نقل قول: همپوشان

    این را بذارید

    cd ..
    cd nonpelak;

  28. #28

    نقل قول: همپوشان

    من فرض کردم دو تا فولدر هست به نام pelak و nonpelak و پسوند فایلها هم txt هست
    اطلاعات هر کدوم را می ریزه داخل دو تا ماتریس
    حالا کاری که شما می کنید اینکه که به همون ترتیبی که گفتم داده ها را از این ماتریس ها استخراج کرده و در ماتریس xdata میذارید اگه به مشکل برخوردید اطلاع بدید

    cd pelak;
    fil=dir('*.txt');
    for i=1:numel(fil)
    pelakdata(i,:)=dlmread(fil(i).name);
    end

    cd nonpelak;
    fil=dir('*.txt');
    for i=1:numel(fil)
    nonpelakdata(i,:)=dlmread(fil(i).name);
    end

  29. #29

    نقل قول: همپوشان

    قبلا تو یه فایلی به همون ترتیبی که فرمودید برای ازمایش و یه فایلم برای اموزش جدا کردم،ولی الان چجوری باید ازتوی ماتریس واسه اموزش و ازمایش جداکنم؟

  30. #30

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    قبلا تو یه فایلی به همون ترتیبی که فرمودید برای ازمایش و یه فایلم برای اموزش جدا کردم،ولی الان چجوری باید ازتوی ماتریس واسه اموزش و ازمایش جداکنم؟
    خیلی خوب. حالا بگید فایل آموزش شامل چیه و فایل آزمایش شامل چیه ( منظورم تعداد سطر و ستون وها هست)
    استخراج سطرها و ستون یک ماتریس دیگه از اساسی ترین دستورهای متلب هست که حتما باید یاد بگیرید

  31. #31

    نقل قول: همپوشان

    متوجه نشدم،ببینید من فایلامو جداکردم ولی به ماتریس تبدیل نکردم،نمیدونم میشه بگید مراحلش به چه صورت باید باشه دقیقا؟اول باید پلاک و نان پلاک رو به ماتریس تبدیل کنم طبق کدی که دادید و ازتوش واسه اموزش و ازمایش جداکنم؟؟؟؟یا اینکه فایلایی رو که ازقبل جداکردم به عنوان ازمایش و اموزش رو بزارم تو این کد وبه ماتریس تبدیل کنم ؟؟؟

  32. #32

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    متوجه نشدم،ببینید من فایلامو جداکردم ولی به ماتریس تبدیل نکردم،نمیدونم میشه بگید مراحلش به چه صورت باید باشه دقیقا؟اول باید پلاک و نان پلاک رو به ماتریس تبدیل کنم طبق کدی که دادید و ازتوش واسه اموزش و ازمایش جداکنم؟؟؟؟یا اینکه فایلایی رو که ازقبل جداکردم به عنوان ازمایش و اموزش رو بزارم تو این کد وبه ماتریس تبدیل کنم ؟؟؟
    ببینید همون طور که گفتم باید فایلها را به ماتریس تبدیل کنید تا بتونید وارد svm کنید
    طبق همون کدی که گذاشتم فرض کنید فایلهای شما در دو فولدر باشه شما دو تا ماتریس درست کنید و اسم اون ماتریسها را هر چه دلتون خواست بذارید و نهایتا به من بگید این ماتریسهایی که ایجاد شده هر کدوم شامل چه داده هایی هست و تعداد سطر و ستون اون را بگویید تا برسیم به مرحله بعدی

  33. #33

    نقل قول: همپوشان

    دقیقا بگید در فولدرها چی گذاشتید در هر فولدری چه تعداد فایل هست

  34. #34

    نقل قول: همپوشان

    ok chejuri bayad vase amuzesho azmayesh az tu matrisa joda konam??

  35. #35

    نقل قول: همپوشان

    من دوتا فولدر دارم

    از کدوم دسته استفاده کنم؟؟؟؟
    آخرین ویرایش به وسیله sama.66 : شنبه 22 فروردین 1394 در 22:06 عصر

  36. #36

    نقل قول: همپوشان

    کد برای دسته اوله

  37. #37

    نقل قول: همپوشان


    xdataamoozesh=[pelakdata(1:440,:);nonpelakdata(1:800,:)];
    xdataazmayesh=[pelakdata(441:end,:);nonpelakdata(801:end,:)];
    groupamoozesh=[ones(440,1);zeros(800,1)];
    groupazmayesh=[ones(220,1);zeros(400,1)];

  38. #38

    نقل قول: همپوشان

    بعدش بایداینطور نوشت؟؟
    svmStruct = svmtrain(xdataamoozesh,groupamoozesh,'showplot',tr  ue);
    groupazmayesh = svmclassify(SVMStruct,Sample,'Showplot',true)
    آخرین ویرایش به وسیله sama.66 : چهارشنبه 15 مرداد 1393 در 21:14 عصر

  39. #39

    نقل قول: همپوشان

    نقل قول نوشته شده توسط sama.66 مشاهده تاپیک
    بعدش بایداینطور نوشت؟؟
    svmStruct = svmtrain(xdataamoozesh,groupamoozesh ,'showplot',true);
    groupazmayesh = svmclassify(SVMStruct,Sample,'Showplot',true)
    بله همین روش
    به علاوه اینها

    azmayesh=svmclassify(svmStruct,xdataazmayesh ,'ShowPlot',true);
    [x,y,auc]=perfcurve(azmayesh,groupazmayesh,1);
    plot(x,y)
    xlabel('False positive rate'); ylabel('True positive rate')
    title('ROC for classification by SVM')
    disp(auc)

    اگه شاخص auc از 80 درصد بیشتر بود معلومه کارایی روش خوب بوده

  40. #40

    نقل قول: همپوشان

    الان من حلقه رو چجوری بنویسم؟؟
    a= zeros(1240,1);

    for i=1:440
    b=rand( ,);
    a(i,:)=b;
    end

صفحه 2 از 4 اولاول 1234 آخرآخر

تاپیک های مشابه

  1. مقاله: شبکه های همپوشان( overlay networks)
    نوشته شده توسط hamid_shabahang در بخش شبکه و Networking‌
    پاسخ: 0
    آخرین پست: جمعه 24 آبان 1392, 08:54 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •