در این مطلب، ویدئو 5.3 برنامه نویسی شی گرا و کلاس های پایتون (L05: یادگیری ماشینی با Scikit-Learn) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:21:48
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:02,429 –> 00:00:05,039
ناشناخته: قبل از اینکه در سخنرانی بعدی در مورد
یادگیری ماشین با یادگیری scikit صحبت کنیم
2
00:00:05,039 –> 00:00:08,759
، اجازه دهید به
طور خلاصه در مورد
3
00:00:08,759 –> 00:00:13,199
برنامه نویسی شی گرا صحبت کنیم. یعنی
کلاس های پایتون. و
4
00:00:13,259 –> 00:00:16,349
وقتی در مورد یادگیری روانی صحبت می کنیم خیلی زود این موضوع بسیار مرتبط می شود
،
5
00:00:16,529 –> 00:00:19,469
زیرا می گوییم به شدت
بر اساس
6
00:00:19,469 –> 00:00:23,219
مفاهیم برنامه نویسی شی گرا می آموزد. و در
پایان این ویدئو،
7
00:00:23,219 –> 00:00:27,209
پیادهسازی K
نزدیکترین همسایهها را با استفاده از
8
00:00:27,209 –> 00:00:31,469
API یادگیری روانی به شما نشان میدهم که
اساساً رویکردی است که من میتوانم
9
00:00:31,469 –> 00:00:35,249
استفاده از آنها را برای پیادهسازی برآوردگرهایی
مانند طبقهبندیکنندهها بیاموزم.
10
00:00:37,620 –> 00:00:41,460
بنابراین، بله، اکنون می خواهیم در
مورد کلاس های پایتون صحبت کنیم. بنابراین
11
00:00:41,460 –> 00:00:43,890
، همانطور که قبلاً گفتم، برای درک بهتر از Sikit Learn API،
12
00:00:43,890 –> 00:00:48,150
و امیدواریم
13
00:00:48,150 –> 00:00:50,910
وقتی در ویدیوی بعدی از یادگیری scikit استفاده میکنیم، همه چیز را آسانتر درک کنیم
14
00:00:50,910 –> 00:00:51,540
.
15
00:00:54,780 –> 00:00:59,700
بنابراین در اینجا، من یک
کلاس وسایل نقلیه ساده و ساده ایجاد کردم. بنابراین
16
00:00:59,700 –> 00:01:03,660
وسیله نقلیه می تواند یک ماشین،
موتور سیکلت
17
00:01:05,370 –> 00:01:12,330
یا کامیون و غیره باشد. بنابراین
فقط آن را به عنوان
18
00:01:12,360 –> 00:01:16,170
یک نوع وسیله نقلیه در اینجا تجسم کنید. بنابراین
ما یک کلاس خودرو داریم. و نحوه
19
00:01:16,170 –> 00:01:20,760
کار کلاس ها به این صورت است که
ما تعریف کلاس را در اینجا در
20
00:01:20,760 –> 00:01:23,970
این خط دریافت می کنیم، و سپس با تورفتگی، متدهای
کلاس مختلف را داریم
21
00:01:23,970 –> 00:01:24,750
.
22
00:01:26,640 –> 00:01:30,810
متدهای کلاس بسیار
شبیه توابع هستند. با این حال، توجه داشته باشید
23
00:01:30,810 –> 00:01:34,950
که اولین آرگومان برای هر
متد کلاس، خود اجباری
24
00:01:34,950 –> 00:01:39,360
در اینجا است. بنابراین مفهومی
مانند روش های استاتیک نیز وجود دارد، با این حال، ما
25
00:01:39,360 –> 00:01:43,590
در اینجا فقط در مورد روش های معمولی صحبت می
کنیم. بنابراین هر
26
00:01:43,590 –> 00:01:49,080
روشی باید در اینجا یک خود به عنوان
اولین استدلال داشته باشد. و من در
27
00:01:49,080 –> 00:01:52,590
اینجا به خود شی اطلاق می
شود. بنابراین می توانید یک
28
00:01:52,590 –> 00:01:53,430
کلاس را
29
00:01:54,480 –> 00:01:57,060
به عنوان یک برش کوکی در نظر
30
00:01:59,100 –> 00:02:03,480
بگیرید که می توانید از آن برای تهیه یا
برش کوکی ها استفاده کنید. اگر
31
00:02:03,480 –> 00:02:07,590
فرض کنید این بشقاب خمیر را
دارید و کاتر کوکی ستاره دار
32
00:02:07,590 –> 00:02:11,730
دارید، می توانید این
کاتر شیرینی را
33
00:02:11,760 –> 00:02:15,600
در جاهای مختلف این خمیر و این
بشقاب خمیر قرار دهید. و سپس می
34
00:02:15,870 –> 00:02:21,120
توانید این کوکی های مختلف را از
آنجا دریافت کنید. بنابراین میتوانید، این
35
00:02:21,180 –> 00:02:23,250
کوکیهای واقعاً خوبی نیستند، اما میتوانید
36
00:02:24,360 –> 00:02:28,290
چندین کوکی دریافت کنید. بنابراین
خود کاتر کوکی،
37
00:02:28,290 –> 00:02:32,460
کلاسی است که میتوانید از آن
برای ساختن این اشیاء مختلف به عنوان الگو استفاده
38
00:02:32,460 –> 00:02:38,040
کنید. بنابراین
کوکیهای اینجا اساساً اشیاء خواهند بود
39
00:02:38,040 –> 00:02:43,470
. بنابراین اشیاء ایجاد شده
از این کلاس، یا گاهی اوقات
40
00:02:43,470 –> 00:02:47,400
من می گویم، نمونه هایی از کلاس
و موارد مشابه. بنابراین من
41
00:02:47,400 –> 00:02:50,430
اینجا هستم، کلاس، شما می
توانید آن را به عنوان الگویی برای ساخت
42
00:02:50,430 –> 00:02:54,360
اشیاء وسیله نقلیه در نظر بگیرید. با این حال،
بیایید اینجا جلوتر از خودمان نرویم
43
00:02:54,600 –> 00:02:58,500
و ببینیم چگونه، چه چیزهایی در اینجا
در این کلاس خودرو داریم.
44
00:03:00,180 –> 00:03:05,370
بنابراین اولین روش در اینجا
روش init است. و متد init
45
00:03:05,370 –> 00:03:08,130
به اصطلاح سازنده است
46
00:03:16,170 –> 00:03:20,160
که اساساً
زمانی که یک شی جدید ایجاد می کنیم اجرا می شود. بنابراین
47
00:03:20,460 –> 00:03:24,120
اگر ما یک تکلیف داشته باشیم، برای
مثال، در خودروی جدید
48
00:03:25,140 –> 00:03:25,860
49
00:03:27,750 –> 00:03:29,760
برابر است که یک کلاس خودرو است.
50
00:03:31,380 –> 00:03:36,330
بنابراین اگر کلاس را برای ساخت
یک شیء وسیله نقلیه جدید فراخوانی کنیم، اگر این کار را انجام
51
00:03:36,330 –> 00:03:40,710
دهیم، متد init اجرا می شود
. لازم نیست
52
00:03:40,710 –> 00:03:43,740
صراحتاً مثلاً
وسیله نقلیه تماس بگیریم.
53
00:03:45,870 –> 00:03:51,990
کلاس نقطه زیر خط زیر خط
در آن، این ضروری نیست، زمانی
54
00:03:51,990 –> 00:03:55,680
که یک شی جدید را مقداردهی اولیه کنیم به طور خودکار اجرا می شود.
55
00:03:57,270 –> 00:04:00,480
پس ما اینجا در این
متد init چه داریم، بنابراین این
56
00:04:00,480 –> 00:04:05,910
روش init، قبول می کند، یک آرگومان را می پذیرد
، اسب بخاری
57
00:04:06,420 –> 00:04:09,120
که اسب بخار وسیله نقلیه است
در اینجا که باید تعریف کنیم
58
00:04:09,120 –> 00:04:11,700
زیرا در اینجا
مقدار پیش فرض نداریم، باید
59
00:04:11,700 –> 00:04:16,290
آن را تعریف کند. و سپس یک
ویژگی در اینجا وجود دارد. پس صفت
60
00:04:16,950 –> 00:04:21,120
اسب بخار است. بنابراین ما
اساساً آرگومان
61
00:04:21,209 –> 00:04:24,810
ارائه شده به این متد را به یک
ویژگی نسبت می دهیم بنابراین این یک
62
00:04:25,890 –> 00:04:31,080
ویژگی است. بنابراین اگر یک
شی ایجاد کنیم، اگر این
63
00:04:31,080 –> 00:04:31,830
وسیله نقلیه جدید را در اینجا ایجاد کنیم
64
00:04:33,870 –> 00:04:34,860
، وسیله نقلیه
65
00:04:36,570 –> 00:04:39,930
جدید یک ویژگی نقطهای
اسب بخار خواهد داشت که ما میتوانیم
66
00:04:42,660 –> 00:04:46,440
برای جستجوی اسب بخار به آن دسترسی داشته باشیم
. بنابراین در اینجا وقتی
67
00:04:46,440 –> 00:04:50,010
این را ایجاد می کنیم، باید یک
عدد مثلاً 123 وجود داشته باشد،
68
00:04:50,700 –> 00:04:53,850
چیزی شبیه به آن. و سپس اگر
به این ویژگی دسترسی داشته باشیم،
69
00:04:53,850 –> 00:04:59,040
123 را برمی گرداند، این فقط
راهی برای پیوست کردن یک مقدار یا یک
70
00:04:59,040 –> 00:05:00,000
متغیر است. فقط به
71
00:05:00,000 –> 00:05:03,930
این شی. بنابراین در self
به این معنی است که خود شی ایجاد شده
72
00:05:03,930 –> 00:05:07,560
از این کلاس یا self
به هر
73
00:05:07,560 –> 00:05:09,630
نامی که شیء باشد ترجمه می شود زمانی که ما
ایجاد می کنیم.
74
00:05:11,280 –> 00:05:14,670
و از آنجایی که
فضای ما در اینجا تمام می شود، اجازه دهید یک
75
00:05:14,670 –> 00:05:18,330
اسلاید را جلو ببرم. بنابراین میتوانم در مورد این
موضوع با جزئیات بیشتری صحبت
76
00:05:18,330 –> 00:05:20,910
کنم، جایی که فضای بیشتری
برای حاشیهنویسی داشتهام.
77
00:05:24,030 –> 00:05:28,320
بنابراین در اینجا دوباره، برای مرجع،
می خواهم اسلاید آخر را بزنم
78
00:05:28,320 –> 00:05:31,620
. بنابراین ما می توانیم
دوباره به این نگاه کنیم. و حالا قدم به
79
00:05:31,620 –> 00:05:35,040
قدم در اینجا، در سمت
راست، کد
80
00:05:35,040 –> 00:05:39,510
نمونه سازی وجود دارد. یک شی جدید که
از کلاس خودرو استفاده می کند، بنابراین
81
00:05:39,510 –> 00:05:44,490
کلاس وسیله نقلیه برش کوکی ما بود
. و این
82
00:05:44,490 –> 00:05:48,480
کوکی واقعی ما است که با استفاده از برش کوکی ایجاد می کنیم
. بنابراین در اینجا، ما
83
00:05:48,480 –> 00:05:51,030
آن شی را call one می نامیم، این فقط
یک نام دلخواه است.
84
00:05:52,170 –> 00:05:56,040
و ورودی را
در متد init ارائه کردیم. بنابراین
85
00:05:56,040 –> 00:06:00,990
اگر ایجاد کنیم یا کلاس
را برای ایجاد یک شی جدید در اینجا فراخوانی کنیم،
86
00:06:00,990 –> 00:06:05,580
به طور خودکار
آنچه را در آنچه در متد init وجود دارد اجرا می کند
87
00:06:05,580 –> 00:06:10,980
. بنابراین در سازنده،
پس پس از ایجاد شی،
88
00:06:11,010 –> 00:06:14,850
این یکی در دسترس خواهد بود،
که در اینجا اجرا شد. بنابراین
89
00:06:16,380 –> 00:06:17,310
ایجاد این
90
00:06:18,510 –> 00:06:19,080
فراخوانی
91
00:06:20,130 –> 00:06:21,090
92
00:06:22,980 –> 00:06:25,530
متد init، که آن را متد سازنده نیز می نامیم
.
93
00:06:28,440 –> 00:06:31,950
و سپس می توانیم فقط از
روش های دیگری بر روی آبجکت ماشین استفاده کنیم که
94
00:06:31,950 –> 00:06:33,330
در اسلاید بعدی به شما نشان خواهم داد
.
95
00:06:38,040 –> 00:06:41,700
بنابراین در اینجا، من اکنون روش
اسب بخار را به گشتاور می نامم،
96
00:06:41,700 –> 00:06:45,450
که در
ویکی پدیا جستجو کردم، این فقط یک روش
97
00:06:45,480 –> 00:06:48,750
است که برای تبدیل بین اسب بخار پیاده سازی شده است
، این
98
00:06:48,750 –> 00:06:51,600
اندازه گیری همه است فرض کنید،
شما ماشین های سریعی نیستید اما قدرتمند هستید
99
00:06:51,600 –> 00:06:56,670
. و تبدیل آن به
گشتاور، بنابراین مقداری محاسبه را
100
00:06:56,670 –> 00:07:02,010
در اینجا انجام دهید، و مقدار گشتاور را برمی گرداند
، بنابراین
101
00:07:03,510 –> 00:07:06,720
اسب بخار را به
گشتاور تبدیل می کند، بنابراین
102
00:07:06,720 –> 00:07:09,720
باید دور در دقیقه را روی آن ارائه دهیم. بنابراین
این چیزی است که ما باید
103
00:07:09,720 –> 00:07:12,720
ارائه دهیم. اما در داخل که
از رنگ دیگری در اینجا استفاده می کنیم، در
104
00:07:13,080 –> 00:07:17,550
داخل از
اسب بخاری که در اینجا تعریف کردیم استفاده می کند.
105
00:07:17,910 –> 00:07:22,530
بنابراین ریموت ماشین دارای
ویژگی اسب بخار است. بنابراین این
106
00:07:22,530 –> 00:07:22,890
یک
107
00:07:24,240 –> 00:07:29,310
ویژگی است، اسب بخار
، یک ویژگی دارد که در
108
00:07:29,340 –> 00:07:33,000
اینجا وقتی
بیمارستان را به گشتاور فرا میخوانیم، به صورت داخلی استفاده میشود، و
109
00:07:33,000 –> 00:07:38,070
سپس از این یکی استفاده میکند. بنابراین
RPM در اینجا همراه با
110
00:07:38,070 –> 00:07:42,570
استدلال اسب بخار، یا
صفت متأسفانه برای محاسبه بحث.
111
00:07:44,460 –> 00:07:49,950
اکنون میتوانیم متدی را نیز تعریف کنیم
که ویژگیها را تغییر میدهد. برای
112
00:07:49,950 –> 00:07:55,050
مثال در تماس بعدی اینجا روش
موتور تیونینگ را می گویم
113
00:07:55,050 –> 00:08:00,240
که موتور را کوک می کند
بنابراین ماشین بعد از تیونینگ
114
00:08:00,240 –> 00:08:03,300
دو برابر بیمارستان دارد. شگفت انگیز است،
درست است؟ اگه کار کنه عالی میشه
115
00:08:03,300 –> 00:08:07,140
به هر حال در زندگی واقعی به همین
سادگی. بله، حالا ماشین ما
116
00:08:07,140 –> 00:08:12,330
دو برابر اسب بخار قدرت دارد. بنابراین
باید به جای 123، اگر
117
00:08:12,330 –> 00:08:17,460
بیمارستان را بعد از
دو موتور چاپ می کردید، 246 را می دیدید.
118
00:08:18,360 –> 00:08:23,430
حالا برای بیمارستان. و
الان دوباره با بیمارستان تماس میگیرم تا روش صحبت کنم
119
00:08:23,610 –> 00:08:28,770
. بنابراین اکنون می توانید ببینید
، با قبل متفاوت است،
120
00:08:29,040 –> 00:08:34,440
زیرا قبل از اینکه ماشین ما
اینجا 123 خریده بود، و ما
121
00:08:34,440 –> 00:08:39,840
موتور را تنظیم کردیم، بنابراین اکنون 246 شده است. بنابراین
به نوعی گشتاور دو برابر شده است
122
00:08:40,860 –> 00:08:41,460
.
123
00:08:43,049 –> 00:08:45,420
بنابراین در این اسلاید، من فقط می خواستم
به نوعی
124
00:08:46,560 –> 00:08:51,210
مفاهیم پشت
ویژگی ها و متدهای کلاس را مرور کنم. بنابراین
125
00:08:51,210 –> 00:08:57,690
روش هایی وجود دارد که
مقادیر را برمی گرداند. و برخی از متدها
126
00:08:57,720 –> 00:09:02,250
، مقادیری را بر نمیگردانند، اما
شی را تغییر میدهند،
127
00:09:02,250 –> 00:09:05,430
بنابراین مهم است که به خاطر داشته باشید
که روشهای ابری که
128
00:09:05,430 –> 00:09:08,400
مقادیری را برمیگردانند که شی را تغییر نمیدهند
، و برخی نیز شی را تغییر میدهند
129
00:09:08,400 –> 00:09:11,640
. و در واقع، ما
واقعاً میتوانیم به عنوان یک کاربر، واقعاً
130
00:09:11,640 –> 00:09:16,170
بدانیم که چه خبر است. منظورم
این است که معمولا این از دید کاربر پنهان است
131
00:09:16,170 –> 00:09:18,900
. و ما بهعنوان
توسعهدهنده کد، یا شخصی که
132
00:09:18,900 –> 00:09:21,930
کد را مینویسد، مطمئناً میتوانیم آن
را ببینیم، اما معمولاً
133
00:09:22,020 –> 00:09:25,830
تعداد کمی از کاربران از چیزی مانند کتابخانه یا کد
شخص یا شخص دیگری
134
00:09:25,830 –> 00:09:28,920
استفاده میکنند، شما فقط
این قسمت را در سمت راست میبینید. . و
135
00:09:28,920 –> 00:09:32,550
از اینجا با نگاه کردن به آن
فقط می توانید ببینید که آیا این
136
00:09:32,550 –> 00:09:36,150
شی را تغییر می دهد یا خیر. بنابراین،
به نوعی، تنها راه
137
00:09:36,150 –> 00:09:38,640
تشخیص، فرض کنید، نگاه کردن به
کد منبع یا
138
00:09:38,640 –> 00:09:41,940
مستندات است. با این حال، در
scikit، یاد بگیرید که
139
00:09:41,940 –> 00:09:47,670
قراردادهای خاصی برای روش های خاصی وجود دارد
که شی را تغییر می دهند.
140
00:09:47,670 –> 00:09:49,800
و همچنین کمی بعد در مورد این موضوع صحبت خواهیم کرد
.
141
00:09:52,350 –> 00:09:55,470
اما در حال حاضر، اوم، دو
روش دیگر وجود دارد که می خواستم به
142
00:09:55,470 –> 00:09:59,610
طور خلاصه در مورد آنها صحبت کنم. بنابراین
روش خصوصی وجود دارد.
143
00:10:00,329 –> 00:10:02,519
بنابراین در پایتون، یک کنوانسیون وجود دارد
.
144
00:10:04,140 –> 00:10:07,710
بله، پایتون، افراد
جامعه پایتون می گویند، یا
145
00:10:07,830 –> 00:10:11,310
به قول معروف، این است که ما
اینجا همه بزرگسال هستیم.
146
00:10:13,530 –> 00:10:14,460
بنابراین ما
147
00:10:16,859 –> 00:10:20,999
دسترسی به
هیچ چیزی را در پایتون محدود نمی کنیم. بنابراین شما می توانید
148
00:10:20,999 –> 00:10:24,329
هر کاری که می خواهید انجام دهید. در پایتون،
شما میتوانید به
149
00:10:24,329 –> 00:10:27,059
همه چیز دسترسی داشته باشید، همه چیزهایی که در
کتابخانه پایتون وارد میکنید
150
00:10:27,449 –> 00:10:32,159
، اما مسئولیت آن بر عهده خودتان است
. بنابراین، اگر روشهایی وجود دارد
151
00:10:32,159 –> 00:10:35,369
که کاربران نباید
از آنها استفاده کنند، اما اگر بخواهند،
152
00:10:35,369 –> 00:10:38,039
میتوانند از آنها استفاده کنند، پس یک
قرارداد برای اضافه
153
00:10:39,060 –> 00:10:42,330
کردن خط زیر وجود دارد. بنابراین
این یک قرارداد است که می گوید، هی،
154
00:10:42,600 –> 00:10:46,950
این روش خصوصی است.
از اون روش استفاده نکن برای
155
00:10:46,980 –> 00:10:50,070
توسعه دهندگان مفید است، اما برای شما،
کاربر نه، اما می دانید، اگر
156
00:10:50,070 –> 00:10:53,100
واقعاً می خواهید که او آن را داشته باشد، ادامه دهید
و از آن استفاده کنید، این فقط
157
00:10:53,100 –> 00:10:55,830
مسئولیت شماست. اگر
مشکلی پیش آمد،
158
00:10:55,830 –> 00:10:59,160
قصد ما این نیست که شما از آن استفاده کنید. اما
لطفاً اگر دوست دارید ادامه دهید. پس
159
00:10:59,160 –> 00:11:02,520
این همان چیزی است که خط زیر
نشان می دهد، خط زیر، در
160
00:11:02,520 –> 00:11:06,210
جلو. و بله، شما فقط می توانید
متدها را فراخوانی کنید، مانند یک
161
00:11:06,210 –> 00:11:09,180
روش معمولی، حتی اگر آنها
در جلو خط خطی داشته باشند، دقیقاً
162
00:11:09,180 –> 00:11: