در این مطلب، ویدئو پایتون: ماشینهای تقویتکننده قابل توضیح (EBM) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:16:14
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:02,320
بسیار خوب، در این مثال من فقط می خواستم
2
00:00:02,320 –> 00:00:04,160
3
00:00:04,160 –> 00:00:06,160
چند روش یادگیری ماشینی قابل توضیح را
4
00:00:06,160 –> 00:00:09,360
در داخل پایتون معرفی کنم، به
5
00:00:09,360 –> 00:00:11,280
طور خاص به کتابخانه تفسیری نگاه می کنیم
6
00:00:11,280 –> 00:00:13,280
7
00:00:13,280 –> 00:00:18,000
که پیاده سازی هایی برای ابزار دارد
8
00:00:18,000 –> 00:00:22,080
تا سعی کنیم نوعی مدل جعبه سیاه
9
00:00:22,080 –> 00:00:24,000
مانند نیروی تصادفی را توضیح دهیم. یا یک
10
00:00:24,000 –> 00:00:27,199
ماشین بردار پشتیبان یا چیزی یا استفاده از
11
00:00:27,199 –> 00:00:29,199
12
00:00:29,199 –> 00:00:31,439
روشهای یادگیری ماشینی قابل تفسیر قابل توضیح بیشتر،
13
00:00:31,439 –> 00:00:33,040
چیزی که به طور خاص به
14
00:00:33,040 –> 00:00:34,559
آن میپردازیم، استفاده از ماشین تقویتکننده قابل توضیح
15
00:00:34,559 –> 00:00:37,760
یا روش ebm است که اخیراً
16
00:00:37,760 –> 00:00:40,079
توسط مایکروسافت توسعه داده شده است و بر
17
00:00:40,079 –> 00:00:43,360
اساس مدلهای افزودنی تعمیمیافته
18
00:00:43,360 –> 00:00:45,840
و یکپارچه است در این کتابخانه تفسیر
19
00:00:45,840 –> 00:00:47,120
20
00:00:47,120 –> 00:00:49,600
بسیار خوب است، بنابراین
21
00:00:49,600 –> 00:00:51,600
اوم، ما ابتدا میخواهیم دوباره آنچه را که به پانداهای بیحساب نیاز داریم
22
00:00:51,600 –> 00:00:52,960
23
00:00:52,960 –> 00:00:54,800
از کتابخانه تفسیر و به
24
00:00:54,800 –> 00:00:56,719
طور خاص از ماژول جعبه شیشهای
25
00:00:56,719 –> 00:00:58,399
، مدلی را که میخواهیم
26
00:00:58,399 –> 00:01:00,079
با آن کار کنیم، بخوانیم. طبقهبندیکننده تقویتکننده قابل توضیح است
27
00:01:00,079 –> 00:01:01,920
28
00:01:01,920 –> 00:01:03,199
همچنین از تفسیر ما
29
00:01:03,199 –> 00:01:05,119
نشان میدهیم که به ما اجازه میدهد به
30
00:01:05,119 –> 00:01:07,520
برخی از نتایج بینالمللی نگاه کنیم. به طور کلی
31
00:01:07,520 –> 00:01:09,600
و سپس از scikit یاد بگیرید که ما قصد
32
00:01:09,600 –> 00:01:10,880
33
00:01:10,880 –> 00:01:14,720
داریم چند ابزار
34
00:01:14,720 –> 00:01:17,520
برای um برای محاسبه معیارها
35
00:01:17,520 –> 00:01:20,080
و سپس برای تقسیم داده ها
36
00:01:20,080 –> 00:01:22,479
در tran یک مجموعه آموزشی و آزمایشی استفاده کنیم، بنابراین
37
00:01:22,479 –> 00:01:24,880
این تقسیم آزمایشی قطار از
38
00:01:24,880 –> 00:01:27,280
ماژول انتخاب مدل و سپس همه
39
00:01:27,280 –> 00:01:29,600
اینها از ماژول متریک می آیند
40
00:01:29,600 –> 00:01:31,439
و سپس matplotlib
41
00:01:31,439 –> 00:01:33,600
مطمئن شوید که می توانیم آن را در
42
00:01:33,600 –> 00:01:36,079
نوت بوک رسم کنیم و سپس
43
00:01:36,079 –> 00:01:38,320
seaborn را به عنوان کتابخانه دیگری که شما می شناسید برای
44
00:01:38,320 –> 00:01:39,520
ترسیم نقشه
45
00:01:39,520 –> 00:01:41,360
عالی وارد می کنیم، بنابراین ما با این کار خواهیم کرد.
46
00:01:41,360 –> 00:01:44,159
مجموعه داده های نسبتاً معروفی که
47
00:01:44,159 –> 00:01:46,479
به عنوان مجموعه داده تایتانیک شناخته می شود،
48
00:01:46,479 –> 00:01:49,280
پس اگر این در یک فایل csv باشد،
49
00:01:49,280 –> 00:01:50,880
من فقط آن را با پانداها می خوانم و
50
00:01:50,880 –> 00:01:53,280
این یک فریم داده پاندا خواهد بود
51
00:01:53,280 –> 00:01:55,200
و اجازه دهید فقط به داده ها نگاهی بیندازیم.
52
00:01:55,200 –> 00:01:56,000
53
00:01:56,000 –> 00:01:58,000
در اینجا اطلاعات به نظر می رسد، بنابراین ما
54
00:01:58,000 –> 00:02:00,240
اساساً می دانیم که
55
00:02:00,240 –> 00:02:03,280
آیا شخص زنده مانده است یا نه
56
00:02:03,280 –> 00:02:06,719
از کلاسی که در
57
00:02:06,719 –> 00:02:08,878
کشتی بوده
58
00:02:08,878 –> 00:02:10,959
است نام فرد، چه مرد باشد
59
00:02:10,959 –> 00:02:13,680
یا چه زن، سن فرد،
60
00:02:13,680 –> 00:02:16,800
تعداد خواهر و برادرها یا همسران در مورد
61
00:02:16,800 –> 00:02:18,080
اینکه آیا آنها والدین یا
62
00:02:18,080 –> 00:02:19,840
فرزندان خود را در کشتی داشته اند یا نه و سپس چقدر
63
00:02:19,840 –> 00:02:22,239
برای نمایشگاه پرداخت شده است، بنابراین ایده این است که ما
64
00:02:22,239 –> 00:02:23,760
می خواهیم بتوانیم بر اساس برخی موارد پیش بینی کنیم که آیا
65
00:02:23,760 –> 00:02:25,120
فردی
66
00:02:25,120 –> 00:02:28,400
از بوی بد این کشتی تایتانیک جان سالم به در برده است یا خیر.
67
00:02:28,400 –> 00:02:30,400
68
00:02:30,400 –> 00:02:33,599
این ویژگیها
69
00:02:35,280 –> 00:02:38,160
خوب است،
70
00:02:38,160 –> 00:02:39,920
باز هم خیلی خوب است که
71
00:02:39,920 –> 00:02:42,080
دادههای خود را قبل از موعد بررسی کنید، فقط برای
72
00:02:42,080 –> 00:02:44,319
اطمینان از اینکه به روشی که
73
00:02:44,319 –> 00:02:47,599
فکر میکنید هیچ چیز عجیبی در
74
00:02:47,599 –> 00:02:49,200
75
00:02:49,200 –> 00:02:50,800
کار نیست آماده هستید.
76
00:02:50,800 –> 00:02:53,040
ابتدا نوعها
77
00:02:53,040 –> 00:02:56,480
در اینجا باقی مانده خوانده میشوند، بهعنوان یک عدد صحیح،
78
00:02:56,480 –> 00:02:59,120
گسترش کلاس p یک عدد صحیح است،
79
00:02:59,120 –> 00:03:01,360
وقتی میگویم شیء اساساً
80
00:03:01,360 –> 00:03:04,800
به صورت رشتهها یا کاراکترها کار میکند و
81
00:03:04,800 –> 00:03:08,560
سپس سنها um را در آنجا شناور میکنند، بنابراین یک چیز
82
00:03:08,560 –> 00:03:11,519
که در ابتدا کمی مشکل
83
00:03:11,519 –> 00:03:12,720
است که
84
00:03:12,720 –> 00:03:15,680
باقی مانده صفر یا یک است، اما واقعاً ما
85
00:03:15,680 –> 00:03:17,200
نمیخواهیم با آنها مانند صفر
86
00:03:17,200 –> 00:03:18,720
رفتار شود و ما میخواستیم
87
00:03:18,720 –> 00:03:20,239
یک مانند یک دسته باشد،
88
00:03:20,239 –> 00:03:22,400
بنابراین من باید آن را اساساً به یک رشته تبدیل کنم
89
00:03:22,400 –> 00:03:25,440
و سپس کلاسی را که میتوانیم نیز به عنوان آن در نظر بگیریم.
90
00:03:25,440 –> 00:03:27,280
یک دسته y از
91
00:03:27,280 –> 00:03:29,040
جهاتی شبیه یک متغیر ترتیبی است، اما
92
00:03:29,040 –> 00:03:30,840
ما فقط می خواهیم آن را به عنوان یک
93
00:03:30,840 –> 00:03:32,959
دسته در نظر بگیریم، بنابراین این کاری است که من این
94
00:03:32,959 –> 00:03:35,680
بلوک بعدی را در اینجا انجام می دهم، در جای خود
95
00:03:35,680 –> 00:03:39,360
متغیر زنده مانده را به یک رشته و سپس
96
00:03:39,360 –> 00:03:41,599
متغیر کلاس p تبدیل می کنم. در یک رشته قرار دهید و
97
00:03:41,599 –> 00:03:44,560
سپس ببخشید
98
00:03:44,560 –> 00:03:47,519
99
00:03:47,519 –> 00:03:48,560
100
00:03:48,560 –> 00:03:51,040
این نامهای متغیر
101
00:03:51,040 –> 00:03:53,200
طولانی هستند، بنابراین ما دارای همسر و خواهر و برادری هستیم
102
00:03:53,200 –> 00:03:55,280
و والدین
103
00:03:55,280 –> 00:03:58,480
بچهها را روی آنها میبرند.
104
00:03:58,480 –> 00:04:00,000
105
00:04:00,000 –> 00:04:02,239
من فقط
106
00:04:02,239 –> 00:04:05,360
از روش rename uh to در
107
00:04:05,360 –> 00:04:07,360
فرهنگ لغت اینجا استفاده می کنم تا این
108
00:04:07,360 –> 00:04:09,120
نام های طولانی را به چیزی کوتاه تر تغییر دهم.
109
00:04:09,120 –> 00:04:11,760
ام من این کار را در جای خود انجام می دهم و
110
00:04:11,760 –> 00:04:14,799
محور ستون ها درست برخلاف ردیف ها هستند،
111
00:04:14,799 –> 00:04:16,560
بنابراین فقط کمی داده ها را تمیز می کند. حالا
112
00:04:16,560 –> 00:04:19,279
اگر ما um را نوع داده را در اینجا بنامیم،
113
00:04:19,279 –> 00:04:21,600
اکنون می توانید ببینید که اینها به عنوان اشیاء خوانده می
114
00:04:21,600 –> 00:04:23,600
شوند، اساساً آنها
115
00:04:23,600 –> 00:04:26,320
به عنوان دسته تلقی می شوند،
116
00:04:26,320 –> 00:04:28,720
دسته دسته
117
00:04:28,720 –> 00:04:32,639
um جنس نیز um دسته است
118
00:04:32,639 –> 00:04:34,560
و سپس خواهر و برادر حساب است، بنابراین این یک
119
00:04:34,560 –> 00:04:36,160
پرانتز عددی است. حساب این
120
00:04:36,160 –> 00:04:38,880
عدد است و سپس اوم عادل شماره
121
00:04:38,880 –> 00:04:42,479
دو است، بنابراین انواع دادهها اکنون معنا پیدا میکنند
122
00:04:42,479 –> 00:04:44,400
، کاری که من انجام میدهم این است که از این
123
00:04:44,400 –> 00:04:46,240
روش تهی
124
00:04:46,240 –> 00:04:49,600
برای حذف هر یک از رکوردهایی که
125
00:04:49,600 –> 00:04:52,080
دادههای گمشده دارند استفاده میکنم، بنابراین فقط در صورت
126
00:04:52,080 –> 00:04:53,280
وجود دادههای گم شده، ما از این روش استفاده میکنم. نمیخواهم
127
00:04:53,280 –> 00:04:55,120
شامل این باشد که ما فقط میخواهیم از رکوردهای کامل استفاده کنیم،
128
00:04:55,120 –> 00:04:57,680
129
00:04:57,680 –> 00:04:59,520
در واقع متأسفم، این در واقع فقط
130
00:04:59,520 –> 00:05:02,400
آزمایشی است که بابت آن متاسفم، بنابراین اساساً
131
00:05:02,400 –> 00:05:05,440
تعیین میکند که آیا مقادیری
132
00:05:05,440 –> 00:05:07,919
در جدول وجود دارد که null هستند یا خیر و آیا ما نادرست است یا خیر.
133
00:05:07,919 –> 00:05:09,199
به این معنی است که همه
134
00:05:09,199 –> 00:05:10,639
رکوردها کامل هستند، بنابراین ما خوب هستیم، بنابراین
135
00:05:10,639 –> 00:05:12,400
این فقط برای یک داده ناقص آزمایش می
136
00:05:12,400 –> 00:05:13,600
کند
137
00:05:13,600 –> 00:05:15,840
و من همچنین می خواستم بفهمم
138
00:05:15,840 –> 00:05:18,160
که در هر کدام چند رکورد وجود دارد، بنابراین
139
00:05:18,160 –> 00:05:19,680
نسبت
140
00:05:19,680 –> 00:05:22,000
زنده ماندن در مقابل باقی مانده چقدر است. در اینجا من
141
00:05:22,000 –> 00:05:24,000
اساساً آن را بر اساس آن
142
00:05:24,000 –> 00:05:26,000
دسته یا آن متغیر طبقهبندی گروهبندی میکنم
143
00:05:26,000 –> 00:05:28,240
و سپس اندازه را برمیگردانم و
144
00:05:28,240 –> 00:05:30,080
یا اساساً این تعداد است،
145
00:05:30,080 –> 00:05:33,160
بنابراین به نظر میرسد که صفر آنها
146
00:05:33,160 –> 00:05:36,639
545 بوده است.
147
00:05:36,639 –> 00:05:39,759
من
148
00:05:39,759 –> 00:05:42,639
معتقدم که زنده مانده است، بنابراین cl داده
149
00:05:42,639 –> 00:05:44,400
ها کمی نامتعادل هستند، اما وحشتناک نیست،
150
00:05:44,400 –> 00:05:46,080
بنابراین ما
151
00:05:46,080 –> 00:05:49,199
نگران عدم تعادل داده برای این
152
00:05:49,199 –> 00:05:50,080
153
00:05:50,080 –> 00:05:51,280
154
00:05:51,280 –> 00:05:52,960
کار نیستیم، بسیار خوب، بنابراین اکنون کاری که ما می خواهیم انجام دهیم این است
155
00:05:52,960 –> 00:05:56,080
که داده ها را تقسیم کنیم. m
156
00:05:56,080 –> 00:05:58,080
متغیر باقی مانده را که متغیر y ما است بیرون بکشید
157
00:05:58,080 –> 00:05:59,840
و دوباره از آنجایی که به
158
00:05:59,840 –> 00:06:01,520
طور پیش فرض فقط یک ستون وجود دارد، می
159
00:06:01,520 –> 00:06:04,319
خواهد آن را به یک
160
00:06:04,319 –> 00:06:08,080
سری pandas panda تبدیل کند، بنابراین من از روش دو فریم
161
00:06:08,080 –> 00:06:10,240
در اینجا برای تبدیل سری به
162
00:06:10,240 –> 00:06:13,280
قاب داده پاندا استفاده می کنم. و سپس در اینجا
163
00:06:13,280 –> 00:06:14,960
من متغیرهای پیش بینی را می نویسم که می خواهم
164
00:06:14,960 –> 00:06:18,880
در یک قاب داده جدید
165
00:06:18,880 –> 00:06:20,720
استفاده کنم، بنابراین از
166
00:06:20,720 –> 00:06:24,160
کلاس جنسیت، سن و تعداد خواهر و برادر استفاده می کنم و
167
00:06:24,160 –> 00:06:26,639
غیرمنصفانه نیست که من از همه موارد استفاده می کنم
168
00:06:26,639 –> 00:06:30,400
. متغیرها به جز نام مسافران
169
00:06:30,400 –> 00:06:32,560
به طوری که اساساً مجموعه های x و y ما را ایجاد می
170
00:06:32,560 –> 00:06:34,720
کند اکنون
171
00:06:34,720 –> 00:06:37,360
مسئله بعدی این است که ما
172
00:06:37,360 –> 00:06:39,280
مجموعه های آموزشی و آزمایشی جداگانه نداریم و
173
00:06:39,280 –> 00:06:42,000
به طور کلی ایده خوبی است که شما می
174
00:06:42,000 –> 00:06:42,960
175
00:06:42,960 –> 00:06:45,199
دانید یک مجموعه نگهدارنده برای آزمایش مدل دارید
176
00:06:45,199 –> 00:06:46,639
زیرا از شما مسائل مربوط به
177
00:06:46,639 –> 00:06:49,840
بیش از حد مناسب و
178
00:06:50,720 –> 00:06:52,880
غیره را می دانید ما این کار را
179
00:06:52,880 –> 00:06:54,880
با استفاده از تابع تقسیم تست قطار
180
00:06:54,880 –> 00:06:57,039
که از scikit Learn میآید انجام
181
00:06:57,039 –> 00:06:59,280
میدهیم، بنابراین اساساً شما متغیرهای x و
182
00:06:59,280 –> 00:07:00,880
متغیرهای y
183
00:07:00,880 –> 00:07:02,960
را به آن نسبت میدهید که میخواهید
184
00:07:02,960 –> 00:07:05,280
از آن خودداری کنید، میتوانید یک حالت تصادفی تنظیم کنید
185
00:07:05,280 –> 00:07:06,960
و این باعث میشود آن را تکرار کنید. بنابراین
186
00:07:06,960 –> 00:07:08,720
، اگر دوباره آن را اجرا کنید، همان تقسیمبندیها را دریافت خواهید کرد
187
00:07:08,720 –> 00:07:10,000
188
00:07:10,000 –> 00:07:12,240
و میتوانید طبقهبندی کنید، بنابراین دقیقاً
189
00:07:12,240 –> 00:07:14,960
به چه معناست که ما
190
00:07:14,960 –> 00:07:17,759
اساساً یک سوم از دادهها را برای
191
00:07:17,759 –> 00:07:19,599
آزمایش مخفی میکنیم، یعنی تقریباً دو
192
00:07:19,599 –> 00:07:22,400
سوم دادهها خواهد بود. نسبت 0.67 ما 0.67
193
00:07:22,400 –> 00:07:24,639
از داده ها برای آزمایش استفاده می شود
194
00:07:24,639 –> 00:07:26,960
و سپس ما بر اساس بقا طبقه بندی می کنیم،
195
00:07:26,960 –> 00:07:30,080
بنابراین باید به طور خاص
196
00:07:30,080 –> 00:07:32,479
0.33 درصد از بقای ها پنهان شده
197
00:07:32,479 –> 00:07:34,800
و 0.33 از
198
00:07:34,800 –> 00:07:36,000
باقیمانده ها پنهان شده باشد
199
00:07:36,000 –> 00:07:38,720
و سپس فقط یک بار که آن را
200
00:07:38,720 –> 00:07:41,280
اجرا کنیم می توانیم دوباره چاپ کنیم. این شمارش فقط برای
201
00:07:41,280 –> 00:07:42,960
درک تعداد ما در هر
202
00:07:42,960 –> 00:07:45,199
گروه است. ببخشید
203
00:07:45,199 –> 00:07:46,319
204
00:07:46,319 –> 00:07:48,240
توجه داشته باشید که این چند شی تولید می کند
205
00:07:48,240 –> 00:07:51,599
، به همین دلیل است که x tren
206
00:07:51,599 –> 00:07:54,560
x train x test y train و y test را به عنوان
207
00:07:54,560 –> 00:07:56,720
متغیرهای جداگانه در آنجا
208
00:07:56,720 –> 00:07:58,319
و th برمی گردانیم. این حساب ما است، بنابراین برای آموزش
209
00:07:58,319 –> 00:08:01,520
مدل، ما 365 نمونه داریم
210
00:08:01,520 –> 00:08:04,639
که در 229 نمونه زنده ماندند و پس از آن
211
00:08:04,639 –> 00:08:06,639
180
212
00:08:06,639 –> 00:08:10,000
نفر از آنها جان سالم به در نبردند و 113 مورد از زنده