اطلاعیه

Collapse
No announcement yet.

کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

    توی سئوالات زیادی تو انجمن دیدم که دوستان کاربرد این سه مجموعه رو می پرسن :

    معمولا نمونه زوج های ورودی-خروجی یک سیستم اصلی (که می خواهیم با شبکه عصبی مدلش کنیم)به سه دسته ی ذیل تقسیم میشن:
    Training Data,Validation Data,Test Data

    مجموعه ی Training Data برای هدایت پروسه آموزش به کار گرفته می شود ، برای بروز کردن وزن های شبکه عصبی به هنگام آموزش.

    مجموعه یValidation Data برای مونیتور کردن (نظارت کردن)کیفیت مدل شبکه عصبی از سیستم به هنگام فرآیند یادگیری و تعیین شرط توقف یادگیری برای پروسه ی training استفاده می شود.

    مجموعه ی Test Data مستقلا برای تعیین کیفیت نهایی شبکه ی آموزش دیده شده از لحاظ دقت و قابلیت های تعمیم سازی (Generalization) سیستم اصلی استفاده میشود.

    انجمن طراحی مدارهای مایکرویو(فرکانس بالا)(http://www.eca.ir/forum2/index.php?board=283.0)
    انجمن شبکه های عصبی(http://www.eca.ir/forum2/index.php?board=207.0)
    *****

    #2
    پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

    نوشته اصلی توسط امیرح
    توی سئوالات زیادی تو انجمن دیدم که دوستان کاربرد این سه مجموعه رو می پرسن :

    معمولا نمونه زوج های ورودی-خروجی یک سیستم اصلی (که می خواهیم با شبکه عصبی مدلش کنیم)به سه دسته ی ذیل تقسیم میشن:
    Training Data,Validation Data,Test Data

    مجموعه ی Training Data برای هدایت پروسه آموزش به کار گرفته می شود ، برای بروز کردن وزن های شبکه عصبی به هنگام آموزش.

    مجموعه یValidation Data برای مونیتور کردن (نظارت کردن)کیفیت مدل شبکه عصبی از سیستم به هنگام فرآیند یادگیری و تعیین شرط توقف یادگیری برای پروسه ی training استفاده می شود.

    مجموعه ی Test Data مستقلا برای تعیین کیفیت نهایی شبکه ی آموزش دیده شده از لحاظ دقت و قابلیت های تعمیم سازی (Generalization) سیستم اصلی استفاده میشود.
    ببخشید من نیاز به راهنمایی دارم
    میشه بگید این Training Data رو چطور استفاده می کنیم درواقع وقتی یه فایل دیتا داریم ومن میخوام مثلا بردار ورودی ام رو با این مجموعه دیتا آموزش بدم باید چیکار کنم؟!؟

    دیدگاه


      #3
      پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

      نوشته اصلی توسط tiyan
      ببخشید من نیاز به راهنمایی دارم
      میشه بگید این Training Data رو چطور استفاده می کنیم درواقع وقتی یه فایل دیتا داریم ومن میخوام مثلا بردار ورودی ام رو با این مجموعه دیتا آموزش بدم باید چیکار کنم؟!؟
      روشهای زیادی برای آموزش وجود داره معروف ترینشون شبکه عصبی، SVM هستند ولی بسته به کاربرد ممکنه لازم باشه از روشهای دیگه هم استفاده بشه مثلاً اکه داده ها زمانی(ترتیبی)باشند ممکنه شبکه عصبی تأخیر زمانی یا مدل مخفی مارکوف مفیدتر باشه.
      لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
      لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
      با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
      اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
      يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

      دیدگاه


        #4
        پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

        نوشته اصلی توسط هـادی
        روشهای زیادی برای آموزش وجود داره معروف ترینشون شبکه عصبی، SVM هستند ولی بسته به کاربرد ممکنه لازم باشه از روشهای دیگه هم استفاده بشه مثلاً اکه داده ها زمانی(ترتیبی)باشند ممکنه از شبکه عصبی تأخیری یا مدل مخفی مارکوف مفیدتر باشه.
        راستش من دارم روی مسئله ای مرتبط با SVM ،دسته بندی بیماری تیروئید با 7مشخصه ورودی در 4کلاس، من یه فایل دیتا دارم که 100داده داره و میخوام از 80تای اون برای آموزش همین شبکه استفاده کنم،ولی واقعیت اینه من هیچوقت اینکار نکردم :sad: میتونید برام بیشتر توضیح بدید؟!من میخوام با کرنل خطی برای ُداده ها رو دسته بندی کنم و معادله خط جداساز و میزان خطا رو بدست بیارم

        دیدگاه


          #5
          پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

          نوشته اصلی توسط tiyan
          راستش من دارم روی مسئله ای مرتبط با SVM ،دسته بندی بیماری تیروئید با 7مشخصه ورودی در 4کلاس، من یه فایل دیتا دارم که 100داده داره و میخوام از 80تای اون برای آموزش همین شبکه استفاده کنم،ولی واقعیت اینه من هیچوقت اینکار نکردم :sad: میتونید برام بیشتر توضیح بدید؟!من میخوام با کرنل خطی برای ُداده ها رو دسته بندی کنم و معادله خط جداساز و میزان خطا رو بدست بیارم
          SVM ذاتاً یک کلاسیفایر باینری است یعنی فقط حالت دوکلاسه با این کلاسیفایر قابل طبقه بندی است. وقتی بیشتر از دو کلاس داشته باشید یکی از راهها اینه که به جای یک SVM به تعداد کلاسها SVM داشته باشید که در هر SVM یک کلاس به عنوان کلاس 1 و بقیه کلاسها به عنوان کلاس 1- قرار می گیرند. البته اگه تعداد کلاسها خیلی زیاد بشه یا داده ها خیلی نویزی باشند یا outlier (داده هایی که در فضای ویژگی در محدوده کلاس دیگری قرار دارند) زیادی داشته باشند، بهتره از شبکه عصبی یا روشهای دیگه استفاده بشه.
          متلب از تابع svmtrain برای آموزش و از svmclassify برای طبقه بندی استفاده می کند ولی در حالت چندکلاسه، باید فاصله داده تست که در یک SVM به عنوان کلاس 1+ شناخته شده تا مرز هر SVM رو به دست بیارید و هر کلاسی که داده از مرز اون دورتر بود رو در نظر بگیرید.
          بعد از آموزش SVM، پارامترهای آون که برای به دست آوردن مشخصات مرز لازمه در یک ساختار Struct ذخیره میشن، که با استفاده از مقادیر اون میتونید رابطه مرز رو به دست بیارید ولی راه ساده تر استفاده از توابع نوشته شده آماده است که من تابع svmdecision رو اینجا ضمیمه می کنم.
          در صورتی که نفهمیدی چطور از این توابع استفاده کنی، باز هم در خدمتم.
          فایل ضمیمه: http://vip.eca.ir/sharing/uploads/13571529621.rar
          لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
          لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
          با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
          اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
          يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

          دیدگاه


            #6
            پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

            واقعا ممنونم
            توضیحاتتون خیلی برام مفید بود
            اما دوتا مشکل دارم یکیش این که منظور این جمله اتون رو نمیفهمم "ولی در حالت چندکلاسه، باید فاصله داده تست که در یک SVM به عنوان کلاس 1+ شناخته شده تا مرز هر SVM رو به دست بیارید و هر کلاسی که داده از مرز اون دورتر بود رو در نظر بگیرید." داده های ورودی من هم باینری و هم حقیقی هستند و من وقتی هنوز کلاس بندی نکردم چطور فاصله ها رو دربیارم؟!منظورتون ماکسیمم داده ورودی ست

            و در درمورد فایل ضمیمه متاسفانه نمیتونم سر دربیارم!! مثلا پارامترهایی که متلب از یک کلاس به من داده ایناست:

            = svmStruct

            [ SupportVectors: [0x2 double
            [ Alpha: [0x1 double
            Bias: 1
            KernelFunction: @linear_kernel
            KernelFunctionArgs: {}
            [ GroupNames: [50x1 logical
            [SupportVectorIndices: [0x1 double
            [ ScaleData: [1x1 struct
            {[FigureHandles: {[173.0023] [174.0083 0] [0x1 double
            چطور بایداز اینا داخل ام.فایلی که فرستادید استفاده کنم؟

            دیدگاه


              #7
              پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

              نوشته اصلی توسط tiyan
              واقعا ممنونم
              توضیحاتتون خیلی برام مفید بود
              اما دوتا مشکل دارم یکیش این که منظور این جمله اتون رو نمیفهمم "ولی در حالت چندکلاسه، باید فاصله داده تست که در یک SVM به عنوان کلاس 1+ شناخته شده تا مرز هر SVM رو به دست بیارید و هر کلاسی که داده از مرز اون دورتر بود رو در نظر بگیرید." داده های ورودی من هم باینری و هم حقیقی هستند و من وقتی هنوز کلاس بندی نکردم چطور فاصله ها رو دربیارم؟!منظورتون ماکسیمم داده ورودی ست

              و در درمورد فایل ضمیمه متاسفانه نمیتونم سر دربیارم!! مثلا پارامترهایی که متلب از یک کلاس به من داده ایناست:

              = svmStruct

              [ SupportVectors: [0x2 double
              [ Alpha: [0x1 double
              Bias: 1
              KernelFunction: @linear_kernel
              KernelFunctionArgs: {}
              [ GroupNames: [50x1 logical
              [SupportVectorIndices: [0x1 double
              [ ScaleData: [1x1 struct
              {[FigureHandles: {[173.0023] [174.0083 0] [0x1 double
              چطور بایداز اینا داخل ام.فایلی که فرستادید استفاده کنم؟
              بذارید یک مثال بزنم، همین مورد خودتون خوبه. 4 تا کلاس داریم، یک ماتریس با 100 سطر و 7 ستون که در هر سطر یک داده و در هر ستون یک ویژگی قرار دارد (ماتریس data)و یک ماتریس با 100 سطر و 1 ستون که در هر سطر شماره کلاس داده متناسب با آن سطر (عددی بین 1 تا 4) قرار دارد(ماتریس lbl).
              اول داده های آموزش و آزمون انتخاب می شوند:
              کد PHP:
              trdata data(1:80,:);
              trlbl lbl(1:80);
              tstdata data(81:100,:);
              tstlbl lbl(81:100); 

              حالا باید 4 تا کلاسیفایر برای هر کلاس ایجاد و آموزش داده بشه. برای کلاس 1:
              کد PHP:
               trlbl1 = -ones(size(trlbl));
               
              trlbl1(double(trlbl) == 1) = 1;
               
              svm1 svmtrain(trdata,trlbl1); 

              این کار را برای بقیه کلاسها هم انجام دهید.
              برای طبقه بندی نمونه های تست، از تابع svmdecidon استفاده کنید:
              کد PHP:
              [out1,f1] = svmdecision(tstdata,svm1); 

              out1 اگر 1+ باشد یعنی داده می تواند به کلاس 1 تعلق داشته باشد وگرنه متعلق به کلاس 1 نیست.
              و f1 هم فاصله داده تا مرز را نشان می دهد.
              برای 3 کلاس دیگر هم همین کار را انجام می دهیم.
              بین خروجی f1 تا f4 هر کدام که مقدار بزرگتری داشته باشند، داده متعلق به همان کلاس است.
              الان اینا رو بدون تست کردن نوشتم امیدوارم به دلیل گذشت زمان فراموش نشده باشه و اشتباه نکرده باشم.
              موفق باشید.
              لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
              لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
              با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
              اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
              يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

              دیدگاه


                #8
                پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                بی نهایت سپاسگذارم با اعمال تغییرات و توضیحاتی که دادید نتیجه رو بدست آوردم :wow:
                بازهم ممنونم

                دیدگاه


                  #9
                  پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                  باسلام.در مقاله ی :
                  Mixture of Experts for Persian Handwritten Word Recognition پایگاه داده ی Iranshahr استفاده شده اما موفق نشدم پیداش کنم لطفا اگه کسی میدونه راهنمائیم کنه.
                  ممنون

                  دیدگاه


                    #10
                    پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                    سلام ..

                    به Author دوم و یا سوم مقاله ای که به اون اشاره کردید، ایمیل بزنید (با توجه به این که آدرس الکترونیکی مستقیم اونها در مقاله قید شده) و تشریح کنید که برای پروژه ی علمی تحقیقاتی خودتون به این دیتابیس احتیاج دارید و اشاره کنید که در صورت به نتیجه رسیدن و انتشار مقاله، حتما به اونها هم Cite میکنید .. معمولا این روش برای اخذ دیتابیس ها باید طی بشه .. موفق و سلامت و شاد باشید ..

                    نوشته اصلی توسط titi1
                    باسلام.در مقاله ی :
                    Mixture of Experts for Persian Handwritten Word Recognition پایگاه داده ی Iranshahr استفاده شده اما موفق نشدم پیداش کنم لطفا اگه کسی میدونه راهنمائیم کنه.
                    ممنون
                    دوستان! مدتی کمتر به سایت میام ..

                    دیدگاه


                      #11
                      پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                      نوشته اصلی توسط titi1
                      باسلام.در مقاله ی :
                      Mixture of Experts for Persian Handwritten Word Recognition پایگاه داده ی Iranshahr استفاده شده اما موفق نشدم پیداش کنم لطفا اگه کسی میدونه راهنمائیم کنه.
                      ممنون
                      یک تاپیک جدید باز کردم، به اونجا مراجعه کنید.
                      http://www.eca.ir/forum2/index.php?topic=73718.0
                      لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                      لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                      با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                      اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                      يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                      دیدگاه


                        #12
                        پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                        نوشته اصلی توسط titi1
                        باسلام.در مقاله ی :
                        Mixture of Experts for Persian Handwritten Word Recognition پایگاه داده ی Iranshahr استفاده شده اما موفق نشدم پیداش کنم لطفا اگه کسی میدونه راهنمائیم کنه.
                        ممنون
                        سلام.
                        من حدود 4 تا پایگاه داده از ارقام دستنویس فارسی دارم و یک پایگاه داده از حروف دستنویس فارسی دارم که مال دانشگاه امیر کبیر هست. اگه به کارتون میاد بگید بفرستم براتون
                        عنوان پروژه جذاب بود برام یادش به خیر سال 87 یک سال روی اختلاط خبره ها کار کردم.
                        در هر صورت کمی از من بر میاد درخدمتم
                        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                        دیدگاه


                          #13
                          پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                          سلام.
                          پست بالا رو ویرایش کردم. بررسی کردم دیدم پایگاه داده حروف هم دستنویس هست.
                          موفق باشید
                          شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                          هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                          چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                          دیدگاه


                            #14
                            پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                            سلام دوستان
                            ممنون میشم اگر کسی واسم توضیح یده که با استفاده از دستور svm چجور این سوال را حل کنم:
                            Suppose we have 5 points in 1D feature space as follows:
                            x1=1, x2=2, x3=4, x4=5, x5=6, with 1, 2, 6 as class 1 and 4, 5 as class2
                            Use a polynomial kernel of degree 2 as K(x,z) = (xz+1)2 to find
                            Find support vectors
                            3) Find the discriminant function f(z)
                            4) Find the bias b
                            5) Plot the discriminate function, 5 points and the regions for the classes

                            دیدگاه


                              #15
                              پاسخ : کاربرد مجموعه های Training Data,Validation Data,Test Data در کد نویسی با متلب

                              سلام امیدوارم همه خوب باشند لطفا اگر اطلاعاتی در رابطه با کلاس بندی knn و بیزین هم دارید من را راهنمایی کنید ممنون از لطف شما

                              دیدگاه

                              لطفا صبر کنید...
                              X