تشخیص ارز جعلی با یادگیری ماشینی

ساخت وبلاگ

thecleverprogrammer

تشخیص ارز جعلی یک مشکل واقعی هم برای افراد و هم برای مشاغل است. جعل کنندگان دائماً در حال یافتن روش ها و تکنیک های جدیدی برای تولید اسکناس های تقلبی هستند که اساساً از پول واقعی قابل تشخیص نیستند. حداقل برای چشم انسان. در این مقاله شما را با تشخیص ارز جعلی با یادگیری ماشینی آشنا می کنم.

تشخیص ارز جعلی وظیفه طبقه بندی باینری در یادگیری ماشین است. اگر اطلاعات کافی در مورد اسکناس های واقعی و جعلی داشته باشیم، می توانیم از آن داده ها برای آموزش مدلی استفاده کنیم که بتواند اسکناس های جدید را به عنوان واقعی یا جعلی طبقه بندی کند.

تشخیص ارز جعلی

مجموعه داده ای که در این کار برای تشخیص ارز جعلی استفاده خواهم کرد را می توان از اینجا دانلود کرد. مجموعه داده شامل این چهار ویژگی ورودی است:

  • واریانس تصویر به موجک تبدیل شده است
  • عدم تقارن تصویر به موجک تبدیل شده است
  • کورتوز تصویر به موجک تبدیل شده است
  • آنتروپی تصویر

مقدار هدف برای اسکناس های واقعی 0 و برای اسکناس های جعلی 1 است. اکنون بیایید با این کار شناسایی ارز جعلی با یادگیری ماشین شروع کنیم. من این کار را با وارد کردن بسته های لازم شروع می کنم:

حال، بیایید نگاهی به مجموعه داده بیندازیم، داده ها عنوان ندارند، بنابراین من نیز در این فرآیند عناوین را اختصاص می دهم و سپس 5 ردیف اول از داده ها را چاپ می کنم:

var skew curt entr auth 0 3. 62160 8. 666 1-2. 807 3-0. 44699 0 1 4. 54590 8. 167 4-2. 458 6-1. 46210 0 2 3. 8660 0-2. 61384 2. 6138 4-2. 61383 0 9. 522 8-4. 011 2-3. 59440 0 4 0. 3292 4-4. 4552 4. 571 8-0. 98880 0

کاوش داده ها

حالا بیایید کاوش مجموعه داده را شروع کنیم. ابتدا، انواع داده ها را بررسی می کنم و اگر مقادیری در داده ها وجود نداشته باشد:

چاپ(داده هااطلاعات)زبان کد: CSS (css)

بنابراین، ما هیچ مقدار گمشده ای در داده ها نداریم. اکنون می توانیم یک نمودار جفتی ترسیم کنیم تا یک نمای کلی از رابطه بین همه موجودیت ها به دست آوریم. همچنین مشاهدات را رنگ می کنم: آبی برای اسکناس های اصلی و نارنجی برای اسکناس های تقلبی:

sns. pairplot(داده، hue='auth') plt. show() زبان کد: جاوا اسکریپت (جاوا اسکریپت)

banknotes classification

از این طرح جفتی می توانیم چندین مشاهدات جالب داشته باشیم:

  • به نظر می رسد توزیع واریانس و چولگی برای دو ویژگی هدف کاملاً متفاوت است، در حالی که به نظر می رسد کشیدگی و آنتروپی شبیه تر هستند.
  • روندهای خطی و غیرخطی واضحی در ویژگی های ورودی وجود دارد.
  • به نظر می رسد برخی از ویژگی ها با هم مرتبط هستند.
  • به نظر می رسد برخی ویژگی ها به خوبی اسکناس های اصلی و جعلی را از هم جدا می کنند.

حال بیایید بررسی کنیم که آیا داده های ما در برابر مقادیر هدف متعادل است:

fake currency detection

مجموعه داده نسبتاً متعادل است ، اما برای کار طبقه بندی باینری ، ما باید آن را کاملاً متعادل کنیم. بنابراین بیایید با انجام این کار ، پیش پردازش داده ها را شروع کنیم.

پردازش داده ها

اکنون ما باید داده های خود را متعادل کنیم ، ساده ترین راه برای انجام این کار ، رها کردن تعدادی از نمونه های عملکرد هدف بیش از حد است. به این زیر نمونه گیری تصادفی گفته می شود.

در غیر این صورت ، ما همچنین می توانیم داده های مصنوعی جدیدی را برای کلاس هدف زیر نمای ایجاد کنیم. این به نمونه برداری بیش از حد گفته می شود. در حال حاضر ، بیایید با حذف تصادفی 152 مشاهده اسکناس واقعی شروع کنیم:

1 610 0 610 نام: auth ، dtype: int64

اکنون ما یک مجموعه داده کاملاً متعادل داریم. در مرحله بعد ، ما باید داده ها را به مجموعه های آموزش و آزمایش تقسیم کنیم:

اکنون داده ها را با استفاده از روش استاندارد Calar ارائه شده توسط Scikit-Lea استاندارد می کنم:

رگرسیون لجستیک برای تشخیص ارز جعلی

اکنون ، من مدل خود را برای تشخیص ارزی جعلی با استفاده از الگوریتم رگرسیون لجستیک آموزش و آزمایش می کنم. بیایید ابتدا داده های موجود در مدل رگرسیون لجستیک را برای آموزش مدل متناسب کنیم:

CLF = LogisticRegression (SOLVER ='lbfgs'، random_state =42، multi_class ='خودکار') clf. fit (x_train ، y_train. values. ravel ())زبان کد: جاوا اسکریپت (جاوا اسکریپت)

اکنون بیایید صحت مدل ما را آزمایش کنیم:

pred. Negative pred. Positive Act. Negative 187 6 Act. Positive 0 173 دقت = 98. 36 ٪

مدل رگرسیون لجستیک به دقت 98. 36 ٪ دست یافت. و نه تنها این ، هنگامی که مدل تشخیص ارز جعلی ما پیش بینی کرد که یک اسکناس واقعی است ، 100 ٪ از زمان صحیح بود.

حالا بیایید پیش بینی یک اسکناس واحد را شبیه سازی کنیم. تمام کاری که ما باید انجام دهیم استخراج ویژگی ها ، مقیاس کردن آنها و ادغام آنها در مدل از پیش آموزش داده شده ما است. ما همچنین می توانیم از احتمال اسکناس متعلق به هر کلاس هدف بازرسی کنیم:

پیش بینی: کلاس 0احتمال [0/1]: [0. 61112576 0. 38887424]

مدل ما پیش بینی می کند که این اسکناس واقعی است. امیدوارم این مقاله را در مورد تشخیص ارز جعلی با یادگیری ماشین دوست داشته باشید. در بخش نظرات زیر سوالات ارزشمند خود را بپرسید.

استراتژی برای تحلیل فاندمنتال...
ما را در سایت استراتژی برای تحلیل فاندمنتال دنبال می کنید

برچسب : نویسنده : سعید شیخ‌زاده بازدید : <-PostHit-> تاريخ : سه شنبه 24 مرداد 1402 ساعت: 8:39