Vi kan lage one-hot-kodet data med pandas.get_dummies(...)
Length
Height
Animal_Code
Animal_Elephant
Animal_Giraffe
Animal_Kangaroo
Animal_Koala
Animal_Lion
Animal_Ostrich
Animal_Panda
Animal_Penguin
Animal_Tiger
Animal_Zebra
136
0.753196
0.750071
3
0
0
0
1
0
0
0
0
0
0
95
2.199396
1.423476
9
0
0
0
0
0
0
0
0
0
1
1
2.509806
1.198152
4
0
0
0
0
1
0
0
0
0
0
149
0.730271
0.476178
3
0
0
0
1
0
0
0
0
0
0
54
3.480036
3.100880
0
1
0
0
0
0
0
0
0
0
0
165
0.647924
0.717772
7
0
0
0
0
0
0
0
1
0
0
88
2.459911
1.533689
9
0
0
0
0
0
0
0
0
0
1
154
0.841364
0.607071
7
0
0
0
0
0
0
0
1
0
0
75
2.935860
5.517736
1
0
1
0
0
0
0
0
0
0
0
129
1.695344
0.903539
6
0
0
0
0
0
0
1
0
0
0
Regresjonsmodell med one-hot-coding
Likning
\[H(L, N) = \beta_0 + \beta_1 L + \sum_{\mathrm{i = \{Lion, Tiger, ...\}}}^{k} \beta_i [\text{er dette en }i\mathrm{?}]\]
La oss se på dette i et litt mindre datasett
import pandas as pdimport seaborn as snshealth = sns.load_dataset('healthexp')display(health.sample(10))
Year
Country
Spending_USD
Life_Expectancy
239
2015
Germany
5295.975
80.7
226
2013
Canada
4428.753
81.7
140
1998
Japan
1571.107
80.6
14
1973
Japan
205.778
73.4
214
2011
Canada
4228.962
81.4
130
1997
Canada
2091.997
78.3
3
1970
Japan
150.437
72.0
213
2010
USA
7879.253
78.6
125
1996
Germany
2480.217
76.9
245
2016
Germany
5669.064
81.0
Her bruker vi seaborn kun for å laste inn et datasett. Seaborn gir oss også noen muligheter til pen visualisering i statistikk, for dem som måtte være interessert i det.
Underveisoppgave
Note
Gjør one-hot encoding av healthexp-datasettet
Gjør trenings-validerings-splitt av datasettet
Tren en lineær regresjonsmodell for å predikere life expectancy, med spending som forklaringsvariabel
Ta med land som forklaringsvariabel i modellen
Sammenligne nøyaktigehten til modellene
import pandas as pdimport seaborn as snshealth = sns.load_dataset('healthexp')health_onehot = pd.get_dummies(health, columns=['Country'])display(health_onehot.sample(10))
Year
Spending_USD
Life_Expectancy
Country_Canada
Country_France
Country_Germany
Country_Great Britain
Country_Japan
Country_USA
153
2000
4536.561
76.7
0
0
0
0
0
1
121
1995
1094.034
76.7
0
0
0
1
0
0
84
1989
1579.543
77.1
1
0
0
0
0
0
262
2019
5189.721
82.2
1
0
0
0
0
0
87
1989
1021.247
78.8
0
0
0
0
1
0
130
1997
2091.997
78.3
1
0
0
0
0
0
233
2014
5151.709
81.2
0
0
1
0
0
0
42
1980
1036.300
73.7
0
0
0
0
0
1
132
1997
2236.595
78.6
0
1
0
0
0
0
113
1994
2188.676
76.5
0
0
1
0
0
0
Start på løsning
Year
Country
Spending_USD
Life_Expectancy
121
1995
Great Britain
1094.034
76.7
232
2014
Canada
4536.810
81.8
78
1987
USA
1976.166
74.9
136
1998
Canada
2200.468
78.6
226
2013
Canada
4428.753
81.7
238
2015
Canada
4635.285
81.9
8
1971
Japan
163.854
72.9
90
1990
Germany
1724.332
77.3
221
2012
Germany
4745.546
80.6
245
2016
Germany
5669.064
81.0
Enkel regresjonsmodell
Mean Squared Error: 7.846016617615249
R^2 Score: 0.3573359515082699
En påfallende “god” modell, hva har skjedd her?
Mean Squared Error: 0.13772868450150377
R^2 Score: 0.9887186991451874
Uten år som forklaringsvariabel
Mean Squared Error: 2.3013732097838697
R^2 Score: 0.8114954509821513