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