مثال کے ساتھ ابتدائیہ کے لئے مشین میں مشین سیکھنا



R کے ساتھ مشین لرننگ پر یہ بلاگ آپ کو مشین لرننگ کے بنیادی تصورات کو سیکھنے اور R کے ساتھ مختلف مشین لرننگ الگورتھم کو نافذ کرنے میں مدد کرتا ہے۔

R کے ساتھ مشین لرننگ

مشین لرننگ موجودہ اور مستقبل ہے! نیٹ فلکس کے تجویز کردہ انجن سے لے کر گوگل کی سیلف ڈرائیونگ کار تک ، یہ ساری مشین سیکھنا ہے۔ مشین لرننگ کے ساتھ یہ بلاگ آپ کو مشین لرننگ کے بنیادی تصورات کو سمجھنے میں مدد کرتا ہے جس کے بعد مختلف مشین لرننگ الگورتھم ہوتے ہیں اور ان مشین لرننگ الگورتھم کو R کے ساتھ نافذ کرتے ہیں۔

'مشین لرننگ آر کے ساتھ' پر اس بلاگ میں یہ حصے شامل ہیں:





R کے ساتھ مشین لرننگ | ایڈوریکا

c ++ الگورتھم کی ترتیب

مشین لرننگ کو سمجھنا

فش 1 - مشین لرننگ آر کے ساتھ - ایڈیورکا



آپ کیسے جانتے ہو کہ یہ سب مچھلی ہیں؟



بچپن میں ، آپ کو کسی مچھلی کی تصویر نظر آتی ہو گی اور آپ کو اپنے کنڈرگارٹن اساتذہ یا والدین نے بتایا ہوگا کہ یہ ایک مچھلی ہے اور اس کے ساتھ کچھ خاص خصوصیات جڑی ہوئی ہیں جیسے اس میں پنکھ ، گلیں ، جوڑا ہے آنکھیں ، ایک دم اور اسی طرح اب ، جب بھی آپ کا دماغ کسی خصوصیت کی سیٹ کے ساتھ کسی شبیہہ پر آتا ہے تو ، یہ خود بخود اسے مچھلی کی طرح رجسٹر کرتا ہے کیونکہ آپ کے دماغ میں ہوتا ہے سیکھا کہ یہ ایک مچھلی ہے۔

ہمارا دماغ اسی طرح کام کرتا ہے لیکن مشین کا کیا ہے؟ اگر ایک ہی تصویر کو کسی مشین کو کھلایا گیا ہے تو ، مشین اسے مچھلی ہونے کی شناخت کیسے کرے گی؟

یہ وہ جگہ ہے جہاں ایم اچین سیکھنا آتا ہے۔ ہم مچھلی کی تصاویر کو کمپیوٹر میں ٹیگ “فش” کے ساتھ کمپیوٹر پر پلاتے رہیں گے مشین اس سے وابستہ تمام خصوصیات کو سیکھتی ہے کے ساتھ مچھلی

ایک بار جب مشین کسی مچھلی سے وابستہ تمام خصوصیات کو سیکھ لے گی ، تو ہم اسے نیا ڈیٹا کھلا دیں گے کہ اس بات کا تعین کریں کہ اس نے کتنا سیکھا ہے۔

دوسرے الفاظ میں، خام ڈیٹا / ٹریننگ ڈیٹا مشین کو دیا جاتا ہے ، تاکہ یہ سیکھتا ہے کے ساتھ وابستہ تمام خصوصیات تربیت کا ڈیٹا۔ ایک بار ، سیکھنے کے بعد ، یہ دیا جاتا ہے نیا ڈیٹا / ٹیسٹ ڈیٹا اس بات کا تعین کرنے کے لئے کہ مشین کتنی اچھی طرح سے سیکھ چکی ہے۔

آئیے اس بلاگ کے ساتھ مشینی لرننگ میں R بلاگ کے ساتھ آگے بڑھیں اور مشین لرننگ کی اقسام کے بارے میں جانیں۔

مشین لرننگ کی اقسام

  • زیر نگرانی سیکھنا:

زیر نگرانی لرننگ الگورتھم معروف ڈیٹا سیٹ (ٹریننگ ڈیٹا) سے سیکھتا ہے جس میں پیش گوئیاں کرنے کے لیبل ہوتے ہیں۔

رجعت پسندی اور درجہ بندی نگرانی سیکھنے کی کچھ مثالیں ہیں۔

# درجہ بندی:

درجہ بندی سے یہ طے ہوتا ہے کہ کون سے زمرے کے کس سیٹ سے نیا مشاہدہ ہوتا ہے یعنی ایک درجہ بندی الگورتھم تربیت کے اعداد و شمار کی تمام خصوصیات اور لیبل سیکھتا ہے اور جب اس کو نیا ڈیٹا دیا جاتا ہے تو اس کو اس بات پر منحصر ہوتا ہے کہ اس نے جو کچھ سیکھا ہے اس پر انحصار کرتے ہوئے اسے نئے مشاہدات پر لیبل تفویض کرنا پڑتا ہے۔ تربیت کے اعداد و شمار سے.

اس مثال کے طور پر ، اگر پہلے مشاہدے کو 'آدمی' کا لیبل دیا گیا ہے تو پھر اس کی صحیح درجہ بندی کی گئی ہے لیکن اگر اسے 'عورت' کا لیبل دیا گیا ہے تو ، درجہ بندی غلط ہے۔ اسی طرح دوسرے مشاہدے کے ل given ، اگر دیا ہوا لیبل 'عورت' ہے تو ، اس کی صحیح درجہ بندی کی گئی ہے ، ورنہ درجہ بندی غلط ہے۔

# ردعمل:

رجعت ایک زیر نگرانی سیکھنے والا الگورتھم ہے جو یہ طے کرنے میں مدد کرتا ہے کہ ایک متغیر دوسرے متغیر کو کس طرح متاثر کرتا ہے۔

یہاں ، 'لیونگ_اریہ' آزاد متغیر ہے اور 'قیمت' انحصار متغیر ہے یعنی ہم یہ طے کر رہے ہیں کہ 'live_area' کے سلسلے میں 'قیمت' کیسے مختلف ہوتی ہے۔

  • غیر سروے شدہ سیکھنا:

غیر سروے شدہ سیکھنے کا الگورتھم ڈیٹا سے ایجریٹس کھینچتا ہے جس میں لیبل نہیں ہوتے ہیں۔

کلسٹرنگ غیرسرواج سیکھنے کی ایک مثال ہے۔ 'کے ذرائع' ، 'درجہ بندی' ، 'فجی سی مطلب' کلسٹرنگ الگورتھم کی کچھ مثالیں ہیں۔

اس مثال میں ، مشاہدات کا مجموعہ دو گروپوں میں تقسیم کیا گیا ہے۔ کلسٹرنگ مشاہدات کے مابین مماثلت کی بنیاد پر کی جاتی ہے۔ ایک اعلی انٹرا کلسٹر مماثلت اور کم انٹر کلسٹر مماثلت ہے یعنی تمام بسوں کے مابین بہت زیادہ مماثلت ہے لیکن بسوں اور کاروں میں کم مماثلت ہے۔

  • کمک سیکھنا:

کمک سیکھنا مشین سیکھنے الگورتھم کی ایک قسم ہے جہاں مشین / ایجنٹ میں ایک ماحول اپنی کارکردگی کو زیادہ سے زیادہ کرنے کے لئے مثالی طرز عمل سیکھتا ہے۔ ایجنٹ کو اپنا سلوک سیکھنے کے ل Simple سادہ انعام کی آراء کی ضرورت ہوتی ہے ، یہ اس کے نام سے جانا جاتا ہے کمک سگنل .

چلیں پیس مین مثال کے طور پر. جب تک پیس مین کھانا کھاتا رہتا ہے ، اس سے پوائنٹس حاصل ہوتے ہیں لیکن جب یہ کسی عفریت کے خلاف گرتا ہے تو اپنی جان سے محروم ہوجاتا ہے۔ اس طرح پیس مین سیکھتا ہے کہ اسے زیادہ سے زیادہ کھانا کھانے اور راکشسوں سے بچنے کی ضرورت ہےتاکہ اس کی کارکردگی کو بہتر بنایا جاسکے۔

R کے ساتھ مشین لرننگ کو نافذ کرنا:

لکیری رجعت:

لکیری رجعت الگورتھم کو لاگو کرنے کے لئے ہم ہیروں کے ڈیٹا سیٹ کے ساتھ مل کر کام کریں گے:

ڈیٹا سیٹ کی تفصیل:

اعداد و شمار پر کوئی ماڈل بنانے سے پہلے ، ہم اعداد و شمار کو 'ٹرین' اور 'ٹیسٹ' کے سیٹوں میں تقسیم کرنا چاہتے ہیں۔ ماڈل 'ٹرین' سیٹ پر بنایا جائے گا اور اس کی درستگی کی جانچ 'ٹیسٹ' سیٹ پر کی جائے گی۔

ہمیں ڈیٹا کو دو سیٹوں میں تقسیم کرنے کے لئے 'caTools' پیکیج کو لوڈ کرنے کی ضرورت ہے۔

لائبریری (caTools)

'caTools' پیکیج ایک فنکشن 'نمونہ.اسپلٹ ()' فراہم کرتا ہے جو ڈیٹا کو تقسیم کرنے میں مدد کرتا ہے۔

نمونہ. سپلٹ (ہیرے $ قیمت ، اسپلٹ تناسب = 0.65) -> split_index

پرائس کالم کے مشاہدات میں سے 65٪ کو 'سچ' کا لیبل تفویض کیا گیا ہے اور باقی 35٪ کو 'غلط' لیبل تفویض کیا گیا ہے۔

سبسیٹ (ہیرا ، split_index == T) -> ٹرین سبسیٹ (ہیرے ، split_index == F) -> ٹیسٹ

وہ تمام مشاہدات جن میں 'سچ' کا لیبل موجود ہے وہ ' ٹرین 'اعتراض اور ان مشاہدات کو 'غلط' لیبل لگانے کو 'ٹیسٹ' سیٹ پر تفویض کیا گیا ہے۔

اب جب تقسیم الگ ہوچکی ہے اور ہمارے پاس اپنی 'ٹرین' اور 'ٹیسٹ' سیٹ ہیں ، اب وقت آگیا ہے کہ ٹریننگ سیٹ پر لکیری ریگریشن ماڈل بنائیں۔

جاوا سوئنگ کا استعمال کیسے کریں

ہم 'ٹرین' کے اعداد و شمار پر لکیری رجعت ماڈل بنانے کیلئے 'ایل ایم ()' فنکشن استعمال کریں گے۔ ہم طے کر رہے ہیں قیمت ڈیٹا سیٹ کے دیگر تمام متغیرات کے سلسلے میں ہیروں کا۔ بنایا ہوا ماڈل آبجیکٹ 'mod_regress' میں محفوظ ہے۔

lm (قیمت ~. ، ڈیٹا = ٹرین) -> mod_regress

اب ، جب ہم نے ماڈل تیار کیا ہے ، ہمیں 'ٹیسٹ' سیٹ پر پیش گوئیاں کرنے کی ضرورت ہے۔ پیشن گوئیاں حاصل کرنے کے لئے “پیشن گوئی ()” فنکشن استعمال ہوتا ہے۔ یہ دو دلائل لیتا ہے: the بلٹ ماڈل اور ٹیسٹ سیٹ پیش گوئی کردہ نتائج 'رزلٹ_گریس' آبجیکٹ میں محفوظ ہیں۔

پیشن گوئی (Mod_regress، ٹیسٹ) -> نتیجہ_گریس

آئیے ، 'ٹیسٹ' ڈیٹا سیٹ اور پیش گوئی شدہ قدروں سے اصل قیمتوں کو 'cbind ()' فنکشن کا استعمال کرتے ہوئے ایک ہی ڈیٹا سیٹ میں باندھتے ہیں۔ نیا ڈیٹا فریم 'فائنل_ڈیٹا' میں محفوظ ہے

سی بائنڈ (اصل = ٹیسٹ $ قیمت ، پیشن گوئی = نتیجہ_گریریس) -> حتمی_ڈیٹا 
as.data.frame (Final_Data) -> Final_Data

'حتمی_ڈیٹا' پر ایک نظر جس میں اصل اقدار اور پیش گوئ اقدار پر مشتمل ہے:

آئیے پیش گوئی شدہ اقدار کو اصل اقدار سے گھٹاتے ہوئے غلطی کو تلاش کریں اور اس غلطی کو 'حتمی_ڈیٹا' میں نئے کالم کے بطور شامل کریں:

(حتمی_ڈیٹا $ اصل۔ حتمی_ڈیٹا $ پیش گوئی) -> خرابی
سی بائنڈ (فائنل_ ڈیٹا ، خرابی) -> فائنل_ڈیٹا

'فائنل_ڈیٹا' پر ایک نظر جو پیش گوئی میں غلطی پر مشتمل ہے:

اب ، ہم آگے بڑھیں گے اور حساب کتاب کریں گے “ روٹ میین اسکوائر کی خرابی ' جو تمام پیش گوئوں کے لئے ایک مجموعی غلطی پیش کرتا ہے

rmse1<-sqrt(mean(Final_Data$error^2)) 
rmse1

آگے بڑھیں ، آئیے ایک اور ماڈل بنائیں ، تاکہ ہم ان دونوں ماڈلز کی درستگی کا موازنہ کرسکیں اور اس بات کا تعین کرسکیں کہ کون سا بہتر ہے۔

ہم 'ٹرین' سیٹ پر ایک نیا لکیری ریگریشن ماڈل بنائیں گے لیکن اس بار ، ہم آزاد متغیر سے 'x' اور 'y' کالم گرارہے ہوں گے یعنی ہیروں کی 'قیمت' ہر ایک کے ذریعہ طے کی گئی ہے۔ 'x' اور 'y' کے علاوہ کالم۔

بنایا ہوا ماڈل 'Mod_regress2' میں محفوظ ہے:

lm (قیمت ~.-y-z ، ڈیٹا = ٹرین) -> mod_regress2

پیش گوئی کردہ نتائج 'نتيجي_regress2' میں محفوظ ہیں

پیشن گوئی (mod_regress2 ، ٹیسٹ) -> نتیجہ_نظیر 2

اصل اور پیش گوئ اقدار کو 'فائنل_ڈیٹا 2' میں جوڑ کر ذخیرہ کیا جاتا ہے۔

سی بائنڈ (اصل = ٹیسٹ $ قیمت ، پیشن گوئی = نتیجہ_ گریریس 2) -> حتمی_ڈیٹا 2 
as.data.frame (Final_Data2) -> Final_Data2

آئیے پیشن گوئی کی غلطی کو بھی 'Final_Data2' میں شامل کریں

(حتمی_ ڈیٹا 2 ual اصل۔ حتمی_ڈیٹا 2 red پیش گوئی) -> غلطی 2
سی بائنڈ (فائنل_ ڈیٹا 2 ، غلطی 2) -> فائنل_ڈیٹا 2

'حتمی_ڈیٹا 2' پر ایک نظر:

مجموعی خرابی حاصل کرنے کے لئے جڑ کا مطلب اسکوائر کی غلطی کا پتہ لگانا:

rmse2<-sqrt(mean(Final_Data2$error^2))

ہم دیکھتے ہیں کہ 'rmse2' 'rmse1' سے معمولی طور پر کم ہے اور اسی وجہ سے دوسرا ماڈل پہلے ماڈل سے معمولی حد تک بہتر ہے۔

جاوا میں لاگ فائلیں کیسے بنائیں

درجہ بندی:

ہم عمل میں لانے کے لئے 'کار_پیرچیس' ڈیٹا سیٹ کے ساتھ کام کر رہے ہیں بار بار تقسیم جو درجہ بندی الگورتھم ہے۔

آئیے ڈیٹا کو 'ٹرین' اور 'ٹیسٹ' سیٹوں میں تقسیم کریں جس میں 'caTools' پیکیج سے 'نمونہ۔ سپلٹ ()' فنکشن استعمال کرتے ہیں۔

لائبریری (caTools)

’خریدے ہوئے‘ کالم سے حاصل کردہ مشاہدات میں سے 65٪ کو 'سچ' لیبل تفویض کیا جائے گا اور باقی کو 'غلط' لیبل تفویض کیے جائیں گے۔

نمونہ. سپلٹ (کار_خریدار خریداری، خریداری ، اسپلٹ تناسب = 0.65) -> تقسیم_قیمتی

وہ تمام مشاہدات جن میں 'سچ' کا لیبل ہے وہ ’ٹرین‘ ڈیٹا میں محفوظ ہوجائے گا اور ان مشاہدات کو 'FALSE' لیبل لگایا جائے گا ، جس کو 'ٹیسٹ' ڈیٹا تفویض کیا جائے گا۔

سبسیٹ (کار_پر خریداری ، سپلٹ_والیو == T) -> ٹرین_ڈیٹا
سبسیٹ (کار_پر خریداری ، سپلٹ_والیوز == F) -> ٹیسٹ_ڈیٹا

بار بار آنے والی تقسیم کا الگورتھم بنانے کا وقت:

ہم شروع کریں گے ‘rpart’ پیکیج کو لوڈ کرکے:

لائبریری (rpart)

'خریداری شدہ' کالم انحصار متغیر ہوگا اور دوسرے تمام کالم آزاد متغیر ہیں یعنی ہم اس بات کا تعین کررہے ہیں کہ اس شخص نے کار خریدی ہے یا نہیں دوسرے تمام کالموں کے لحاظ سے۔ ماڈل 'train_data' پر بنایا گیا ہے اور اس کا نتیجہ 'Mod1' میں محفوظ ہے۔

rpart (خریداری ~. ، ڈیٹا = ٹرین_ڈیٹا) -> Mod1

آئیے اس کا نتیجہ تیار کریں:

پلاٹ (Mod1 ، مارجن = 0.1) متن (Mod1 ، خوبصورت = T ، cex = 0.8)

اب ، آگے چلیں اور 'ٹیسٹ_ڈیٹا' پر نتائج کی پیش گوئی کریں۔ ہم پہلے آرگنٹ کے طور پر بلٹ شدہ آرپارٹ ماڈل “موڈ 1” دے رہے ہیں ، تیسری دلیل کے لئے دوسرے سیٹ اور پیشن گوئی کی قسم کو دوسرے ٹرول کے طور پر ٹیسٹ سیٹ “ٹیسٹ_ڈیٹا” دیا گیا ہے۔ نتیجہ ‘رزلٹ 1’ آبجیکٹ میں اسٹور کیا گیا ہے۔

پیش گوئی کریں (Mod1، test_data، قسم = 'کلاس') -> نتیجہ 1

آئیے کیریٹ پیکیج سے 'کنفیوژن میٹریکس ()' فنکشن کا استعمال کرتے ہوئے ماڈل کی درستگی کا جائزہ لیں۔

لائبریری (کیریٹ) الجھن میٹیرکس (ٹیبل (ٹیسٹ_ڈیٹا cha خریدی گئی ، نتیجہ 1))

کنفیوژن میٹرکس ہمیں بتاتا ہے کہ 90 مشاہدات میں سے جہاں پر شخص نے کار نہیں خریدی ، 79 مشاہدات کو بجا طور پر 'نہیں' کے طور پر درجہ بندی کیا گیا ہے اور 11 کو غلط طور پر 'ہاں' کے طور پر درجہ بند کیا گیا ہے۔ اسی طرح ، ان 50 مشاہدات میں سے جہاں اس شخص نے واقعتا the یہ کار خریدی تھی ، 47 کو بجا طور پر 'ہاں' کے طور پر درجہ بند کیا گیا ہے اور 3 کو 'NO' کے طور پر غلط درجہ بند کیا گیا ہے۔

ہم کل پیش گوئیاں یعنی (+ + +) 47) / (+ + + + 47 + ११ +)) کے ساتھ صحیح پیش گوئوں کو تقسیم کرکے ماڈل کی درستگی کا پتہ لگاسکتے ہیں۔

K- مطلب کلسٹرنگ:

ہم K-means کلسٹرنگ کو نافذ کرنے کے لئے 'آئرس' ڈیٹا سیٹ کے ساتھ کام کریں گے:

آئیے 'پرجاتی' کالم کو ہٹا دیں اور ایک نیا ڈیٹا سیٹ بنائیں جس میں ’آئیرس‘ ڈیٹا سیٹ سے صرف چار کالم شامل ہوں۔

ایرس [1: 4] -> آئیرس_ کے

آئیے ہم کلسٹروں کی تعداد 3 بنائیں۔ “کامین ()” فنکشن ان پٹ ڈیٹا اور کلسٹرز کی تعداد لیتا ہے جس میں ڈیٹا کلسٹر کرنا ہے۔ نحو یہ ہے: کمین (ڈیٹا ، کے) جہاں کے کلسٹر مراکز کی تعداد ہے۔

kmeans (iris_k، 3) -> k1

جھرمٹ کا تجزیہ:

str (k1)

str () فنکشن kmeans کی ساخت دیتا ہے جس میں مختلف پیرامیٹرز جیسے انڈرس ، بیونڈس ، وغیرہ شامل ہیں ، تجزیہ کیا جاتا ہے جس سے آپ kmeans کی کارکردگی کا پتہ لگاسکتے ہیں۔

بیچنس: مربعوں کے مابین یعنی انٹراسکلوسٹر مماثلت

انڈرس: مربع کی مجموعی کے اندر اندر

ٹوٹ وِتھَنَس: تمام کلسٹرز کے تمام انٹورس کا مجموعہ یعنی کل انٹرا کلسٹر مماثلت

ایک اچھ clی کلسٹرنگ کی کم قیمت “ٹوٹ وِتھَنَس” اور “بونڈس” کی اونچی قیمت ہوگی جو ابتدائی طور پر منتخب ہونے والے کلسٹرز ‘کے’ کی تعداد پر منحصر ہے۔

اب وقت آگیا ہے کہ مشین لرننگ کے ماہر بنیں ، تاکہ آپ اپنے نئے مواقع سے فائدہ اٹھائیں۔ اس سے ہمیں اس کا خاتمہ ہوتا ہے “ R کے ساتھ مشین لرننگ ”بلاگ۔ مجھے امید ہے کہ یہ بلاگ معلوماتی نتیجہ خیز تھا۔

ایڈوریکا نے ایک خاص طور پر تیار کیا ہے جو آپ کو مشین لرننگ الگورتھم جیسے کے میانز کلسٹرنگ ، فیصلے کے درخت ، رینڈم فاریسٹ ، بولی میں شامل ہیں میں مہارت حاصل کرنے میں مدد کرتا ہے۔ آپ اعدادوشمار ، ٹائم سیریز ، ٹیکسٹ مائننگ کے تصورات اور ڈیپ لرننگ کا تعارف بھی سیکھیں گے۔ اس کورس کے لئے نئی بیچیاں جلد شروع ہو رہی ہیں !!