All language subtitles for 13. Naive Forecast and Forecasting Metrics in Code

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic Download
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:11,130 --> 00:00:17,160 OK, so in this lecture, we are going to look at how to implement the Niyi forecast as well as evaluate 2 00:00:17,160 --> 00:00:19,110 it using the metrics we learned about. 3 00:00:20,810 --> 00:00:23,690 OK, so let's start by importing no giant pandas. 4 00:00:29,950 --> 00:00:35,470 The next step is to upgrade psyche, learn the reason for this is the current version of Saika Learn 5 00:00:35,470 --> 00:00:38,640 installed in Google CoLab does not have the map metric. 6 00:00:39,070 --> 00:00:43,570 So as I frequently mentioned in my courses, machine learning is a field that moves fast. 7 00:00:43,870 --> 00:00:45,610 This kind of thing is completely normal. 8 00:00:45,610 --> 00:00:47,070 Libraries change all the time. 9 00:00:53,910 --> 00:01:00,420 The next step is to import our metrics from Saikat learn so we have the map, the M80, the R-squared 10 00:01:00,420 --> 00:01:01,330 and the Mzee. 11 00:01:02,190 --> 00:01:05,880 You'll notice that this does not include the army nor the SMAP. 12 00:01:06,180 --> 00:01:07,710 We'll see how to deal with those later. 13 00:01:12,930 --> 00:01:19,050 So for this exercise, we'll be using prices from the S&P 500, which can be downloaded from my website. 14 00:01:25,750 --> 00:01:30,730 The next step is to call pedigreed CSFI in order to get a data frame of our data. 15 00:01:34,000 --> 00:01:38,740 As always, I'd like to do a DFAT head to get some sense for the data we're working with. 16 00:01:42,970 --> 00:01:47,070 So we can see all the expected columns open, high, low and so forth. 17 00:01:51,070 --> 00:01:56,980 The next step is to generate our predictions, so basically the new forecast is a forecast where we 18 00:01:57,130 --> 00:02:03,370 simply predict the previous value that we can accomplish this by calling the shift function on the close 19 00:02:03,370 --> 00:02:03,580 call. 20 00:02:03,580 --> 00:02:06,580 And we'll call this new column close prediction. 21 00:02:10,470 --> 00:02:14,550 The next step is to call DFG head once again to see our new column. 22 00:02:19,930 --> 00:02:25,750 Notice that the first row now contains not a number, since, of course, there is no last value for 23 00:02:25,750 --> 00:02:26,560 the first row. 24 00:02:30,150 --> 00:02:36,030 OK, so for convenience, we're going to assign the true closed prices to a variable called Y true and 25 00:02:36,030 --> 00:02:39,210 the predicted closed prices to a variable called a widespread. 26 00:02:40,140 --> 00:02:42,470 This is what these arguments are called inside you learn. 27 00:02:42,660 --> 00:02:45,720 So I felt it would be appropriate to call them the same thing. 28 00:02:51,380 --> 00:02:56,810 OK, so the next portion of this notebook will be to look at our metrics, the main purpose of this 29 00:02:56,810 --> 00:03:01,070 is not just to understand how to do this in code, since that's pretty easy. 30 00:03:01,460 --> 00:03:05,070 But I want you to pay attention to how these values relate to each other. 31 00:03:05,540 --> 00:03:09,590 Think about what would be considered a good value and what would be considered bad. 32 00:03:12,410 --> 00:03:17,090 OK, so let's start with the sum of squared errors, since there's no function for this, we're going 33 00:03:17,090 --> 00:03:18,630 to calculate it ourselves. 34 00:03:19,280 --> 00:03:24,920 So since why shouldn't we prêt or effectively one dimensional arrays, we can just take the difference 35 00:03:24,920 --> 00:03:27,460 into a dot products with the same difference. 36 00:03:30,640 --> 00:03:32,990 OK, so the result is about 6000. 37 00:03:33,430 --> 00:03:36,490 Of course, we don't necessarily know whether this is bad or good. 38 00:03:36,490 --> 00:03:37,630 It's just a no. 39 00:03:39,560 --> 00:03:44,090 The next step is to calculate the mean square error where we use our psyche to learn function. 40 00:03:46,620 --> 00:03:52,410 OK, so this is the result, as you can see, this brings the number down to a more reasonable range. 41 00:03:55,090 --> 00:03:59,180 Now, as Python coders, we can't be afraid of implementing things ourselves. 42 00:03:59,590 --> 00:04:03,460 Some students get absolutely frightened when they see that you're not using a library. 43 00:04:03,610 --> 00:04:06,230 But I urge all students not to take this approach. 44 00:04:06,670 --> 00:04:09,090 In fact, implementing the MSA is trivial. 45 00:04:09,400 --> 00:04:13,840 It's just what we had before, divided by the length of either flour, white, widespread. 46 00:04:17,010 --> 00:04:19,850 OK, and so we get the same answer as expected. 47 00:04:22,930 --> 00:04:28,750 The next step is to calculate the root mean squared error now, surprisingly, this is done by the mean 48 00:04:28,750 --> 00:04:32,900 squared error function where you can pass in the argument squared equal to false. 49 00:04:33,370 --> 00:04:34,270 So let's try that. 50 00:04:37,050 --> 00:04:40,370 OK, so we get about one point six, seven, which makes sense. 51 00:04:43,430 --> 00:04:48,230 And of course, we can just take the square root of our previous calculation, so let's try that also. 52 00:04:50,650 --> 00:04:52,900 And we get the same answer as expected. 53 00:04:55,850 --> 00:05:00,950 The next step is to calculate the mean absolute error, since we have a secure, learned function for 54 00:05:00,950 --> 00:05:02,840 this, we are going to make use of it. 55 00:05:06,020 --> 00:05:11,270 OK, so you can see that although the root mean square error and the mean absolute error have the same 56 00:05:11,270 --> 00:05:13,880 units, they do not give you the same value. 57 00:05:17,070 --> 00:05:21,560 Now, we know that for all the previous metrics we've seen, they are scale dependent. 58 00:05:22,140 --> 00:05:26,990 So the next step is to look at the R-squared, which does not depend on the scale of the data. 59 00:05:30,660 --> 00:05:35,820 OK, so this should be surprising, as you recall, we said that the best R-squared is one. 60 00:05:36,240 --> 00:05:39,670 Where is the R-squared of simply predicting the mean value is zero? 61 00:05:40,770 --> 00:05:45,550 It turns out that our naive forecast gets an R squared of zero point nine nine nine. 62 00:05:46,080 --> 00:05:51,300 This kind of makes sense since stock prices don't vary that wildly from one day to the next. 63 00:05:51,690 --> 00:05:56,260 So predicting the last value in the series should give us pretty good predictors. 64 00:05:56,820 --> 00:06:01,800 However, in another sense, these are also very bad predictions because they are really just the dumbest 65 00:06:01,800 --> 00:06:02,840 predictions possible. 66 00:06:03,510 --> 00:06:09,120 So let this be a lesson that if you see a model that happens to predict stock prices very well, don't 67 00:06:09,120 --> 00:06:11,430 assume that such a model is actually useful. 68 00:06:14,840 --> 00:06:19,130 The next step is to compute the make, which is another scale and very symmetric. 69 00:06:22,120 --> 00:06:26,620 OK, so this is nearly zero, which makes sense since the R-squared is nearly one. 70 00:06:30,110 --> 00:06:32,090 The next step is to compute the SMAP. 71 00:06:32,600 --> 00:06:38,240 Now you'll notice that I didn't import this function from Sakia learn this is because no such function 72 00:06:38,240 --> 00:06:38,850 exists. 73 00:06:39,290 --> 00:06:42,800 So this is the power of being able to implement these things yourself. 74 00:06:43,190 --> 00:06:48,320 Someone who does not have these skills would probably start by going to Google and then checking stack 75 00:06:48,320 --> 00:06:49,670 overflow and so forth. 76 00:06:49,910 --> 00:06:54,500 They might end up wasting their whole day trying to figure out where is the function for SMAP. 77 00:06:54,890 --> 00:06:59,840 But when you do have these skills, you're able to get this done in just a few lines of code and a few 78 00:06:59,840 --> 00:07:00,950 seconds of effort. 79 00:07:04,480 --> 00:07:09,430 OK, and we see that the result is pretty close to the non symmetric map, which makes sense. 8470

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.