diff --git a/doc/pub/week35/html/._week35-bs000.html b/doc/pub/week35/html/._week35-bs000.html index f6f977e68..e6f5e6ee0 100644 --- a/doc/pub/week35/html/._week35-bs000.html +++ b/doc/pub/week35/html/._week35-bs000.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
  • Plans for week 35, August 30 -September 3
  • -
  • Thursday September 2
  • +
  • Plans for week 35
  • +
  • Thursday September 1
  • Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
  • Regression analysis, overarching aims
  • Regression analysis, overarching aims II
  • @@ -339,7 +336,7 @@ MathJax.Hub.Config({
  • Economy-size SVD
  • Codes for the SVD
  • Note about SVD Calculations
  • -
  • Friday September 3
  • +
  • Friday September 2
  • Mathematics of the SVD and implications
  • Example Matrix
  • Setting up the Matrix to be inverted
  • @@ -393,7 +390,7 @@ MathJax.Hub.Config({
    -

    Nov 3, 2021

    +

    Aug 23, 2022


    @@ -432,7 +429,7 @@ MathJax.Hub.Config({ -->
    - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
    diff --git a/doc/pub/week35/html/._week35-bs001.html b/doc/pub/week35/html/._week35-bs001.html index 2af7c186e..fdade8102 100644 --- a/doc/pub/week35/html/._week35-bs001.html +++ b/doc/pub/week35/html/._week35-bs001.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
  • Plans for week 35, August 30 -September 3
  • -
  • Thursday September 2
  • +
  • Plans for week 35
  • +
  • Thursday September 1
  • Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
  • Regression analysis, overarching aims
  • Regression analysis, overarching aims II
  • @@ -339,7 +336,7 @@ MathJax.Hub.Config({
  • Economy-size SVD
  • Codes for the SVD
  • Note about SVD Calculations
  • -
  • Friday September 3
  • +
  • Friday September 2
  • Mathematics of the SVD and implications
  • Example Matrix
  • Setting up the Matrix to be inverted
  • @@ -375,13 +372,11 @@ MathJax.Hub.Config({

     

     

     

    -

    Plans for week 35, August 30 -September 3

    +

    Plans for week 35

    diff --git a/doc/pub/week35/html/._week35-bs002.html b/doc/pub/week35/html/._week35-bs002.html index af1a23a8d..6b87b5921 100644 --- a/doc/pub/week35/html/._week35-bs002.html +++ b/doc/pub/week35/html/._week35-bs002.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d

  • Plans for week 35, August 30 -September 3
  • -
  • Thursday September 2
  • +
  • Plans for week 35
  • +
  • Thursday September 1
  • Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
  • Regression analysis, overarching aims
  • Regression analysis, overarching aims II
  • @@ -339,7 +336,7 @@ MathJax.Hub.Config({
  • Economy-size SVD
  • Codes for the SVD
  • Note about SVD Calculations
  • -
  • Friday September 3
  • +
  • Friday September 2
  • Mathematics of the SVD and implications
  • Example Matrix
  • Setting up the Matrix to be inverted
  • @@ -375,7 +372,7 @@ MathJax.Hub.Config({

     

     

     

    -

    Thursday September 2

    +

    Thursday September 1

    The main topics on Thursday are:

      diff --git a/doc/pub/week35/html/._week35-bs003.html b/doc/pub/week35/html/._week35-bs003.html index a80d2fd80..2bb3b019f 100644 --- a/doc/pub/week35/html/._week35-bs003.html +++ b/doc/pub/week35/html/._week35-bs003.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1. Plans for week 35, August 30 -September 3
    2. -
    3. Thursday September 2
    4. +
    5. Plans for week 35
    6. +
    7. Thursday September 1
    8. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    9. Regression analysis, overarching aims
    10. Regression analysis, overarching aims II
    11. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    12. Economy-size SVD
    13. Codes for the SVD
    14. Note about SVD Calculations
    15. -
    16. Friday September 3
    17. +
    18. Friday September 2
    19. Mathematics of the SVD and implications
    20. Example Matrix
    21. Setting up the Matrix to be inverted
    22. diff --git a/doc/pub/week35/html/._week35-bs004.html b/doc/pub/week35/html/._week35-bs004.html index ca6eaffaa..c6bf0658a 100644 --- a/doc/pub/week35/html/._week35-bs004.html +++ b/doc/pub/week35/html/._week35-bs004.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    23. Plans for week 35, August 30 -September 3
    24. -
    25. Thursday September 2
    26. +
    27. Plans for week 35
    28. +
    29. Thursday September 1
    30. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    31. Regression analysis, overarching aims
    32. Regression analysis, overarching aims II
    33. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    34. Economy-size SVD
    35. Codes for the SVD
    36. Note about SVD Calculations
    37. -
    38. Friday September 3
    39. +
    40. Friday September 2
    41. Mathematics of the SVD and implications
    42. Example Matrix
    43. Setting up the Matrix to be inverted
    44. diff --git a/doc/pub/week35/html/._week35-bs005.html b/doc/pub/week35/html/._week35-bs005.html index a9948d15a..b048db462 100644 --- a/doc/pub/week35/html/._week35-bs005.html +++ b/doc/pub/week35/html/._week35-bs005.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    45. Plans for week 35, August 30 -September 3
    46. -
    47. Thursday September 2
    48. +
    49. Plans for week 35
    50. +
    51. Thursday September 1
    52. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    53. Regression analysis, overarching aims
    54. Regression analysis, overarching aims II
    55. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    56. Economy-size SVD
    57. Codes for the SVD
    58. Note about SVD Calculations
    59. -
    60. Friday September 3
    61. +
    62. Friday September 2
    63. Mathematics of the SVD and implications
    64. Example Matrix
    65. Setting up the Matrix to be inverted
    66. diff --git a/doc/pub/week35/html/._week35-bs006.html b/doc/pub/week35/html/._week35-bs006.html index 97bbb235c..9f1d3b7c2 100644 --- a/doc/pub/week35/html/._week35-bs006.html +++ b/doc/pub/week35/html/._week35-bs006.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    67. Plans for week 35, August 30 -September 3
    68. -
    69. Thursday September 2
    70. +
    71. Plans for week 35
    72. +
    73. Thursday September 1
    74. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    75. Regression analysis, overarching aims
    76. Regression analysis, overarching aims II
    77. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    78. Economy-size SVD
    79. Codes for the SVD
    80. Note about SVD Calculations
    81. -
    82. Friday September 3
    83. +
    84. Friday September 2
    85. Mathematics of the SVD and implications
    86. Example Matrix
    87. Setting up the Matrix to be inverted
    88. diff --git a/doc/pub/week35/html/._week35-bs007.html b/doc/pub/week35/html/._week35-bs007.html index a74a0c4d0..975d994ae 100644 --- a/doc/pub/week35/html/._week35-bs007.html +++ b/doc/pub/week35/html/._week35-bs007.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    89. Plans for week 35, August 30 -September 3
    90. -
    91. Thursday September 2
    92. +
    93. Plans for week 35
    94. +
    95. Thursday September 1
    96. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    97. Regression analysis, overarching aims
    98. Regression analysis, overarching aims II
    99. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    100. Economy-size SVD
    101. Codes for the SVD
    102. Note about SVD Calculations
    103. -
    104. Friday September 3
    105. +
    106. Friday September 2
    107. Mathematics of the SVD and implications
    108. Example Matrix
    109. Setting up the Matrix to be inverted
    110. diff --git a/doc/pub/week35/html/._week35-bs008.html b/doc/pub/week35/html/._week35-bs008.html index 3ae96ab97..4465bf8c9 100644 --- a/doc/pub/week35/html/._week35-bs008.html +++ b/doc/pub/week35/html/._week35-bs008.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    111. Plans for week 35, August 30 -September 3
    112. -
    113. Thursday September 2
    114. +
    115. Plans for week 35
    116. +
    117. Thursday September 1
    118. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    119. Regression analysis, overarching aims
    120. Regression analysis, overarching aims II
    121. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    122. Economy-size SVD
    123. Codes for the SVD
    124. Note about SVD Calculations
    125. -
    126. Friday September 3
    127. +
    128. Friday September 2
    129. Mathematics of the SVD and implications
    130. Example Matrix
    131. Setting up the Matrix to be inverted
    132. diff --git a/doc/pub/week35/html/._week35-bs009.html b/doc/pub/week35/html/._week35-bs009.html index a2327d1af..9e2bf8b71 100644 --- a/doc/pub/week35/html/._week35-bs009.html +++ b/doc/pub/week35/html/._week35-bs009.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    133. Plans for week 35, August 30 -September 3
    134. -
    135. Thursday September 2
    136. +
    137. Plans for week 35
    138. +
    139. Thursday September 1
    140. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    141. Regression analysis, overarching aims
    142. Regression analysis, overarching aims II
    143. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    144. Economy-size SVD
    145. Codes for the SVD
    146. Note about SVD Calculations
    147. -
    148. Friday September 3
    149. +
    150. Friday September 2
    151. Mathematics of the SVD and implications
    152. Example Matrix
    153. Setting up the Matrix to be inverted
    154. diff --git a/doc/pub/week35/html/._week35-bs010.html b/doc/pub/week35/html/._week35-bs010.html index 7a91e79b7..2ef90c645 100644 --- a/doc/pub/week35/html/._week35-bs010.html +++ b/doc/pub/week35/html/._week35-bs010.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    155. Plans for week 35, August 30 -September 3
    156. -
    157. Thursday September 2
    158. +
    159. Plans for week 35
    160. +
    161. Thursday September 1
    162. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    163. Regression analysis, overarching aims
    164. Regression analysis, overarching aims II
    165. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    166. Economy-size SVD
    167. Codes for the SVD
    168. Note about SVD Calculations
    169. -
    170. Friday September 3
    171. +
    172. Friday September 2
    173. Mathematics of the SVD and implications
    174. Example Matrix
    175. Setting up the Matrix to be inverted
    176. diff --git a/doc/pub/week35/html/._week35-bs011.html b/doc/pub/week35/html/._week35-bs011.html index 20dd4910e..a3becfa7b 100644 --- a/doc/pub/week35/html/._week35-bs011.html +++ b/doc/pub/week35/html/._week35-bs011.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    177. Plans for week 35, August 30 -September 3
    178. -
    179. Thursday September 2
    180. +
    181. Plans for week 35
    182. +
    183. Thursday September 1
    184. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    185. Regression analysis, overarching aims
    186. Regression analysis, overarching aims II
    187. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    188. Economy-size SVD
    189. Codes for the SVD
    190. Note about SVD Calculations
    191. -
    192. Friday September 3
    193. +
    194. Friday September 2
    195. Mathematics of the SVD and implications
    196. Example Matrix
    197. Setting up the Matrix to be inverted
    198. diff --git a/doc/pub/week35/html/._week35-bs012.html b/doc/pub/week35/html/._week35-bs012.html index e70f9e3bf..485669976 100644 --- a/doc/pub/week35/html/._week35-bs012.html +++ b/doc/pub/week35/html/._week35-bs012.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    199. Plans for week 35, August 30 -September 3
    200. -
    201. Thursday September 2
    202. +
    203. Plans for week 35
    204. +
    205. Thursday September 1
    206. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    207. Regression analysis, overarching aims
    208. Regression analysis, overarching aims II
    209. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    210. Economy-size SVD
    211. Codes for the SVD
    212. Note about SVD Calculations
    213. -
    214. Friday September 3
    215. +
    216. Friday September 2
    217. Mathematics of the SVD and implications
    218. Example Matrix
    219. Setting up the Matrix to be inverted
    220. diff --git a/doc/pub/week35/html/._week35-bs013.html b/doc/pub/week35/html/._week35-bs013.html index f377b4488..f7eff7056 100644 --- a/doc/pub/week35/html/._week35-bs013.html +++ b/doc/pub/week35/html/._week35-bs013.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    221. Plans for week 35, August 30 -September 3
    222. -
    223. Thursday September 2
    224. +
    225. Plans for week 35
    226. +
    227. Thursday September 1
    228. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    229. Regression analysis, overarching aims
    230. Regression analysis, overarching aims II
    231. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    232. Economy-size SVD
    233. Codes for the SVD
    234. Note about SVD Calculations
    235. -
    236. Friday September 3
    237. +
    238. Friday September 2
    239. Mathematics of the SVD and implications
    240. Example Matrix
    241. Setting up the Matrix to be inverted
    242. diff --git a/doc/pub/week35/html/._week35-bs014.html b/doc/pub/week35/html/._week35-bs014.html index 4dc2b9b3b..f1deb9698 100644 --- a/doc/pub/week35/html/._week35-bs014.html +++ b/doc/pub/week35/html/._week35-bs014.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    243. Plans for week 35, August 30 -September 3
    244. -
    245. Thursday September 2
    246. +
    247. Plans for week 35
    248. +
    249. Thursday September 1
    250. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    251. Regression analysis, overarching aims
    252. Regression analysis, overarching aims II
    253. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    254. Economy-size SVD
    255. Codes for the SVD
    256. Note about SVD Calculations
    257. -
    258. Friday September 3
    259. +
    260. Friday September 2
    261. Mathematics of the SVD and implications
    262. Example Matrix
    263. Setting up the Matrix to be inverted
    264. diff --git a/doc/pub/week35/html/._week35-bs015.html b/doc/pub/week35/html/._week35-bs015.html index d770d9588..e4c339929 100644 --- a/doc/pub/week35/html/._week35-bs015.html +++ b/doc/pub/week35/html/._week35-bs015.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    265. Plans for week 35, August 30 -September 3
    266. -
    267. Thursday September 2
    268. +
    269. Plans for week 35
    270. +
    271. Thursday September 1
    272. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    273. Regression analysis, overarching aims
    274. Regression analysis, overarching aims II
    275. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    276. Economy-size SVD
    277. Codes for the SVD
    278. Note about SVD Calculations
    279. -
    280. Friday September 3
    281. +
    282. Friday September 2
    283. Mathematics of the SVD and implications
    284. Example Matrix
    285. Setting up the Matrix to be inverted
    286. diff --git a/doc/pub/week35/html/._week35-bs016.html b/doc/pub/week35/html/._week35-bs016.html index 505ca8579..afb3294e3 100644 --- a/doc/pub/week35/html/._week35-bs016.html +++ b/doc/pub/week35/html/._week35-bs016.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    287. Plans for week 35, August 30 -September 3
    288. -
    289. Thursday September 2
    290. +
    291. Plans for week 35
    292. +
    293. Thursday September 1
    294. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    295. Regression analysis, overarching aims
    296. Regression analysis, overarching aims II
    297. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    298. Economy-size SVD
    299. Codes for the SVD
    300. Note about SVD Calculations
    301. -
    302. Friday September 3
    303. +
    304. Friday September 2
    305. Mathematics of the SVD and implications
    306. Example Matrix
    307. Setting up the Matrix to be inverted
    308. diff --git a/doc/pub/week35/html/._week35-bs017.html b/doc/pub/week35/html/._week35-bs017.html index 814c190eb..fa7cb048e 100644 --- a/doc/pub/week35/html/._week35-bs017.html +++ b/doc/pub/week35/html/._week35-bs017.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    309. Plans for week 35, August 30 -September 3
    310. -
    311. Thursday September 2
    312. +
    313. Plans for week 35
    314. +
    315. Thursday September 1
    316. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    317. Regression analysis, overarching aims
    318. Regression analysis, overarching aims II
    319. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    320. Economy-size SVD
    321. Codes for the SVD
    322. Note about SVD Calculations
    323. -
    324. Friday September 3
    325. +
    326. Friday September 2
    327. Mathematics of the SVD and implications
    328. Example Matrix
    329. Setting up the Matrix to be inverted
    330. diff --git a/doc/pub/week35/html/._week35-bs018.html b/doc/pub/week35/html/._week35-bs018.html index 3001a47e8..630965756 100644 --- a/doc/pub/week35/html/._week35-bs018.html +++ b/doc/pub/week35/html/._week35-bs018.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    331. Plans for week 35, August 30 -September 3
    332. -
    333. Thursday September 2
    334. +
    335. Plans for week 35
    336. +
    337. Thursday September 1
    338. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    339. Regression analysis, overarching aims
    340. Regression analysis, overarching aims II
    341. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    342. Economy-size SVD
    343. Codes for the SVD
    344. Note about SVD Calculations
    345. -
    346. Friday September 3
    347. +
    348. Friday September 2
    349. Mathematics of the SVD and implications
    350. Example Matrix
    351. Setting up the Matrix to be inverted
    352. diff --git a/doc/pub/week35/html/._week35-bs019.html b/doc/pub/week35/html/._week35-bs019.html index 097daf45c..2dc388d53 100644 --- a/doc/pub/week35/html/._week35-bs019.html +++ b/doc/pub/week35/html/._week35-bs019.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    353. Plans for week 35, August 30 -September 3
    354. -
    355. Thursday September 2
    356. +
    357. Plans for week 35
    358. +
    359. Thursday September 1
    360. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    361. Regression analysis, overarching aims
    362. Regression analysis, overarching aims II
    363. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    364. Economy-size SVD
    365. Codes for the SVD
    366. Note about SVD Calculations
    367. -
    368. Friday September 3
    369. +
    370. Friday September 2
    371. Mathematics of the SVD and implications
    372. Example Matrix
    373. Setting up the Matrix to be inverted
    374. diff --git a/doc/pub/week35/html/._week35-bs020.html b/doc/pub/week35/html/._week35-bs020.html index 96b4ecaf7..2a16db91e 100644 --- a/doc/pub/week35/html/._week35-bs020.html +++ b/doc/pub/week35/html/._week35-bs020.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    375. Plans for week 35, August 30 -September 3
    376. -
    377. Thursday September 2
    378. +
    379. Plans for week 35
    380. +
    381. Thursday September 1
    382. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    383. Regression analysis, overarching aims
    384. Regression analysis, overarching aims II
    385. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    386. Economy-size SVD
    387. Codes for the SVD
    388. Note about SVD Calculations
    389. -
    390. Friday September 3
    391. +
    392. Friday September 2
    393. Mathematics of the SVD and implications
    394. Example Matrix
    395. Setting up the Matrix to be inverted
    396. diff --git a/doc/pub/week35/html/._week35-bs021.html b/doc/pub/week35/html/._week35-bs021.html index 62f43b27b..3789d951d 100644 --- a/doc/pub/week35/html/._week35-bs021.html +++ b/doc/pub/week35/html/._week35-bs021.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    397. Plans for week 35, August 30 -September 3
    398. -
    399. Thursday September 2
    400. +
    401. Plans for week 35
    402. +
    403. Thursday September 1
    404. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    405. Regression analysis, overarching aims
    406. Regression analysis, overarching aims II
    407. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    408. Economy-size SVD
    409. Codes for the SVD
    410. Note about SVD Calculations
    411. -
    412. Friday September 3
    413. +
    414. Friday September 2
    415. Mathematics of the SVD and implications
    416. Example Matrix
    417. Setting up the Matrix to be inverted
    418. diff --git a/doc/pub/week35/html/._week35-bs022.html b/doc/pub/week35/html/._week35-bs022.html index 1d3d493bb..6fa90006a 100644 --- a/doc/pub/week35/html/._week35-bs022.html +++ b/doc/pub/week35/html/._week35-bs022.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    419. Plans for week 35, August 30 -September 3
    420. -
    421. Thursday September 2
    422. +
    423. Plans for week 35
    424. +
    425. Thursday September 1
    426. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    427. Regression analysis, overarching aims
    428. Regression analysis, overarching aims II
    429. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    430. Economy-size SVD
    431. Codes for the SVD
    432. Note about SVD Calculations
    433. -
    434. Friday September 3
    435. +
    436. Friday September 2
    437. Mathematics of the SVD and implications
    438. Example Matrix
    439. Setting up the Matrix to be inverted
    440. diff --git a/doc/pub/week35/html/._week35-bs023.html b/doc/pub/week35/html/._week35-bs023.html index f40ad4122..afd88ef47 100644 --- a/doc/pub/week35/html/._week35-bs023.html +++ b/doc/pub/week35/html/._week35-bs023.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    441. Plans for week 35, August 30 -September 3
    442. -
    443. Thursday September 2
    444. +
    445. Plans for week 35
    446. +
    447. Thursday September 1
    448. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    449. Regression analysis, overarching aims
    450. Regression analysis, overarching aims II
    451. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    452. Economy-size SVD
    453. Codes for the SVD
    454. Note about SVD Calculations
    455. -
    456. Friday September 3
    457. +
    458. Friday September 2
    459. Mathematics of the SVD and implications
    460. Example Matrix
    461. Setting up the Matrix to be inverted
    462. diff --git a/doc/pub/week35/html/._week35-bs024.html b/doc/pub/week35/html/._week35-bs024.html index ba79d8c9e..d779200f8 100644 --- a/doc/pub/week35/html/._week35-bs024.html +++ b/doc/pub/week35/html/._week35-bs024.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    463. Plans for week 35, August 30 -September 3
    464. -
    465. Thursday September 2
    466. +
    467. Plans for week 35
    468. +
    469. Thursday September 1
    470. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    471. Regression analysis, overarching aims
    472. Regression analysis, overarching aims II
    473. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    474. Economy-size SVD
    475. Codes for the SVD
    476. Note about SVD Calculations
    477. -
    478. Friday September 3
    479. +
    480. Friday September 2
    481. Mathematics of the SVD and implications
    482. Example Matrix
    483. Setting up the Matrix to be inverted
    484. diff --git a/doc/pub/week35/html/._week35-bs025.html b/doc/pub/week35/html/._week35-bs025.html index e8aa574d3..00ee6a323 100644 --- a/doc/pub/week35/html/._week35-bs025.html +++ b/doc/pub/week35/html/._week35-bs025.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    485. Plans for week 35, August 30 -September 3
    486. -
    487. Thursday September 2
    488. +
    489. Plans for week 35
    490. +
    491. Thursday September 1
    492. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    493. Regression analysis, overarching aims
    494. Regression analysis, overarching aims II
    495. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    496. Economy-size SVD
    497. Codes for the SVD
    498. Note about SVD Calculations
    499. -
    500. Friday September 3
    501. +
    502. Friday September 2
    503. Mathematics of the SVD and implications
    504. Example Matrix
    505. Setting up the Matrix to be inverted
    506. diff --git a/doc/pub/week35/html/._week35-bs026.html b/doc/pub/week35/html/._week35-bs026.html index af958211e..1ccaf986c 100644 --- a/doc/pub/week35/html/._week35-bs026.html +++ b/doc/pub/week35/html/._week35-bs026.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    507. Plans for week 35, August 30 -September 3
    508. -
    509. Thursday September 2
    510. +
    511. Plans for week 35
    512. +
    513. Thursday September 1
    514. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    515. Regression analysis, overarching aims
    516. Regression analysis, overarching aims II
    517. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    518. Economy-size SVD
    519. Codes for the SVD
    520. Note about SVD Calculations
    521. -
    522. Friday September 3
    523. +
    524. Friday September 2
    525. Mathematics of the SVD and implications
    526. Example Matrix
    527. Setting up the Matrix to be inverted
    528. diff --git a/doc/pub/week35/html/._week35-bs027.html b/doc/pub/week35/html/._week35-bs027.html index 4fe3f287f..acdf6cfb4 100644 --- a/doc/pub/week35/html/._week35-bs027.html +++ b/doc/pub/week35/html/._week35-bs027.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    529. Plans for week 35, August 30 -September 3
    530. -
    531. Thursday September 2
    532. +
    533. Plans for week 35
    534. +
    535. Thursday September 1
    536. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    537. Regression analysis, overarching aims
    538. Regression analysis, overarching aims II
    539. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    540. Economy-size SVD
    541. Codes for the SVD
    542. Note about SVD Calculations
    543. -
    544. Friday September 3
    545. +
    546. Friday September 2
    547. Mathematics of the SVD and implications
    548. Example Matrix
    549. Setting up the Matrix to be inverted
    550. diff --git a/doc/pub/week35/html/._week35-bs028.html b/doc/pub/week35/html/._week35-bs028.html index 76acc5ef5..f268d09bc 100644 --- a/doc/pub/week35/html/._week35-bs028.html +++ b/doc/pub/week35/html/._week35-bs028.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    551. Plans for week 35, August 30 -September 3
    552. -
    553. Thursday September 2
    554. +
    555. Plans for week 35
    556. +
    557. Thursday September 1
    558. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    559. Regression analysis, overarching aims
    560. Regression analysis, overarching aims II
    561. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    562. Economy-size SVD
    563. Codes for the SVD
    564. Note about SVD Calculations
    565. -
    566. Friday September 3
    567. +
    568. Friday September 2
    569. Mathematics of the SVD and implications
    570. Example Matrix
    571. Setting up the Matrix to be inverted
    572. diff --git a/doc/pub/week35/html/._week35-bs029.html b/doc/pub/week35/html/._week35-bs029.html index 3e9f20fc8..e49ce24d1 100644 --- a/doc/pub/week35/html/._week35-bs029.html +++ b/doc/pub/week35/html/._week35-bs029.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    573. Plans for week 35, August 30 -September 3
    574. -
    575. Thursday September 2
    576. +
    577. Plans for week 35
    578. +
    579. Thursday September 1
    580. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    581. Regression analysis, overarching aims
    582. Regression analysis, overarching aims II
    583. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    584. Economy-size SVD
    585. Codes for the SVD
    586. Note about SVD Calculations
    587. -
    588. Friday September 3
    589. +
    590. Friday September 2
    591. Mathematics of the SVD and implications
    592. Example Matrix
    593. Setting up the Matrix to be inverted
    594. diff --git a/doc/pub/week35/html/._week35-bs030.html b/doc/pub/week35/html/._week35-bs030.html index 032375288..6f48a0435 100644 --- a/doc/pub/week35/html/._week35-bs030.html +++ b/doc/pub/week35/html/._week35-bs030.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    595. Plans for week 35, August 30 -September 3
    596. -
    597. Thursday September 2
    598. +
    599. Plans for week 35
    600. +
    601. Thursday September 1
    602. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    603. Regression analysis, overarching aims
    604. Regression analysis, overarching aims II
    605. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    606. Economy-size SVD
    607. Codes for the SVD
    608. Note about SVD Calculations
    609. -
    610. Friday September 3
    611. +
    612. Friday September 2
    613. Mathematics of the SVD and implications
    614. Example Matrix
    615. Setting up the Matrix to be inverted
    616. diff --git a/doc/pub/week35/html/._week35-bs031.html b/doc/pub/week35/html/._week35-bs031.html index 44dd180dc..4c5910223 100644 --- a/doc/pub/week35/html/._week35-bs031.html +++ b/doc/pub/week35/html/._week35-bs031.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    617. Plans for week 35, August 30 -September 3
    618. -
    619. Thursday September 2
    620. +
    621. Plans for week 35
    622. +
    623. Thursday September 1
    624. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    625. Regression analysis, overarching aims
    626. Regression analysis, overarching aims II
    627. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    628. Economy-size SVD
    629. Codes for the SVD
    630. Note about SVD Calculations
    631. -
    632. Friday September 3
    633. +
    634. Friday September 2
    635. Mathematics of the SVD and implications
    636. Example Matrix
    637. Setting up the Matrix to be inverted
    638. diff --git a/doc/pub/week35/html/._week35-bs032.html b/doc/pub/week35/html/._week35-bs032.html index 36b8eb255..efae2e5e2 100644 --- a/doc/pub/week35/html/._week35-bs032.html +++ b/doc/pub/week35/html/._week35-bs032.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    639. Plans for week 35, August 30 -September 3
    640. -
    641. Thursday September 2
    642. +
    643. Plans for week 35
    644. +
    645. Thursday September 1
    646. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    647. Regression analysis, overarching aims
    648. Regression analysis, overarching aims II
    649. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    650. Economy-size SVD
    651. Codes for the SVD
    652. Note about SVD Calculations
    653. -
    654. Friday September 3
    655. +
    656. Friday September 2
    657. Mathematics of the SVD and implications
    658. Example Matrix
    659. Setting up the Matrix to be inverted
    660. diff --git a/doc/pub/week35/html/._week35-bs033.html b/doc/pub/week35/html/._week35-bs033.html index 8fd9e9ed1..4c4736573 100644 --- a/doc/pub/week35/html/._week35-bs033.html +++ b/doc/pub/week35/html/._week35-bs033.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    661. Plans for week 35, August 30 -September 3
    662. -
    663. Thursday September 2
    664. +
    665. Plans for week 35
    666. +
    667. Thursday September 1
    668. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    669. Regression analysis, overarching aims
    670. Regression analysis, overarching aims II
    671. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    672. Economy-size SVD
    673. Codes for the SVD
    674. Note about SVD Calculations
    675. -
    676. Friday September 3
    677. +
    678. Friday September 2
    679. Mathematics of the SVD and implications
    680. Example Matrix
    681. Setting up the Matrix to be inverted
    682. diff --git a/doc/pub/week35/html/._week35-bs034.html b/doc/pub/week35/html/._week35-bs034.html index ea05a5100..a61237e51 100644 --- a/doc/pub/week35/html/._week35-bs034.html +++ b/doc/pub/week35/html/._week35-bs034.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    683. Plans for week 35, August 30 -September 3
    684. -
    685. Thursday September 2
    686. +
    687. Plans for week 35
    688. +
    689. Thursday September 1
    690. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    691. Regression analysis, overarching aims
    692. Regression analysis, overarching aims II
    693. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    694. Economy-size SVD
    695. Codes for the SVD
    696. Note about SVD Calculations
    697. -
    698. Friday September 3
    699. +
    700. Friday September 2
    701. Mathematics of the SVD and implications
    702. Example Matrix
    703. Setting up the Matrix to be inverted
    704. diff --git a/doc/pub/week35/html/._week35-bs035.html b/doc/pub/week35/html/._week35-bs035.html index 1e38b42c5..072aa3c34 100644 --- a/doc/pub/week35/html/._week35-bs035.html +++ b/doc/pub/week35/html/._week35-bs035.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    705. Plans for week 35, August 30 -September 3
    706. -
    707. Thursday September 2
    708. +
    709. Plans for week 35
    710. +
    711. Thursday September 1
    712. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    713. Regression analysis, overarching aims
    714. Regression analysis, overarching aims II
    715. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    716. Economy-size SVD
    717. Codes for the SVD
    718. Note about SVD Calculations
    719. -
    720. Friday September 3
    721. +
    722. Friday September 2
    723. Mathematics of the SVD and implications
    724. Example Matrix
    725. Setting up the Matrix to be inverted
    726. diff --git a/doc/pub/week35/html/._week35-bs036.html b/doc/pub/week35/html/._week35-bs036.html index 8a1590040..d1ea92104 100644 --- a/doc/pub/week35/html/._week35-bs036.html +++ b/doc/pub/week35/html/._week35-bs036.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    727. Plans for week 35, August 30 -September 3
    728. -
    729. Thursday September 2
    730. +
    731. Plans for week 35
    732. +
    733. Thursday September 1
    734. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    735. Regression analysis, overarching aims
    736. Regression analysis, overarching aims II
    737. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    738. Economy-size SVD
    739. Codes for the SVD
    740. Note about SVD Calculations
    741. -
    742. Friday September 3
    743. +
    744. Friday September 2
    745. Mathematics of the SVD and implications
    746. Example Matrix
    747. Setting up the Matrix to be inverted
    748. diff --git a/doc/pub/week35/html/._week35-bs037.html b/doc/pub/week35/html/._week35-bs037.html index 4817e7bd5..bcfa59dff 100644 --- a/doc/pub/week35/html/._week35-bs037.html +++ b/doc/pub/week35/html/._week35-bs037.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    749. Plans for week 35, August 30 -September 3
    750. -
    751. Thursday September 2
    752. +
    753. Plans for week 35
    754. +
    755. Thursday September 1
    756. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    757. Regression analysis, overarching aims
    758. Regression analysis, overarching aims II
    759. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    760. Economy-size SVD
    761. Codes for the SVD
    762. Note about SVD Calculations
    763. -
    764. Friday September 3
    765. +
    766. Friday September 2
    767. Mathematics of the SVD and implications
    768. Example Matrix
    769. Setting up the Matrix to be inverted
    770. diff --git a/doc/pub/week35/html/._week35-bs038.html b/doc/pub/week35/html/._week35-bs038.html index 9fed27ee2..2c9c5a63f 100644 --- a/doc/pub/week35/html/._week35-bs038.html +++ b/doc/pub/week35/html/._week35-bs038.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    771. Plans for week 35, August 30 -September 3
    772. -
    773. Thursday September 2
    774. +
    775. Plans for week 35
    776. +
    777. Thursday September 1
    778. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    779. Regression analysis, overarching aims
    780. Regression analysis, overarching aims II
    781. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    782. Economy-size SVD
    783. Codes for the SVD
    784. Note about SVD Calculations
    785. -
    786. Friday September 3
    787. +
    788. Friday September 2
    789. Mathematics of the SVD and implications
    790. Example Matrix
    791. Setting up the Matrix to be inverted
    792. diff --git a/doc/pub/week35/html/._week35-bs039.html b/doc/pub/week35/html/._week35-bs039.html index 39c486f19..b8c91d596 100644 --- a/doc/pub/week35/html/._week35-bs039.html +++ b/doc/pub/week35/html/._week35-bs039.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    793. Plans for week 35, August 30 -September 3
    794. -
    795. Thursday September 2
    796. +
    797. Plans for week 35
    798. +
    799. Thursday September 1
    800. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    801. Regression analysis, overarching aims
    802. Regression analysis, overarching aims II
    803. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    804. Economy-size SVD
    805. Codes for the SVD
    806. Note about SVD Calculations
    807. -
    808. Friday September 3
    809. +
    810. Friday September 2
    811. Mathematics of the SVD and implications
    812. Example Matrix
    813. Setting up the Matrix to be inverted
    814. diff --git a/doc/pub/week35/html/._week35-bs040.html b/doc/pub/week35/html/._week35-bs040.html index b3534289e..738eb46db 100644 --- a/doc/pub/week35/html/._week35-bs040.html +++ b/doc/pub/week35/html/._week35-bs040.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    815. Plans for week 35, August 30 -September 3
    816. -
    817. Thursday September 2
    818. +
    819. Plans for week 35
    820. +
    821. Thursday September 1
    822. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    823. Regression analysis, overarching aims
    824. Regression analysis, overarching aims II
    825. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    826. Economy-size SVD
    827. Codes for the SVD
    828. Note about SVD Calculations
    829. -
    830. Friday September 3
    831. +
    832. Friday September 2
    833. Mathematics of the SVD and implications
    834. Example Matrix
    835. Setting up the Matrix to be inverted
    836. diff --git a/doc/pub/week35/html/._week35-bs041.html b/doc/pub/week35/html/._week35-bs041.html index b6d2dd85e..faa165a9a 100644 --- a/doc/pub/week35/html/._week35-bs041.html +++ b/doc/pub/week35/html/._week35-bs041.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    837. Plans for week 35, August 30 -September 3
    838. -
    839. Thursday September 2
    840. +
    841. Plans for week 35
    842. +
    843. Thursday September 1
    844. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    845. Regression analysis, overarching aims
    846. Regression analysis, overarching aims II
    847. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    848. Economy-size SVD
    849. Codes for the SVD
    850. Note about SVD Calculations
    851. -
    852. Friday September 3
    853. +
    854. Friday September 2
    855. Mathematics of the SVD and implications
    856. Example Matrix
    857. Setting up the Matrix to be inverted
    858. diff --git a/doc/pub/week35/html/._week35-bs042.html b/doc/pub/week35/html/._week35-bs042.html index 9c5c42553..cb8c3c730 100644 --- a/doc/pub/week35/html/._week35-bs042.html +++ b/doc/pub/week35/html/._week35-bs042.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    859. Plans for week 35, August 30 -September 3
    860. -
    861. Thursday September 2
    862. +
    863. Plans for week 35
    864. +
    865. Thursday September 1
    866. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    867. Regression analysis, overarching aims
    868. Regression analysis, overarching aims II
    869. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    870. Economy-size SVD
    871. Codes for the SVD
    872. Note about SVD Calculations
    873. -
    874. Friday September 3
    875. +
    876. Friday September 2
    877. Mathematics of the SVD and implications
    878. Example Matrix
    879. Setting up the Matrix to be inverted
    880. diff --git a/doc/pub/week35/html/._week35-bs043.html b/doc/pub/week35/html/._week35-bs043.html index 6ae948f18..d797ab5fc 100644 --- a/doc/pub/week35/html/._week35-bs043.html +++ b/doc/pub/week35/html/._week35-bs043.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    881. Plans for week 35, August 30 -September 3
    882. -
    883. Thursday September 2
    884. +
    885. Plans for week 35
    886. +
    887. Thursday September 1
    888. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    889. Regression analysis, overarching aims
    890. Regression analysis, overarching aims II
    891. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    892. Economy-size SVD
    893. Codes for the SVD
    894. Note about SVD Calculations
    895. -
    896. Friday September 3
    897. +
    898. Friday September 2
    899. Mathematics of the SVD and implications
    900. Example Matrix
    901. Setting up the Matrix to be inverted
    902. diff --git a/doc/pub/week35/html/._week35-bs044.html b/doc/pub/week35/html/._week35-bs044.html index ce5f5ea90..fe536c8a8 100644 --- a/doc/pub/week35/html/._week35-bs044.html +++ b/doc/pub/week35/html/._week35-bs044.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    903. Plans for week 35, August 30 -September 3
    904. -
    905. Thursday September 2
    906. +
    907. Plans for week 35
    908. +
    909. Thursday September 1
    910. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    911. Regression analysis, overarching aims
    912. Regression analysis, overarching aims II
    913. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    914. Economy-size SVD
    915. Codes for the SVD
    916. Note about SVD Calculations
    917. -
    918. Friday September 3
    919. +
    920. Friday September 2
    921. Mathematics of the SVD and implications
    922. Example Matrix
    923. Setting up the Matrix to be inverted
    924. diff --git a/doc/pub/week35/html/._week35-bs045.html b/doc/pub/week35/html/._week35-bs045.html index 6e83a9f37..fddcbe802 100644 --- a/doc/pub/week35/html/._week35-bs045.html +++ b/doc/pub/week35/html/._week35-bs045.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    925. Plans for week 35, August 30 -September 3
    926. -
    927. Thursday September 2
    928. +
    929. Plans for week 35
    930. +
    931. Thursday September 1
    932. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    933. Regression analysis, overarching aims
    934. Regression analysis, overarching aims II
    935. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    936. Economy-size SVD
    937. Codes for the SVD
    938. Note about SVD Calculations
    939. -
    940. Friday September 3
    941. +
    942. Friday September 2
    943. Mathematics of the SVD and implications
    944. Example Matrix
    945. Setting up the Matrix to be inverted
    946. diff --git a/doc/pub/week35/html/._week35-bs046.html b/doc/pub/week35/html/._week35-bs046.html index 800e39296..59e530495 100644 --- a/doc/pub/week35/html/._week35-bs046.html +++ b/doc/pub/week35/html/._week35-bs046.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    947. Plans for week 35, August 30 -September 3
    948. -
    949. Thursday September 2
    950. +
    951. Plans for week 35
    952. +
    953. Thursday September 1
    954. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    955. Regression analysis, overarching aims
    956. Regression analysis, overarching aims II
    957. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    958. Economy-size SVD
    959. Codes for the SVD
    960. Note about SVD Calculations
    961. -
    962. Friday September 3
    963. +
    964. Friday September 2
    965. Mathematics of the SVD and implications
    966. Example Matrix
    967. Setting up the Matrix to be inverted
    968. diff --git a/doc/pub/week35/html/._week35-bs047.html b/doc/pub/week35/html/._week35-bs047.html index c278aa85d..13450aee1 100644 --- a/doc/pub/week35/html/._week35-bs047.html +++ b/doc/pub/week35/html/._week35-bs047.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    969. Plans for week 35, August 30 -September 3
    970. -
    971. Thursday September 2
    972. +
    973. Plans for week 35
    974. +
    975. Thursday September 1
    976. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    977. Regression analysis, overarching aims
    978. Regression analysis, overarching aims II
    979. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    980. Economy-size SVD
    981. Codes for the SVD
    982. Note about SVD Calculations
    983. -
    984. Friday September 3
    985. +
    986. Friday September 2
    987. Mathematics of the SVD and implications
    988. Example Matrix
    989. Setting up the Matrix to be inverted
    990. @@ -375,11 +372,7 @@ MathJax.Hub.Config({

       

       

       

      -

      Friday September 3

      - -

      Video of Lecture from 2020 and handwritten notes

      - -

      More material will be added here, see handwritten notes also. Note that this material will be cleaned up after the lecture of Friday September 3. See the handwritten notes from Friday's lecture at https://github.com/CompPhysics/MachineLearning/tree/master/doc/HandWrittenNotes/2021.

      +

      Friday September 2

      diff --git a/doc/pub/week35/html/._week35-bs048.html b/doc/pub/week35/html/._week35-bs048.html index 91f5fc815..6bb5131a1 100644 --- a/doc/pub/week35/html/._week35-bs048.html +++ b/doc/pub/week35/html/._week35-bs048.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d

    991. Plans for week 35, August 30 -September 3
    992. -
    993. Thursday September 2
    994. +
    995. Plans for week 35
    996. +
    997. Thursday September 1
    998. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    999. Regression analysis, overarching aims
    1000. Regression analysis, overarching aims II
    1001. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1002. Economy-size SVD
    1003. Codes for the SVD
    1004. Note about SVD Calculations
    1005. -
    1006. Friday September 3
    1007. +
    1008. Friday September 2
    1009. Mathematics of the SVD and implications
    1010. Example Matrix
    1011. Setting up the Matrix to be inverted
    1012. diff --git a/doc/pub/week35/html/._week35-bs049.html b/doc/pub/week35/html/._week35-bs049.html index 417930650..68b81a6f1 100644 --- a/doc/pub/week35/html/._week35-bs049.html +++ b/doc/pub/week35/html/._week35-bs049.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1013. Plans for week 35, August 30 -September 3
    1014. -
    1015. Thursday September 2
    1016. +
    1017. Plans for week 35
    1018. +
    1019. Thursday September 1
    1020. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1021. Regression analysis, overarching aims
    1022. Regression analysis, overarching aims II
    1023. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1024. Economy-size SVD
    1025. Codes for the SVD
    1026. Note about SVD Calculations
    1027. -
    1028. Friday September 3
    1029. +
    1030. Friday September 2
    1031. Mathematics of the SVD and implications
    1032. Example Matrix
    1033. Setting up the Matrix to be inverted
    1034. diff --git a/doc/pub/week35/html/._week35-bs050.html b/doc/pub/week35/html/._week35-bs050.html index efb51d14f..33f421c60 100644 --- a/doc/pub/week35/html/._week35-bs050.html +++ b/doc/pub/week35/html/._week35-bs050.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1035. Plans for week 35, August 30 -September 3
    1036. -
    1037. Thursday September 2
    1038. +
    1039. Plans for week 35
    1040. +
    1041. Thursday September 1
    1042. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1043. Regression analysis, overarching aims
    1044. Regression analysis, overarching aims II
    1045. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1046. Economy-size SVD
    1047. Codes for the SVD
    1048. Note about SVD Calculations
    1049. -
    1050. Friday September 3
    1051. +
    1052. Friday September 2
    1053. Mathematics of the SVD and implications
    1054. Example Matrix
    1055. Setting up the Matrix to be inverted
    1056. diff --git a/doc/pub/week35/html/._week35-bs051.html b/doc/pub/week35/html/._week35-bs051.html index 9692ca676..1b56e8180 100644 --- a/doc/pub/week35/html/._week35-bs051.html +++ b/doc/pub/week35/html/._week35-bs051.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1057. Plans for week 35, August 30 -September 3
    1058. -
    1059. Thursday September 2
    1060. +
    1061. Plans for week 35
    1062. +
    1063. Thursday September 1
    1064. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1065. Regression analysis, overarching aims
    1066. Regression analysis, overarching aims II
    1067. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1068. Economy-size SVD
    1069. Codes for the SVD
    1070. Note about SVD Calculations
    1071. -
    1072. Friday September 3
    1073. +
    1074. Friday September 2
    1075. Mathematics of the SVD and implications
    1076. Example Matrix
    1077. Setting up the Matrix to be inverted
    1078. diff --git a/doc/pub/week35/html/._week35-bs052.html b/doc/pub/week35/html/._week35-bs052.html index 841981e05..1486eedaa 100644 --- a/doc/pub/week35/html/._week35-bs052.html +++ b/doc/pub/week35/html/._week35-bs052.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1079. Plans for week 35, August 30 -September 3
    1080. -
    1081. Thursday September 2
    1082. +
    1083. Plans for week 35
    1084. +
    1085. Thursday September 1
    1086. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1087. Regression analysis, overarching aims
    1088. Regression analysis, overarching aims II
    1089. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1090. Economy-size SVD
    1091. Codes for the SVD
    1092. Note about SVD Calculations
    1093. -
    1094. Friday September 3
    1095. +
    1096. Friday September 2
    1097. Mathematics of the SVD and implications
    1098. Example Matrix
    1099. Setting up the Matrix to be inverted
    1100. diff --git a/doc/pub/week35/html/._week35-bs053.html b/doc/pub/week35/html/._week35-bs053.html index 12ab8d2f1..25f343261 100644 --- a/doc/pub/week35/html/._week35-bs053.html +++ b/doc/pub/week35/html/._week35-bs053.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1101. Plans for week 35, August 30 -September 3
    1102. -
    1103. Thursday September 2
    1104. +
    1105. Plans for week 35
    1106. +
    1107. Thursday September 1
    1108. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1109. Regression analysis, overarching aims
    1110. Regression analysis, overarching aims II
    1111. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1112. Economy-size SVD
    1113. Codes for the SVD
    1114. Note about SVD Calculations
    1115. -
    1116. Friday September 3
    1117. +
    1118. Friday September 2
    1119. Mathematics of the SVD and implications
    1120. Example Matrix
    1121. Setting up the Matrix to be inverted
    1122. diff --git a/doc/pub/week35/html/._week35-bs054.html b/doc/pub/week35/html/._week35-bs054.html index f7c64d982..376f7d9fd 100644 --- a/doc/pub/week35/html/._week35-bs054.html +++ b/doc/pub/week35/html/._week35-bs054.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1123. Plans for week 35, August 30 -September 3
    1124. -
    1125. Thursday September 2
    1126. +
    1127. Plans for week 35
    1128. +
    1129. Thursday September 1
    1130. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1131. Regression analysis, overarching aims
    1132. Regression analysis, overarching aims II
    1133. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1134. Economy-size SVD
    1135. Codes for the SVD
    1136. Note about SVD Calculations
    1137. -
    1138. Friday September 3
    1139. +
    1140. Friday September 2
    1141. Mathematics of the SVD and implications
    1142. Example Matrix
    1143. Setting up the Matrix to be inverted
    1144. diff --git a/doc/pub/week35/html/._week35-bs055.html b/doc/pub/week35/html/._week35-bs055.html index 0c84e8e04..2f94e3584 100644 --- a/doc/pub/week35/html/._week35-bs055.html +++ b/doc/pub/week35/html/._week35-bs055.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1145. Plans for week 35, August 30 -September 3
    1146. -
    1147. Thursday September 2
    1148. +
    1149. Plans for week 35
    1150. +
    1151. Thursday September 1
    1152. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1153. Regression analysis, overarching aims
    1154. Regression analysis, overarching aims II
    1155. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1156. Economy-size SVD
    1157. Codes for the SVD
    1158. Note about SVD Calculations
    1159. -
    1160. Friday September 3
    1161. +
    1162. Friday September 2
    1163. Mathematics of the SVD and implications
    1164. Example Matrix
    1165. Setting up the Matrix to be inverted
    1166. diff --git a/doc/pub/week35/html/._week35-bs056.html b/doc/pub/week35/html/._week35-bs056.html index f4f487e95..b64953477 100644 --- a/doc/pub/week35/html/._week35-bs056.html +++ b/doc/pub/week35/html/._week35-bs056.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1167. Plans for week 35, August 30 -September 3
    1168. -
    1169. Thursday September 2
    1170. +
    1171. Plans for week 35
    1172. +
    1173. Thursday September 1
    1174. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1175. Regression analysis, overarching aims
    1176. Regression analysis, overarching aims II
    1177. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1178. Economy-size SVD
    1179. Codes for the SVD
    1180. Note about SVD Calculations
    1181. -
    1182. Friday September 3
    1183. +
    1184. Friday September 2
    1185. Mathematics of the SVD and implications
    1186. Example Matrix
    1187. Setting up the Matrix to be inverted
    1188. diff --git a/doc/pub/week35/html/._week35-bs057.html b/doc/pub/week35/html/._week35-bs057.html index 1bf34488c..496e239a7 100644 --- a/doc/pub/week35/html/._week35-bs057.html +++ b/doc/pub/week35/html/._week35-bs057.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1189. Plans for week 35, August 30 -September 3
    1190. -
    1191. Thursday September 2
    1192. +
    1193. Plans for week 35
    1194. +
    1195. Thursday September 1
    1196. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1197. Regression analysis, overarching aims
    1198. Regression analysis, overarching aims II
    1199. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1200. Economy-size SVD
    1201. Codes for the SVD
    1202. Note about SVD Calculations
    1203. -
    1204. Friday September 3
    1205. +
    1206. Friday September 2
    1207. Mathematics of the SVD and implications
    1208. Example Matrix
    1209. Setting up the Matrix to be inverted
    1210. diff --git a/doc/pub/week35/html/._week35-bs058.html b/doc/pub/week35/html/._week35-bs058.html index e0a360ae8..14717e2b1 100644 --- a/doc/pub/week35/html/._week35-bs058.html +++ b/doc/pub/week35/html/._week35-bs058.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1211. Plans for week 35, August 30 -September 3
    1212. -
    1213. Thursday September 2
    1214. +
    1215. Plans for week 35
    1216. +
    1217. Thursday September 1
    1218. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1219. Regression analysis, overarching aims
    1220. Regression analysis, overarching aims II
    1221. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1222. Economy-size SVD
    1223. Codes for the SVD
    1224. Note about SVD Calculations
    1225. -
    1226. Friday September 3
    1227. +
    1228. Friday September 2
    1229. Mathematics of the SVD and implications
    1230. Example Matrix
    1231. Setting up the Matrix to be inverted
    1232. diff --git a/doc/pub/week35/html/._week35-bs059.html b/doc/pub/week35/html/._week35-bs059.html index 403f33a25..7284f94e1 100644 --- a/doc/pub/week35/html/._week35-bs059.html +++ b/doc/pub/week35/html/._week35-bs059.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1233. Plans for week 35, August 30 -September 3
    1234. -
    1235. Thursday September 2
    1236. +
    1237. Plans for week 35
    1238. +
    1239. Thursday September 1
    1240. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1241. Regression analysis, overarching aims
    1242. Regression analysis, overarching aims II
    1243. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1244. Economy-size SVD
    1245. Codes for the SVD
    1246. Note about SVD Calculations
    1247. -
    1248. Friday September 3
    1249. +
    1250. Friday September 2
    1251. Mathematics of the SVD and implications
    1252. Example Matrix
    1253. Setting up the Matrix to be inverted
    1254. diff --git a/doc/pub/week35/html/._week35-bs060.html b/doc/pub/week35/html/._week35-bs060.html index 4c1a4cf00..e5835d6c5 100644 --- a/doc/pub/week35/html/._week35-bs060.html +++ b/doc/pub/week35/html/._week35-bs060.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1255. Plans for week 35, August 30 -September 3
    1256. -
    1257. Thursday September 2
    1258. +
    1259. Plans for week 35
    1260. +
    1261. Thursday September 1
    1262. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1263. Regression analysis, overarching aims
    1264. Regression analysis, overarching aims II
    1265. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1266. Economy-size SVD
    1267. Codes for the SVD
    1268. Note about SVD Calculations
    1269. -
    1270. Friday September 3
    1271. +
    1272. Friday September 2
    1273. Mathematics of the SVD and implications
    1274. Example Matrix
    1275. Setting up the Matrix to be inverted
    1276. diff --git a/doc/pub/week35/html/._week35-bs061.html b/doc/pub/week35/html/._week35-bs061.html index 882a589e3..01d6060d0 100644 --- a/doc/pub/week35/html/._week35-bs061.html +++ b/doc/pub/week35/html/._week35-bs061.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1277. Plans for week 35, August 30 -September 3
    1278. -
    1279. Thursday September 2
    1280. +
    1281. Plans for week 35
    1282. +
    1283. Thursday September 1
    1284. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1285. Regression analysis, overarching aims
    1286. Regression analysis, overarching aims II
    1287. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1288. Economy-size SVD
    1289. Codes for the SVD
    1290. Note about SVD Calculations
    1291. -
    1292. Friday September 3
    1293. +
    1294. Friday September 2
    1295. Mathematics of the SVD and implications
    1296. Example Matrix
    1297. Setting up the Matrix to be inverted
    1298. diff --git a/doc/pub/week35/html/._week35-bs062.html b/doc/pub/week35/html/._week35-bs062.html index 8ecdb0b6e..8a7fa30c3 100644 --- a/doc/pub/week35/html/._week35-bs062.html +++ b/doc/pub/week35/html/._week35-bs062.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1299. Plans for week 35, August 30 -September 3
    1300. -
    1301. Thursday September 2
    1302. +
    1303. Plans for week 35
    1304. +
    1305. Thursday September 1
    1306. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1307. Regression analysis, overarching aims
    1308. Regression analysis, overarching aims II
    1309. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1310. Economy-size SVD
    1311. Codes for the SVD
    1312. Note about SVD Calculations
    1313. -
    1314. Friday September 3
    1315. +
    1316. Friday September 2
    1317. Mathematics of the SVD and implications
    1318. Example Matrix
    1319. Setting up the Matrix to be inverted
    1320. diff --git a/doc/pub/week35/html/._week35-bs063.html b/doc/pub/week35/html/._week35-bs063.html index 8a34331dc..5655185e8 100644 --- a/doc/pub/week35/html/._week35-bs063.html +++ b/doc/pub/week35/html/._week35-bs063.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1321. Plans for week 35, August 30 -September 3
    1322. -
    1323. Thursday September 2
    1324. +
    1325. Plans for week 35
    1326. +
    1327. Thursday September 1
    1328. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1329. Regression analysis, overarching aims
    1330. Regression analysis, overarching aims II
    1331. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1332. Economy-size SVD
    1333. Codes for the SVD
    1334. Note about SVD Calculations
    1335. -
    1336. Friday September 3
    1337. +
    1338. Friday September 2
    1339. Mathematics of the SVD and implications
    1340. Example Matrix
    1341. Setting up the Matrix to be inverted
    1342. diff --git a/doc/pub/week35/html/._week35-bs064.html b/doc/pub/week35/html/._week35-bs064.html index ad6fc6a47..3c3b8210d 100644 --- a/doc/pub/week35/html/._week35-bs064.html +++ b/doc/pub/week35/html/._week35-bs064.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1343. Plans for week 35, August 30 -September 3
    1344. -
    1345. Thursday September 2
    1346. +
    1347. Plans for week 35
    1348. +
    1349. Thursday September 1
    1350. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1351. Regression analysis, overarching aims
    1352. Regression analysis, overarching aims II
    1353. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1354. Economy-size SVD
    1355. Codes for the SVD
    1356. Note about SVD Calculations
    1357. -
    1358. Friday September 3
    1359. +
    1360. Friday September 2
    1361. Mathematics of the SVD and implications
    1362. Example Matrix
    1363. Setting up the Matrix to be inverted
    1364. diff --git a/doc/pub/week35/html/._week35-bs065.html b/doc/pub/week35/html/._week35-bs065.html index bbf82b1ac..07b75c5c6 100644 --- a/doc/pub/week35/html/._week35-bs065.html +++ b/doc/pub/week35/html/._week35-bs065.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1365. Plans for week 35, August 30 -September 3
    1366. -
    1367. Thursday September 2
    1368. +
    1369. Plans for week 35
    1370. +
    1371. Thursday September 1
    1372. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1373. Regression analysis, overarching aims
    1374. Regression analysis, overarching aims II
    1375. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1376. Economy-size SVD
    1377. Codes for the SVD
    1378. Note about SVD Calculations
    1379. -
    1380. Friday September 3
    1381. +
    1382. Friday September 2
    1383. Mathematics of the SVD and implications
    1384. Example Matrix
    1385. Setting up the Matrix to be inverted
    1386. diff --git a/doc/pub/week35/html/._week35-bs066.html b/doc/pub/week35/html/._week35-bs066.html index 9bdcb712d..63fc9acbe 100644 --- a/doc/pub/week35/html/._week35-bs066.html +++ b/doc/pub/week35/html/._week35-bs066.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1387. Plans for week 35, August 30 -September 3
    1388. -
    1389. Thursday September 2
    1390. +
    1391. Plans for week 35
    1392. +
    1393. Thursday September 1
    1394. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1395. Regression analysis, overarching aims
    1396. Regression analysis, overarching aims II
    1397. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1398. Economy-size SVD
    1399. Codes for the SVD
    1400. Note about SVD Calculations
    1401. -
    1402. Friday September 3
    1403. +
    1404. Friday September 2
    1405. Mathematics of the SVD and implications
    1406. Example Matrix
    1407. Setting up the Matrix to be inverted
    1408. diff --git a/doc/pub/week35/html/._week35-bs067.html b/doc/pub/week35/html/._week35-bs067.html index 09d18adea..f318f3b9b 100644 --- a/doc/pub/week35/html/._week35-bs067.html +++ b/doc/pub/week35/html/._week35-bs067.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1409. Plans for week 35, August 30 -September 3
    1410. -
    1411. Thursday September 2
    1412. +
    1413. Plans for week 35
    1414. +
    1415. Thursday September 1
    1416. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1417. Regression analysis, overarching aims
    1418. Regression analysis, overarching aims II
    1419. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1420. Economy-size SVD
    1421. Codes for the SVD
    1422. Note about SVD Calculations
    1423. -
    1424. Friday September 3
    1425. +
    1426. Friday September 2
    1427. Mathematics of the SVD and implications
    1428. Example Matrix
    1429. Setting up the Matrix to be inverted
    1430. diff --git a/doc/pub/week35/html/._week35-bs068.html b/doc/pub/week35/html/._week35-bs068.html index 085cd6c92..8790032aa 100644 --- a/doc/pub/week35/html/._week35-bs068.html +++ b/doc/pub/week35/html/._week35-bs068.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1431. Plans for week 35, August 30 -September 3
    1432. -
    1433. Thursday September 2
    1434. +
    1435. Plans for week 35
    1436. +
    1437. Thursday September 1
    1438. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1439. Regression analysis, overarching aims
    1440. Regression analysis, overarching aims II
    1441. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1442. Economy-size SVD
    1443. Codes for the SVD
    1444. Note about SVD Calculations
    1445. -
    1446. Friday September 3
    1447. +
    1448. Friday September 2
    1449. Mathematics of the SVD and implications
    1450. Example Matrix
    1451. Setting up the Matrix to be inverted
    1452. diff --git a/doc/pub/week35/html/._week35-bs069.html b/doc/pub/week35/html/._week35-bs069.html index a06aabd22..928f92d40 100644 --- a/doc/pub/week35/html/._week35-bs069.html +++ b/doc/pub/week35/html/._week35-bs069.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1453. Plans for week 35, August 30 -September 3
    1454. -
    1455. Thursday September 2
    1456. +
    1457. Plans for week 35
    1458. +
    1459. Thursday September 1
    1460. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1461. Regression analysis, overarching aims
    1462. Regression analysis, overarching aims II
    1463. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1464. Economy-size SVD
    1465. Codes for the SVD
    1466. Note about SVD Calculations
    1467. -
    1468. Friday September 3
    1469. +
    1470. Friday September 2
    1471. Mathematics of the SVD and implications
    1472. Example Matrix
    1473. Setting up the Matrix to be inverted
    1474. diff --git a/doc/pub/week35/html/week35-bs.html b/doc/pub/week35/html/week35-bs.html index f6f977e68..e6f5e6ee0 100644 --- a/doc/pub/week35/html/week35-bs.html +++ b/doc/pub/week35/html/week35-bs.html @@ -36,11 +36,8 @@ doconce format html week35.do.txt --html_style=bootstrap --pygments_html_style=d
    1475. Plans for week 35, August 30 -September 3
    1476. -
    1477. Thursday September 2
    1478. +
    1479. Plans for week 35
    1480. +
    1481. Thursday September 1
    1482. Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week
    1483. Regression analysis, overarching aims
    1484. Regression analysis, overarching aims II
    1485. @@ -339,7 +336,7 @@ MathJax.Hub.Config({
    1486. Economy-size SVD
    1487. Codes for the SVD
    1488. Note about SVD Calculations
    1489. -
    1490. Friday September 3
    1491. +
    1492. Friday September 2
    1493. Mathematics of the SVD and implications
    1494. Example Matrix
    1495. Setting up the Matrix to be inverted
    1496. @@ -393,7 +390,7 @@ MathJax.Hub.Config({
      -

      Nov 3, 2021

      +

      Aug 23, 2022


      @@ -432,7 +429,7 @@ MathJax.Hub.Config({ -->
      - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
      diff --git a/doc/pub/week35/html/week35-reveal.html b/doc/pub/week35/html/week35-reveal.html index de9c10b7e..65b2bf9ba 100644 --- a/doc/pub/week35/html/week35-reveal.html +++ b/doc/pub/week35/html/week35-reveal.html @@ -184,30 +184,28 @@ MathJax.Hub.Config({
      -

      Nov 3, 2021

      +

      Aug 23, 2022


      - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
      -

      Plans for week 35, August 30 -September 3

      +

      Plans for week 35

      -

      Thursday September 2

      +

      Thursday September 1

      The main topics on Thursday are:

        @@ -2384,11 +2382,7 @@ example
      -

      Friday September 3

      - -

      Video of Lecture from 2020 and handwritten notes

      - -

      More material will be added here, see handwritten notes also. Note that this material will be cleaned up after the lecture of Friday September 3. See the handwritten notes from Friday's lecture at https://github.com/CompPhysics/MachineLearning/tree/master/doc/HandWrittenNotes/2021.

      +

      Friday September 2

      diff --git a/doc/pub/week35/html/week35-solarized.html b/doc/pub/week35/html/week35-solarized.html index 553b1e071..78cf9e358 100644 --- a/doc/pub/week35/html/week35-solarized.html +++ b/doc/pub/week35/html/week35-solarized.html @@ -63,11 +63,8 @@ div.toc p,a {










      -

      Plans for week 35, August 30 -September 3

      +

      Plans for week 35











      -

      Thursday September 2

      +

      Thursday September 1

      The main topics on Thursday are:

        @@ -2381,11 +2376,7 @@ example











        -

        Friday September 3

        - -

        Video of Lecture from 2020 and handwritten notes

        - -

        More material will be added here, see handwritten notes also. Note that this material will be cleaned up after the lecture of Friday September 3. See the handwritten notes from Friday's lecture at https://github.com/CompPhysics/MachineLearning/tree/master/doc/HandWrittenNotes/2021.

        +

        Friday September 2











        Mathematics of the SVD and implications

        @@ -3688,7 +3679,7 @@ model fits the data best.
        - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
        diff --git a/doc/pub/week35/html/week35.html b/doc/pub/week35/html/week35.html index c058a7206..3f4304905 100644 --- a/doc/pub/week35/html/week35.html +++ b/doc/pub/week35/html/week35.html @@ -140,11 +140,8 @@ div.toc p,a {










        -

        Plans for week 35, August 30 -September 3

        +

        Plans for week 35











        -

        Thursday September 2

        +

        Thursday September 1

        The main topics on Thursday are:

          @@ -2458,11 +2453,7 @@ example











          -

          Friday September 3

          - -

          Video of Lecture from 2020 and handwritten notes

          - -

          More material will be added here, see handwritten notes also. Note that this material will be cleaned up after the lecture of Friday September 3. See the handwritten notes from Friday's lecture at https://github.com/CompPhysics/MachineLearning/tree/master/doc/HandWrittenNotes/2021.

          +

          Friday September 2











          Mathematics of the SVD and implications

          @@ -3765,7 +3756,7 @@ model fits the data best.
          - © 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license + © 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license
          diff --git a/doc/pub/week35/ipynb/ipynb-week35-src.tar.gz b/doc/pub/week35/ipynb/ipynb-week35-src.tar.gz index f2a68d3a0..ed3d0298f 100644 Binary files a/doc/pub/week35/ipynb/ipynb-week35-src.tar.gz and b/doc/pub/week35/ipynb/ipynb-week35-src.tar.gz differ diff --git a/doc/pub/week35/ipynb/week35.ipynb b/doc/pub/week35/ipynb/week35.ipynb index c71ce6a89..4b48ffc7e 100644 --- a/doc/pub/week35/ipynb/week35.ipynb +++ b/doc/pub/week35/ipynb/week35.ipynb @@ -2,8 +2,10 @@ "cells": [ { "cell_type": "markdown", - "id": "26ae76a1", - "metadata": {}, + "id": "6d1e5582", + "metadata": { + "editable": true + }, "source": [ "\n", @@ -12,41 +14,43 @@ }, { "cell_type": "markdown", - "id": "890d8431", - "metadata": {}, + "id": "46eaf2aa", + "metadata": { + "editable": true + }, "source": [ "# Week 35: From Ordinary Linear Regression to Ridge and Lasso Regression\n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Nov 3, 2021**\n", + "Date: **Aug 23, 2022**\n", "\n", - "Copyright 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license" + "Copyright 1999-2022, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license" ] }, { "cell_type": "markdown", - "id": "434881ac", - "metadata": {}, + "id": "36c46d50", + "metadata": { + "editable": true + }, "source": [ - "## Plans for week 35, August 30 -September 3\n", + "## Plans for week 35\n", "\n", "* Thursday: Review of ordinary Least Squares with applications and discussion of Ridge Regression and Singular Value Decomposition\n", "\n", - "* [Video of lecture Thursday](https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember2.mp4?vrtx=view-as-webpage).\n", - "\n", "* Friday: Analysis of Ridge and Lasso Regression and links with Singular Value Decomposition\n", "\n", - "* [Video of lecture Friday](https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember3.mp4?vrtx=view-as-webpage)\n", - "\n", "* [Video series on the SVD](http://databookuw.com/page-2/page-4/). Highly recommended." ] }, { "cell_type": "markdown", - "id": "797fbc70", - "metadata": {}, + "id": "141bd80f", + "metadata": { + "editable": true + }, "source": [ - "## Thursday September 2\n", + "## Thursday September 1\n", "\n", "The main topics on Thursday are:\n", "1. Repetition from last week on linear regression\n", @@ -60,8 +64,10 @@ }, { "cell_type": "markdown", - "id": "a28f0549", - "metadata": {}, + "id": "0feb829b", + "metadata": { + "editable": true + }, "source": [ "## Why Linear Regression (aka Ordinary Least Squares and family), repeat from last week\n", "\n", @@ -92,8 +98,10 @@ }, { "cell_type": "markdown", - "id": "9f12cdfb", - "metadata": {}, + "id": "e29e758f", + "metadata": { + "editable": true + }, "source": [ "## Regression analysis, overarching aims\n", "\n", @@ -112,8 +120,10 @@ }, { "cell_type": "markdown", - "id": "fe22bbd9", - "metadata": {}, + "id": "56fea34b", + "metadata": { + "editable": true + }, "source": [ "## Regression analysis, overarching aims II\n", "\n", @@ -138,8 +148,10 @@ }, { "cell_type": "markdown", - "id": "88accdb4", - "metadata": {}, + "id": "873b3cb3", + "metadata": { + "editable": true + }, "source": [ "## Examples\n", "In order to understand the relation among the predictors $p$, the set of data $n$ and the target (outcome, output etc) $\\boldsymbol{y}$,\n", @@ -151,8 +163,10 @@ }, { "cell_type": "markdown", - "id": "9e3bb9b4", - "metadata": {}, + "id": "268b1767", + "metadata": { + "editable": true + }, "source": [ "$$\n", "BE(A) = a_0+a_1A+a_2A^{2/3}+a_3A^{-1/3}+a_4A^{-1},\n", @@ -161,8 +175,10 @@ }, { "cell_type": "markdown", - "id": "e7cf3568", - "metadata": {}, + "id": "1b6c2011", + "metadata": { + "editable": true + }, "source": [ "we have five predictors, that is the intercept, the $A$ dependent term, the $A^{2/3}$ term and the $A^{-1/3}$ and $A^{-1}$ terms.\n", "This gives $p=0,1,2,3,4$. Furthermore we have $n$ entries for each predictor. It means that our design matrix is a \n", @@ -174,8 +190,10 @@ }, { "cell_type": "markdown", - "id": "28d154ab", - "metadata": {}, + "id": "43a1b529", + "metadata": { + "editable": true + }, "source": [ "## General linear models\n", "Before we proceed let us study a case from linear algebra where we aim at fitting a set of data $\\boldsymbol{y}=[y_0,y_1,\\dots,y_{n-1}]$. We could think of these data as a result of an experiment or a complicated numerical experiment. These data are functions of a series of variables $\\boldsymbol{x}=[x_0,x_1,\\dots,x_{n-1}]$, that is $y_i = y(x_i)$ with $i=0,1,2,\\dots,n-1$. The variables $x_i$ could represent physical quantities like time, temperature, position etc. We assume that $y(x)$ is a smooth function. \n", @@ -185,8 +203,10 @@ }, { "cell_type": "markdown", - "id": "471571ac", - "metadata": {}, + "id": "2fdc6a4a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "y=y(x) \\rightarrow y(x_i)=\\tilde{y}_i+\\epsilon_i=\\sum_{j=0}^{n-1} \\beta_j x_i^j+\\epsilon_i,\n", @@ -195,16 +215,20 @@ }, { "cell_type": "markdown", - "id": "55f3ec65", - "metadata": {}, + "id": "19f0111e", + "metadata": { + "editable": true + }, "source": [ "where $\\epsilon_i$ is the error in our approximation." ] }, { "cell_type": "markdown", - "id": "a8364a31", - "metadata": {}, + "id": "323ebc87", + "metadata": { + "editable": true + }, "source": [ "## Rewriting the fitting procedure as a linear algebra problem\n", "For every set of values $y_i,x_i$ we have thus the corresponding set of equations" @@ -212,8 +236,10 @@ }, { "cell_type": "markdown", - "id": "4a97ef95", - "metadata": {}, + "id": "0296a976", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*}\n", @@ -228,8 +254,10 @@ }, { "cell_type": "markdown", - "id": "f6fa4c72", - "metadata": {}, + "id": "5f9d2c53", + "metadata": { + "editable": true + }, "source": [ "## Rewriting the fitting procedure as a linear algebra problem, more details\n", "Defining the vectors" @@ -237,8 +265,10 @@ }, { "cell_type": "markdown", - "id": "c9ca1dc8", - "metadata": {}, + "id": "c6df848b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{y} = [y_0,y_1, y_2,\\dots, y_{n-1}]^T,\n", @@ -247,16 +277,20 @@ }, { "cell_type": "markdown", - "id": "8b769bbc", - "metadata": {}, + "id": "7d6cf42a", + "metadata": { + "editable": true + }, "source": [ "and" ] }, { "cell_type": "markdown", - "id": "1bb26ed0", - "metadata": {}, + "id": "e63839de", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\beta} = [\\beta_0,\\beta_1, \\beta_2,\\dots, \\beta_{n-1}]^T,\n", @@ -265,16 +299,20 @@ }, { "cell_type": "markdown", - "id": "9dda37f7", - "metadata": {}, + "id": "8285f1f7", + "metadata": { + "editable": true + }, "source": [ "and" ] }, { "cell_type": "markdown", - "id": "01376567", - "metadata": {}, + "id": "2cd71f12", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\epsilon} = [\\epsilon_0,\\epsilon_1, \\epsilon_2,\\dots, \\epsilon_{n-1}]^T,\n", @@ -283,16 +321,20 @@ }, { "cell_type": "markdown", - "id": "6d470e53", - "metadata": {}, + "id": "9a192c37", + "metadata": { + "editable": true + }, "source": [ "and the design matrix" ] }, { "cell_type": "markdown", - "id": "923ff5eb", - "metadata": {}, + "id": "9811a878", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}=\n", @@ -308,16 +350,20 @@ }, { "cell_type": "markdown", - "id": "15ccdf9e", - "metadata": {}, + "id": "15ee0e7c", + "metadata": { + "editable": true + }, "source": [ "we can rewrite our equations as" ] }, { "cell_type": "markdown", - "id": "b7d4c290", - "metadata": {}, + "id": "1c4bc46a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{y} = \\boldsymbol{X}\\boldsymbol{\\beta}+\\boldsymbol{\\epsilon}.\n", @@ -326,16 +372,20 @@ }, { "cell_type": "markdown", - "id": "27af50a7", - "metadata": {}, + "id": "0787965f", + "metadata": { + "editable": true + }, "source": [ "The above design matrix is called a [Vandermonde matrix](https://en.wikipedia.org/wiki/Vandermonde_matrix)." ] }, { "cell_type": "markdown", - "id": "7dd2cd83", - "metadata": {}, + "id": "fbb75ec9", + "metadata": { + "editable": true + }, "source": [ "## Generalizing the fitting procedure as a linear algebra problem\n", "\n", @@ -348,8 +398,10 @@ }, { "cell_type": "markdown", - "id": "635ecdc8", - "metadata": {}, + "id": "5ed9e388", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*}\n", @@ -366,16 +418,20 @@ }, { "cell_type": "markdown", - "id": "24e2fd35", - "metadata": {}, + "id": "fc197985", + "metadata": { + "editable": true + }, "source": [ "**Note that we have $p=n$ here. The matrix is symmetric. This is generally not the case!**" ] }, { "cell_type": "markdown", - "id": "480d9d03", - "metadata": {}, + "id": "09c5f4cd", + "metadata": { + "editable": true + }, "source": [ "## Generalizing the fitting procedure as a linear algebra problem\n", "We redefine in turn the matrix $\\boldsymbol{X}$ as" @@ -383,8 +439,10 @@ }, { "cell_type": "markdown", - "id": "3d9b2af3", - "metadata": {}, + "id": "c882cf68", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}=\n", @@ -400,16 +458,20 @@ }, { "cell_type": "markdown", - "id": "a3ced18b", - "metadata": {}, + "id": "d7131338", + "metadata": { + "editable": true + }, "source": [ "and without loss of generality we rewrite again our equations as" ] }, { "cell_type": "markdown", - "id": "1f72e12d", - "metadata": {}, + "id": "d6467190", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{y} = \\boldsymbol{X}\\boldsymbol{\\beta}+\\boldsymbol{\\epsilon}.\n", @@ -418,16 +480,20 @@ }, { "cell_type": "markdown", - "id": "47eda213", - "metadata": {}, + "id": "23b406d4", + "metadata": { + "editable": true + }, "source": [ "The left-hand side of this equation is kwown. Our error vector $\\boldsymbol{\\epsilon}$ and the parameter vector $\\boldsymbol{\\beta}$ are our unknow quantities. How can we obtain the optimal set of $\\beta_i$ values?" ] }, { "cell_type": "markdown", - "id": "169cfe9d", - "metadata": {}, + "id": "9bc80165", + "metadata": { + "editable": true + }, "source": [ "## Optimizing our parameters\n", "We have defined the matrix $\\boldsymbol{X}$ via the equations" @@ -435,8 +501,10 @@ }, { "cell_type": "markdown", - "id": "a2180298", - "metadata": {}, + "id": "588a135a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*}\n", @@ -453,8 +521,10 @@ }, { "cell_type": "markdown", - "id": "d515ebce", - "metadata": {}, + "id": "8fa1a482", + "metadata": { + "editable": true + }, "source": [ "As we noted above, we stayed with a system with the design matrix \n", " $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times n}$, that is we have $p=n$. For reasons to come later (algorithmic arguments) we will hereafter define \n", @@ -463,8 +533,10 @@ }, { "cell_type": "markdown", - "id": "7d67b025", - "metadata": {}, + "id": "ae140b67", + "metadata": { + "editable": true + }, "source": [ "## Our model for the nuclear binding energies\n", "\n", @@ -476,161 +548,12 @@ { "cell_type": "code", "execution_count": 1, - "id": "be62aa5c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
          \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
          1AA^(2/3)A^(-1/3)1/A
          A
          41.04.02.5198420.6299610.250000
          51.05.02.9240180.5848040.200000
          61.06.03.3019270.5503210.166667
          71.07.03.6593060.5227580.142857
          81.08.04.0000000.5000000.125000
          ..................
          2641.0264.041.1531060.1558830.003788
          2651.0265.041.2569620.1556870.003774
          2661.0266.041.3606880.1554910.003759
          2691.0269.041.6710890.1549110.003717
          2701.0270.041.7743000.1547200.003704
          \n", - "

          264 rows × 5 columns

          \n", - "
          " - ], - "text/plain": [ - " 1 A A^(2/3) A^(-1/3) 1/A\n", - "A \n", - "4 1.0 4.0 2.519842 0.629961 0.250000\n", - "5 1.0 5.0 2.924018 0.584804 0.200000\n", - "6 1.0 6.0 3.301927 0.550321 0.166667\n", - "7 1.0 7.0 3.659306 0.522758 0.142857\n", - "8 1.0 8.0 4.000000 0.500000 0.125000\n", - ".. ... ... ... ... ...\n", - "264 1.0 264.0 41.153106 0.155883 0.003788\n", - "265 1.0 265.0 41.256962 0.155687 0.003774\n", - "266 1.0 266.0 41.360688 0.155491 0.003759\n", - "269 1.0 269.0 41.671089 0.154911 0.003717\n", - "270 1.0 270.0 41.774300 0.154720 0.003704\n", - "\n", - "[264 rows x 5 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "a29a6b0c", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "%matplotlib inline\n", "\n", @@ -707,16 +630,20 @@ }, { "cell_type": "markdown", - "id": "3ae8b693", - "metadata": {}, + "id": "b9c79b70", + "metadata": { + "editable": true + }, "source": [ "With $\\boldsymbol{\\beta}\\in {\\mathbb{R}}^{p\\times 1}$, it means that we will hereafter write our equations for the approximation as" ] }, { "cell_type": "markdown", - "id": "bbb85729", - "metadata": {}, + "id": "ba640b20", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\tilde{y}}= \\boldsymbol{X}\\boldsymbol{\\beta},\n", @@ -725,16 +652,20 @@ }, { "cell_type": "markdown", - "id": "5acf922c", - "metadata": {}, + "id": "063863e9", + "metadata": { + "editable": true + }, "source": [ "throughout these lectures." ] }, { "cell_type": "markdown", - "id": "919a84f2", - "metadata": {}, + "id": "31d6838d", + "metadata": { + "editable": true + }, "source": [ "## Optimizing our parameters, more details\n", "With the above we use the design matrix to define the approximation $\\boldsymbol{\\tilde{y}}$ via the unknown quantity $\\boldsymbol{\\beta}$ as" @@ -742,8 +673,10 @@ }, { "cell_type": "markdown", - "id": "1b793777", - "metadata": {}, + "id": "649a8d7a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\tilde{y}}= \\boldsymbol{X}\\boldsymbol{\\beta},\n", @@ -752,16 +685,20 @@ }, { "cell_type": "markdown", - "id": "7556c68c", - "metadata": {}, + "id": "186cda54", + "metadata": { + "editable": true + }, "source": [ "and in order to find the optimal parameters $\\beta_i$ instead of solving the above linear algebra problem, we define a function which gives a measure of the spread between the values $y_i$ (which represent hopefully the exact values) and the parameterized values $\\tilde{y}_i$, namely" ] }, { "cell_type": "markdown", - "id": "aa335b7c", - "metadata": {}, + "id": "4507e794", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{\\beta})=\\frac{1}{n}\\sum_{i=0}^{n-1}\\left(y_i-\\tilde{y}_i\\right)^2=\\frac{1}{n}\\left\\{\\left(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}}\\right)^T\\left(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}}\\right)\\right\\},\n", @@ -770,16 +707,20 @@ }, { "cell_type": "markdown", - "id": "b33853bc", - "metadata": {}, + "id": "3514ca65", + "metadata": { + "editable": true + }, "source": [ "or using the matrix $\\boldsymbol{X}$ and in a more compact matrix-vector notation as" ] }, { "cell_type": "markdown", - "id": "b6930121", - "metadata": {}, + "id": "07d2822f", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{\\beta})=\\frac{1}{n}\\left\\{\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)\\right\\}.\n", @@ -788,8 +729,10 @@ }, { "cell_type": "markdown", - "id": "6fd23574", - "metadata": {}, + "id": "fb1facee", + "metadata": { + "editable": true + }, "source": [ "This function is one possible way to define the so-called cost function.\n", "\n", @@ -799,8 +742,10 @@ }, { "cell_type": "markdown", - "id": "e1214ba2", - "metadata": {}, + "id": "7df401c6", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{\\beta})=\\frac{1}{2n}\\sum_{i=0}^{n-1}\\left(y_i-\\tilde{y}_i\\right)^2,\n", @@ -809,16 +754,20 @@ }, { "cell_type": "markdown", - "id": "c51c03b5", - "metadata": {}, + "id": "9e849b79", + "metadata": { + "editable": true + }, "source": [ "since when taking the first derivative with respect to the unknown parameters $\\beta$, the factor of $2$ cancels out." ] }, { "cell_type": "markdown", - "id": "fbeeb5c1", - "metadata": {}, + "id": "3b11f9a6", + "metadata": { + "editable": true + }, "source": [ "## Interpretations and optimizing our parameters\n", "\n", @@ -827,8 +776,10 @@ }, { "cell_type": "markdown", - "id": "bbf3d893", - "metadata": {}, + "id": "22331d1b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{\\beta})=\\frac{1}{n}\\left\\{\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)\\right\\},\n", @@ -837,8 +788,10 @@ }, { "cell_type": "markdown", - "id": "0ed621c2", - "metadata": {}, + "id": "3cef7e7c", + "metadata": { + "editable": true + }, "source": [ "can be linked to the variance of the quantity $y_i$ if we interpret the latter as the mean value. \n", "When linking (see the discussion below) with the maximum likelihood approach below, we will indeed interpret $y_i$ as a mean value" @@ -846,8 +799,10 @@ }, { "cell_type": "markdown", - "id": "9be95ee2", - "metadata": {}, + "id": "f16afb29", + "metadata": { + "editable": true + }, "source": [ "$$\n", "y_{i}=\\langle y_i \\rangle = \\beta_0x_{i,0}+\\beta_1x_{i,1}+\\beta_2x_{i,2}+\\dots+\\beta_{n-1}x_{i,n-1}+\\epsilon_i,\n", @@ -856,8 +811,10 @@ }, { "cell_type": "markdown", - "id": "234ddf49", - "metadata": {}, + "id": "6519e27d", + "metadata": { + "editable": true + }, "source": [ "where $\\langle y_i \\rangle$ is the mean value. Keep in mind also that\n", "till now we have treated $y_i$ as the exact value. Normally, the\n", @@ -873,8 +830,10 @@ }, { "cell_type": "markdown", - "id": "ef177e0d", - "metadata": {}, + "id": "35f502e2", + "metadata": { + "editable": true + }, "source": [ "$$\n", "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in\n", @@ -884,16 +843,20 @@ }, { "cell_type": "markdown", - "id": "066c1c10", - "metadata": {}, + "id": "c4514d1f", + "metadata": { + "editable": true + }, "source": [ "In practical terms it means we will require" ] }, { "cell_type": "markdown", - "id": "e0e0d740", - "metadata": {}, + "id": "c800e873", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial C(\\boldsymbol{\\beta})}{\\partial \\beta_j} = \\frac{\\partial }{\\partial \\beta_j}\\left[ \\frac{1}{n}\\sum_{i=0}^{n-1}\\left(y_i-\\beta_0x_{i,0}-\\beta_1x_{i,1}-\\beta_2x_{i,2}-\\dots-\\beta_{n-1}x_{i,n-1}\\right)^2\\right]=0,\n", @@ -902,16 +865,20 @@ }, { "cell_type": "markdown", - "id": "623edac9", - "metadata": {}, + "id": "6d783225", + "metadata": { + "editable": true + }, "source": [ "which results in" ] }, { "cell_type": "markdown", - "id": "787d2117", - "metadata": {}, + "id": "71a87f0d", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial C(\\boldsymbol{\\beta})}{\\partial \\beta_j} = -\\frac{2}{n}\\left[ \\sum_{i=0}^{n-1}x_{ij}\\left(y_i-\\beta_0x_{i,0}-\\beta_1x_{i,1}-\\beta_2x_{i,2}-\\dots-\\beta_{n-1}x_{i,n-1}\\right)\\right]=0,\n", @@ -920,16 +887,20 @@ }, { "cell_type": "markdown", - "id": "877597cf", - "metadata": {}, + "id": "5174c8a4", + "metadata": { + "editable": true + }, "source": [ "or in a matrix-vector form as" ] }, { "cell_type": "markdown", - "id": "8d770e9d", - "metadata": {}, + "id": "d0763025", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial C(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}} = 0 = \\boldsymbol{X}^T\\left( \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right).\n", @@ -938,8 +909,10 @@ }, { "cell_type": "markdown", - "id": "b1dfe8bf", - "metadata": {}, + "id": "789238c8", + "metadata": { + "editable": true + }, "source": [ "## Interpretations and optimizing our parameters\n", "We can rewrite" @@ -947,8 +920,10 @@ }, { "cell_type": "markdown", - "id": "0c3505c9", - "metadata": {}, + "id": "0938c59b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial C(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}} = 0 = \\boldsymbol{X}^T\\left( \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right),\n", @@ -957,16 +932,20 @@ }, { "cell_type": "markdown", - "id": "6096739c", - "metadata": {}, + "id": "c6540fd2", + "metadata": { + "editable": true + }, "source": [ "as" ] }, { "cell_type": "markdown", - "id": "435f4a55", - "metadata": {}, + "id": "54964148", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{y} = \\boldsymbol{X}^T\\boldsymbol{X}\\boldsymbol{\\beta},\n", @@ -975,16 +954,20 @@ }, { "cell_type": "markdown", - "id": "dbf7ae4d", - "metadata": {}, + "id": "da0322ca", + "metadata": { + "editable": true + }, "source": [ "and if the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ is invertible we have the solution" ] }, { "cell_type": "markdown", - "id": "6745642f", - "metadata": {}, + "id": "b9c08b48", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\beta} =\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", @@ -993,8 +976,10 @@ }, { "cell_type": "markdown", - "id": "ddda6f20", - "metadata": {}, + "id": "7281f2ba", + "metadata": { + "editable": true + }, "source": [ "We note also that since our design matrix is defined as $\\boldsymbol{X}\\in\n", "{\\mathbb{R}}^{n\\times p}$, the product $\\boldsymbol{X}^T\\boldsymbol{X} \\in\n", @@ -1012,8 +997,10 @@ }, { "cell_type": "markdown", - "id": "b9cf4eae", - "metadata": {}, + "id": "333c8590", + "metadata": { + "editable": true + }, "source": [ "## Some useful matrix and vector expressions\n", "\n", @@ -1023,8 +1010,10 @@ }, { "cell_type": "markdown", - "id": "be7471e0", - "metadata": {}, + "id": "92e4efbe", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial (\\boldsymbol{b}^T\\boldsymbol{a})}{\\partial \\boldsymbol{a}} = \\boldsymbol{b},\n", @@ -1033,8 +1022,10 @@ }, { "cell_type": "markdown", - "id": "345c6f7c", - "metadata": {}, + "id": "4d4b642a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial (\\boldsymbol{a}^T\\boldsymbol{A}\\boldsymbol{a})}{\\partial \\boldsymbol{a}} = (\\boldsymbol{A}+\\boldsymbol{A}^T)\\boldsymbol{a},\n", @@ -1043,8 +1034,10 @@ }, { "cell_type": "markdown", - "id": "9fd2aec7", - "metadata": {}, + "id": "8319b7a5", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial tr(\\boldsymbol{B}\\boldsymbol{A})}{\\partial \\boldsymbol{A}} = \\boldsymbol{B}^T,\n", @@ -1053,8 +1046,10 @@ }, { "cell_type": "markdown", - "id": "8f327bae", - "metadata": {}, + "id": "bd90a54b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial \\log{\\vert\\boldsymbol{A}\\vert}}{\\partial \\boldsymbol{A}} = (\\boldsymbol{A}^{-1})^T.\n", @@ -1063,8 +1058,10 @@ }, { "cell_type": "markdown", - "id": "37b8427f", - "metadata": {}, + "id": "7a693f02", + "metadata": { + "editable": true + }, "source": [ "## Meet the Hessian Matrix\n", "\n", @@ -1077,8 +1074,10 @@ }, { "cell_type": "markdown", - "id": "84f05dc0", - "metadata": {}, + "id": "34b447d8", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial}{\\partial \\boldsymbol{\\beta}^T}\\frac{\\partial C(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}} =\\frac{\\partial}{\\partial \\boldsymbol{\\beta}}\\left[-\\frac{2}{n}\\boldsymbol{X}^T\\left( \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)\\right]=\\frac{2}{n}\\boldsymbol{X}^T\\boldsymbol{X}.\n", @@ -1087,16 +1086,20 @@ }, { "cell_type": "markdown", - "id": "f6b69e17", - "metadata": {}, + "id": "00da1668", + "metadata": { + "editable": true + }, "source": [ "The Hessian matrix plays an important role and is defined here as" ] }, { "cell_type": "markdown", - "id": "5ad43036", - "metadata": {}, + "id": "b6ddebf8", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{H}=\\boldsymbol{X}^T\\boldsymbol{X}.\n", @@ -1105,8 +1108,10 @@ }, { "cell_type": "markdown", - "id": "e0697e67", - "metadata": {}, + "id": "0af94b91", + "metadata": { + "editable": true + }, "source": [ "For ordinary least squares, it is inversely proportional (derivation\n", "next week) with the variance of the optimal parameters\n", @@ -1121,8 +1126,10 @@ }, { "cell_type": "markdown", - "id": "318716a4", - "metadata": {}, + "id": "51cc7a74", + "metadata": { + "editable": true + }, "source": [ "## Interpretations and optimizing our parameters\n", "The residuals $\\boldsymbol{\\epsilon}$ are in turn given by" @@ -1130,8 +1137,10 @@ }, { "cell_type": "markdown", - "id": "9bf30c19", - "metadata": {}, + "id": "ff17b4b8", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\epsilon} = \\boldsymbol{y}-\\boldsymbol{\\tilde{y}} = \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta},\n", @@ -1140,16 +1149,20 @@ }, { "cell_type": "markdown", - "id": "c6505dc1", - "metadata": {}, + "id": "835f5615", + "metadata": { + "editable": true + }, "source": [ "and with" ] }, { "cell_type": "markdown", - "id": "1271eed1", - "metadata": {}, + "id": "b233c766", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\left( \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)= 0,\n", @@ -1158,16 +1171,20 @@ }, { "cell_type": "markdown", - "id": "d38159b8", - "metadata": {}, + "id": "d27bde55", + "metadata": { + "editable": true + }, "source": [ "we have" ] }, { "cell_type": "markdown", - "id": "d7bb1d6d", - "metadata": {}, + "id": "c85f01ba", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{\\epsilon}=\\boldsymbol{X}^T\\left( \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)= 0,\n", @@ -1176,16 +1193,20 @@ }, { "cell_type": "markdown", - "id": "b7dd96c9", - "metadata": {}, + "id": "b055d0e6", + "metadata": { + "editable": true + }, "source": [ "meaning that the solution for $\\boldsymbol{\\beta}$ is the one which minimizes the residuals. Later we will link this with the maximum likelihood approach." ] }, { "cell_type": "markdown", - "id": "4b6e485f", - "metadata": {}, + "id": "f9396899", + "metadata": { + "editable": true + }, "source": [ "## Own code for Ordinary Least Squares\n", "\n", @@ -1196,8 +1217,11 @@ { "cell_type": "code", "execution_count": 2, - "id": "20e8cb33", - "metadata": {}, + "id": "1864d601", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# matrix inversion to find beta\n", @@ -1208,8 +1232,10 @@ }, { "cell_type": "markdown", - "id": "77ef22e3", - "metadata": {}, + "id": "5ccc40c0", + "metadata": { + "editable": true + }, "source": [ "Alternatively, you can use the least squares functionality in **Numpy** as" ] @@ -1217,8 +1243,11 @@ { "cell_type": "code", "execution_count": 3, - "id": "0c7e2e85", - "metadata": {}, + "id": "29089ff7", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "fit = np.linalg.lstsq(X, Energies, rcond =None)[0]\n", @@ -1227,8 +1256,10 @@ }, { "cell_type": "markdown", - "id": "776d3539", - "metadata": {}, + "id": "2e68bc90", + "metadata": { + "editable": true + }, "source": [ "And finally we plot our fit with and compare with data" ] @@ -1236,22 +1267,12 @@ { "cell_type": "code", "execution_count": 4, - "id": "fe76261f", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
          " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "id": "26c5b551", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "Masses['Eapprox'] = ytilde\n", "# Generate a plot comparing the experimental with the fitted values values.\n", @@ -1269,8 +1290,10 @@ }, { "cell_type": "markdown", - "id": "34d28ed3", - "metadata": {}, + "id": "d6de96f2", + "metadata": { + "editable": true + }, "source": [ "## Adding error analysis and training set up\n", "\n", @@ -1281,8 +1304,11 @@ { "cell_type": "code", "execution_count": 5, - "id": "46c39015", - "metadata": {}, + "id": "8184ef25", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "def R2(y_data, y_model):\n", @@ -1291,8 +1317,10 @@ }, { "cell_type": "markdown", - "id": "09150482", - "metadata": {}, + "id": "5026f8cd", + "metadata": { + "editable": true + }, "source": [ "and we would be using it as" ] @@ -1300,25 +1328,22 @@ { "cell_type": "code", "execution_count": 6, - "id": "c60fc160", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.9549351910143222\n" - ] - } - ], + "id": "3baf2f69", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "print(R2(Energies,ytilde))" ] }, { "cell_type": "markdown", - "id": "ea9d7abe", - "metadata": {}, + "id": "40e1b50a", + "metadata": { + "editable": true + }, "source": [ "We can easily add our **MSE** score as" ] @@ -1326,17 +1351,12 @@ { "cell_type": "code", "execution_count": 7, - "id": "7399848c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.022022882954618378\n" - ] - } - ], + "id": "13946831", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "def MSE(y_data,y_model):\n", " n = np.size(y_model)\n", @@ -1347,8 +1367,10 @@ }, { "cell_type": "markdown", - "id": "0ca43616", - "metadata": {}, + "id": "c5ca0b3e", + "metadata": { + "editable": true + }, "source": [ "and finally the relative error as" ] @@ -1356,29 +1378,12 @@ { "cell_type": "code", "execution_count": 8, - "id": "602b9969", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "A \n", - "4 0 1.093247\n", - "5 2 0.275341\n", - "6 7 0.060080\n", - "7 12 0.019587\n", - "8 17 0.117986\n", - " ... \n", - "264 3297 0.000148\n", - "265 3303 0.001263\n", - "266 3310 0.002948\n", - "269 3331 0.000599\n", - "270 3337 0.002526\n", - "Name: Ebinding, Length: 264, dtype: float64\n" - ] - } - ], + "id": "c0c34dee", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "def RelativeError(y_data,y_model):\n", " return abs((y_data-y_model)/y_data)\n", @@ -1387,8 +1392,10 @@ }, { "cell_type": "markdown", - "id": "c6c9d23d", - "metadata": {}, + "id": "a2fbebeb", + "metadata": { + "editable": true + }, "source": [ "## Splitting our Data in Training and Test data\n", "\n", @@ -1406,8 +1413,10 @@ }, { "cell_type": "markdown", - "id": "46f46d43", - "metadata": {}, + "id": "74bef878", + "metadata": { + "editable": true + }, "source": [ "## Examples" ] @@ -1415,25 +1424,12 @@ { "cell_type": "code", "execution_count": 9, - "id": "dd175e90", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 2.03375565 -0.13375039 5.11903387]\n", - "Training R2\n", - "0.9959996952892793\n", - "Training MSE\n", - "0.01068532836259297\n", - "Test R2\n", - "0.9937238687985773\n", - "Test MSE\n", - "0.01196777141422897\n" - ] - } - ], + "id": "0cf20471", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "import os\n", "import numpy as np\n", @@ -1477,8 +1473,10 @@ }, { "cell_type": "markdown", - "id": "1afc59cc", - "metadata": {}, + "id": "54b660c0", + "metadata": { + "editable": true + }, "source": [ "## Making your own test-train splitting" ] @@ -1486,8 +1484,11 @@ { "cell_type": "code", "execution_count": 10, - "id": "ec006afe", - "metadata": {}, + "id": "c03145a7", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# equivalently in numpy\n", @@ -1508,8 +1509,10 @@ }, { "cell_type": "markdown", - "id": "a7ec2fdb", - "metadata": {}, + "id": "4f3decd4", + "metadata": { + "editable": true + }, "source": [ "But since **scikit-learn** has its own function for doing this and since\n", "it interfaces easily with **tensorflow** and other libraries, we\n", @@ -1518,8 +1521,10 @@ }, { "cell_type": "markdown", - "id": "875d7248", - "metadata": {}, + "id": "39c1120a", + "metadata": { + "editable": true + }, "source": [ "## The Boston housing data example\n", "\n", @@ -1560,8 +1565,10 @@ }, { "cell_type": "markdown", - "id": "c0f8545d", - "metadata": {}, + "id": "83b291f8", + "metadata": { + "editable": true + }, "source": [ "## Housing data, the code\n", "We start by importing the libraries" @@ -1570,8 +1577,11 @@ { "cell_type": "code", "execution_count": 11, - "id": "81237355", - "metadata": {}, + "id": "a54ea4d0", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import numpy as np\n", @@ -1583,8 +1593,10 @@ }, { "cell_type": "markdown", - "id": "f1962254", - "metadata": {}, + "id": "7852523e", + "metadata": { + "editable": true + }, "source": [ "and load the Boston Housing DataSet from **Scikit-Learn**" ] @@ -1592,62 +1604,12 @@ { "cell_type": "code", "execution_count": 12, - "id": "dee9e300", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function load_boston is deprecated; `load_boston` is deprecated in 1.0 and will be removed in 1.2.\n", - "\n", - " The Boston housing prices dataset has an ethical problem. You can refer to\n", - " the documentation of this function for further details.\n", - "\n", - " The scikit-learn maintainers therefore strongly discourage the use of this\n", - " dataset unless the purpose of the code is to study and educate about\n", - " ethical issues in data science and machine learning.\n", - "\n", - " In this special case, you can fetch the dataset from the original\n", - " source::\n", - "\n", - " import pandas as pd\n", - " import numpy as np\n", - "\n", - "\n", - " data_url = \"http://lib.stat.cmu.edu/datasets/boston\"\n", - " raw_df = pd.read_csv(data_url, sep=\"\\s+\", skiprows=22, header=None)\n", - " data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])\n", - " target = raw_df.values[1::2, 2]\n", - "\n", - " Alternative datasets include the California housing dataset (i.e.\n", - " :func:`~sklearn.datasets.fetch_california_housing`) and the Ames housing\n", - " dataset. You can load the datasets as follows::\n", - "\n", - " from sklearn.datasets import fetch_california_housing\n", - " housing = fetch_california_housing()\n", - "\n", - " for the California housing dataset and::\n", - "\n", - " from sklearn.datasets import fetch_openml\n", - " housing = fetch_openml(name=\"house_prices\", as_frame=True)\n", - "\n", - " for the Ames housing dataset.\n", - " \n", - " warnings.warn(msg, category=FutureWarning)\n" - ] - }, - { - "data": { - "text/plain": [ - "dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename', 'data_module'])" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "id": "4c01a3e0", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "from sklearn.datasets import load_boston\n", "\n", @@ -1660,8 +1622,10 @@ }, { "cell_type": "markdown", - "id": "bef0eb82", - "metadata": {}, + "id": "c98759d9", + "metadata": { + "editable": true + }, "source": [ "Then we invoke Pandas" ] @@ -1669,8 +1633,11 @@ { "cell_type": "code", "execution_count": 13, - "id": "a29ff8af", - "metadata": {}, + "id": "95fc544a", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "boston = pd.DataFrame(boston_dataset.data, columns=boston_dataset.feature_names)\n", @@ -1680,8 +1647,10 @@ }, { "cell_type": "markdown", - "id": "8396e85f", - "metadata": {}, + "id": "44605765", + "metadata": { + "editable": true + }, "source": [ "and preprocess the data" ] @@ -1689,34 +1658,12 @@ { "cell_type": "code", "execution_count": 14, - "id": "16d25b94", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "CRIM 0\n", - "ZN 0\n", - "INDUS 0\n", - "CHAS 0\n", - "NOX 0\n", - "RM 0\n", - "AGE 0\n", - "DIS 0\n", - "RAD 0\n", - "TAX 0\n", - "PTRATIO 0\n", - "B 0\n", - "LSTAT 0\n", - "MEDV 0\n", - "dtype: int64" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "id": "85e16609", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "# check for missing values in all the columns\n", "boston.isnull().sum()" @@ -1724,8 +1671,10 @@ }, { "cell_type": "markdown", - "id": "2e90d9ef", - "metadata": {}, + "id": "6d5a1ba3", + "metadata": { + "editable": true + }, "source": [ "We can then visualize the data" ] @@ -1733,28 +1682,12 @@ { "cell_type": "code", "execution_count": 15, - "id": "ac2fac03", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/homebrew/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", - " warnings.warn(msg, FutureWarning)\n" - ] - }, - { - "data": { - "image/png": "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SRs2bOAcBFlra6sef/xxeTwetbW16eWXX9YPfvAD3qeH0KJFi/Tuu++qpaVFfr9f77zzjm655ZYBvx5xBTnMZGRk6N5779WaNWvk9Xp1++23a9q0aWbHGpacTqf+5V/+RXfffbc8Ho+uv/563XLLLWbHimg//vGP5fF49C//8i89j91xxx2chyF2/fXXa+/evVq5cqVsNptuvvlmLVu2TKmpqZwHkz3xxBN66KGH1N7erkmTJmnNmjVmR4poixYt6vleCAQCuvPOOzVr1izep4fQ9OnT9dWvflV33nmnvF6vFixYoM997nMaO3bsgF6PLMbFBi0BAAAAwxRDLAAAAIBeKMgAAABALxRkAAAAoBcKMgAAANALBRkAAADohWneACDElZeX68Ybb9Ts2bP13HPPnbft29/+tl566SVt375d8+bNU35+vqzW8699PPXUU5KkxYsXKz8/X5IUCATkcDi0Zs0arVy5UmVlZbr11lu1detWZWRknLd/UVGR7r77bt18881B/FMCQOigIANAGHA6nTp16pQqKiqUk5MjSero6OhZFOIjP/vZz3pWlOqtvLxc0dHR2rhxY89jFRUV+uIXv6iYmBgtWbJECxYs0EsvvaS//uu/7nnO7t271draqhtvvDFIfzIACD0MsQCAMGCz2XTrrbdq06ZNPY9t2bJlQMU1JydH99xzj3784x9Lku6880699NJL6j09/vr16/XZz372vGVbASDSUZABIEysXLlSr7zySs/nGzZs0Kc+9anznnPXXXdpxYoVPR9f//rXL/s1CwoKdPToUUnSJz7xCRmGoQ8++EDSuWV0t27dqs985jOD/CcBgNDGEAsACBNTpkyR1WrVgQMHlJaWpvb29p4xxR+51BCLS7FYLIqOjpYkWa1W3XHHHfrNb36jOXPm6JVXXtHChQuVlpY2qH8OAAh1FGQACCO33XabXnnlFaWmpmrFihUD/nr79+8/r2SvXr1at9xyi9ra2rR+/Xp973vfG/AxACDcUJABIIysWLFCn/70p5WcnKyf//znA/papaWlevrpp/Xggw/2PJaSkqJFixbpySeflM1mU2Fh4QATA0D4oSADQBjJyMhQXl6eEhISlJycfMH2u+6664Jp3r75zW8qLy9PXV1dPVedrVarnE6nvvnNb+qTn/zkec+/88479ZnPfEaPPvposP4YABDSLEbv25UBAACAYY5ZLAAAAIBeKMgAAABALxRkAAAAoBcKMgAAANALBRkAAADohYIMAAAA9EJBBgAAAHqhIAMAAAC9/P+lCC7/nxU86wAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
          " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "248c9dd2", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "# set the size of the figure\n", "sns.set(rc={'figure.figsize':(11.7,8.27)})\n", @@ -1766,8 +1699,10 @@ }, { "cell_type": "markdown", - "id": "b5cdd9d1", - "metadata": {}, + "id": "ef8a330a", + "metadata": { + "editable": true + }, "source": [ "It is now useful to look at the correlation matrix" ] @@ -1775,30 +1710,12 @@ { "cell_type": "code", "execution_count": 16, - "id": "37a352c6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
          " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "910d9a46", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "# compute the pair wise correlation for all columns \n", "correlation_matrix = boston.corr().round(2)\n", @@ -1809,8 +1726,10 @@ }, { "cell_type": "markdown", - "id": "d43fa5cd", - "metadata": {}, + "id": "2672c6d9", + "metadata": { + "editable": true + }, "source": [ "From the above coorelation plot we can see that **MEDV** is strongly correlated to **LSTAT** and **RM**. We see also that **RAD** and **TAX** are stronly correlated, but we don't include this in our features together to avoid multi-colinearity" ] @@ -1818,20 +1737,12 @@ { "cell_type": "code", "execution_count": 17, - "id": "1fc2b42e", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABI4AAAFNCAYAAABmLyQkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACBLElEQVR4nO3dfXxU5Z03/s+ZmTxJkgIxNKVg1zsKkSwoy92HFDRAEYgCItq7am/A0qr90dX+3L25tW6f7m1XsXR/tuqyr5UFi26laotoUqCFolRC7rbiA26CWFOsshiNERoekklm5vz+iGc4c+Y8z3mc83m/Xn1VJjNnrnNm5pzv9T3X9b0EURRFEBERERERERERKcT8bgAREREREREREQUTE0dERERERERERKSKiSMiIiIiIiIiIlLFxBEREREREREREali4oiIiIiIiIiIiFQxcURERERERERERKoSfjeAiIrX0aNHsXjxYrz00kt5f9uwYQPa2togiiIymQwuvfRS3H777RgcHMTy5csBAGfOnMG7776L888/HwDw2c9+FnfccQeGh4cxZ84cTJ48GRs3bgQAPPTQQ/jlL38JAHjrrbcwZswYVFVVAQAeeOABnHfeeV7sMhEREVHgTZ48GZMmTUIsFoMgCBgYGEBlZSW++93vYurUqdi6dSu+8Y1vYPXq1fj617+efZ0oipg3bx4qKirQ1tbm4x4QkZeYOCIiz+3YsQO7d+/G448/jvLyciSTSdx222148MEH8Xd/93d4+umnAQC/+93v8L3vfS/7b8muXbswefJkdHZ2oru7G/X19bj55ptx8803AwCWL1+OL37xi1i4cKHn+0ZEREQUBps3b8bYsWOz/964cSO+//3v4/HHHwcAjB8/Hq2trTmJoxdeeAGDg4OoqKjwvL1E5B9OVSMiz/X29iKdTmNwcBAAUFZWhm9961uYN2+eqddv2bIF8+bNwxVXXIHNmze72VQiIiKiopdKpfDOO+/gIx/5SPaxSZMm4ZxzzsGLL76Yfeypp57CkiVL/GgiEfmIiSMi8tzVV1+N6upqzJo1C1/4whewdu1avPPOO5g2bZrha9944w28/PLLaGlpwdKlS/H000/j+PHjHrSaiIiIqHisXLkSS5YswaxZs7BgwQIAwD333JPzHCnWAoCBgQEcOHAAl156qedtJSJ/MXFERJ6rqqrC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em8zXBtxdPLkSdx///342c9+huHhYTz11FNYt24d1qxZgw8++AAVFRX49a9/je9973tuNcGQVFzKzqpq0uNOraqmbItaFfULJozGtn1HDCv3O1kBXtkuu9sz2o5T70NERBR1YYjBKFq04rzZMyYGanRGUPkVJ4clPvejndK2zfTN/OT1sdHr09pZVW32jInoPznoSvvNHBv5fsjrDLlx/MzkA/wkiGIhJZ71/ehHP8KvfvUrZDIZ3HDDDVi5ciVaW1vxb//2bxgeHsa1116Lm266yfJ2o3yBMRpyqqzGDoxkKFe2NPj+ZStU1IeLc/+ju/9R3ncg2vsftX3nVDXnuBGDcaoaOY3H1108vu7jMXaX38e3mPvWgLWpaq4mjtwS1h+nEyOBjH48a9a3q86NrKkuw7rVMy23OUj8PnH4jfsf3f2P8r4D0d7/qO07E0fBxsQROY3H1108vu7jMTZWSB/Y7+NbzH1rwFriyLWpapRLma3s609iQ2sX3jh6AssXNDj2PloFtQotUkZERERERERkllofePOO1wC4M93LTHusJLHYtz7LteLYlGvr3u6cIW6SZ186ho7OHsfep+bDKvBmHyciIiIiIiJymlofWF4ryEtSEktK+khJLL2+OPvWZzFx5BG9rKSTP5ywVPgnIiIiIiKi4hWkETt2kljsW5/FqWoeqaku8+SHE5bVD4iIiIiIiKh4afWB/RixY6cvzr71WUwceWRZcz02tHap/s3pH05TY10kv8xEREREREQUDMua61VXJfNjxI7dJBb71iM4Vc0jTY11mDN9fN7jUR3qRkRERERERMWrqbEOK1sassmZmuoy35ay57SzwnDEkYeWL2jABRNGc6gbERERERERFb2gjNjhtLPCMHHksaD8cIiIiIiIiIiign1x+zhVjYiIiIiIiIiIVHHEkcc6Ons4PI6IiIiIiIhCgX1YYuLIQx2dPTlV5fv6k9i84zUA4A+PiIiIiIiIAoV9WAI4Vc1TW/d25yxFCABDqQy27u32qUVERERERERE6tiHJYCJI0/19SctPU5ERERERETkF/ZhCeBUtYJZme9ZU12m+gOrqS5zu5lEREREREREpkj9XC3sw0YLRxwVQJrvKSWDpPmeHZ09qs9f1lyP0kTuIS9NxLCsud71thIREREREREZUfZzldiHjR4mjgpgdb5nU2MdVrY0ZLOzNdVlWNnSwKJiREREREREFAhq/VwJ+7DRxKlqBbAy31M5pe2mxVP4YyMiIiIiIqJA0atftG71TMPXWynnQuHAEUcF0JrXqXzc6pQ2IiIiIiIiIj+Y7eeqYd+3ODFxVACzNYu4hCERERERERGFQSG1edn3LU6cqlYAabid0TA8vSlta9a3cwgfERERERERBYLZfq4aK+Vc/MKpdNYxcVSgpsY6wy9ZTXWZ4Q9IGsInbZOIiIiIiIjID2b6uWq0+r5mprl5QZpKJ42KYj/cHE5V84DaUD81HMJHREREREREYVXINDcvcCqdPRxx5AG1oX5hGMJHREREREREZFYh09y8wH64PUwceUQ51E+qbaQUlCF8RERERERERFbZnebmhaBPpQsqJo4cYrXA1rLm+py5lUCwhvARERERERFR+LD4szb2w+1h4sgBegW2APVhekEfwkdEREREREThEoTiz0FOXLEfbg8TRw7QKrC1ZffrGBrOaP5ogzyEj4iIiIiIiMJFr/izF33PICSujLAfbh1XVXOAViGtUwMpVmwnIiIiIiIiT/hd/JmrlhUnJo4cMKo8bun5rNhORERERERETtMr8tzR2eP6+/uduCJ3cKqaAwRBUH8cgKjyeFgqtgd5bioRERERERHlWtZcjw2tXap/27L7ddf7d1y1rDgxceSAUwMp1cfVkkZhqdgehrmpREREREREdFZTY51m4ujUQCrbd3Wrfxf0Vcs4OMIeTlVzgJXs6cyp4SjExbmpRERERERE4WO2f+pG/66psQ4rWxqybaipLsPKloZA9IGlwRHSiCgpeebFFL6w44gjB6hlVbUc7O7zoEWF49xUIiIiIiKi8LHSP3WjfxfUVcv8XnEuzJg4ckBTYx3eOHoCe18+howIxAQgozZPDeFJvHBuKhERERERUfhISRD5lKzBoRROD6bznivv3xX7NC4OjrCPiSMHdHT2oP3VnmyySCtpBIQn8RL0ualERERERESkTjnqR1nDFsjt30Whxi0HR9jHGkcOUBvypiZMiZcgz00lIiIiIiIi84z6d1GocbusuR6lidwUSJj66H7iiCOT9Ibt6Q1tk7KaYRzqF9S5qURERERERGSNXv8uCtO41KbwyfvoxT5VrxBMHJlgNGxPb8jbutUzPW0rERERERERkRVRmcallTyLwlS9QnCqmglGw/Y45I2I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BL+b4Kso73+U9x3g/kd5/6O870C09z9K+x6lfQ2jqH4+Ud1vr/D4uovH1308xu7i8XWXdHyNjrMgiqLoRYOIiIiIiIiIiChcOFWNiIiIiIiIiIhUMXFERERERERERESqmDgiIiIiIiIiIiJVTBwREREREREREZEqJo6IiIiIiIiIiEgVE0dERERERERERKSKiSMiIiIiIiIiIlLFxBEREREREREREali4oiIiIiIiIiIiFSFKnHU2tqKK664Apdffjl++tOf+t0cT61YsQJXXnklrrrqKlx11VV45ZVX/G6S606dOoVFixbh6NGjAID9+/dj8eLFmD9/Pu677z6fW+c+5f5/4xvfwPz587PfgV27dvncQvc8+OCDuPLKK3HllVfiBz/4AYDofP5q+x6lz/7HP/4xrrjiClx55ZV4+OGHAUTnswfU9z9Knz9R0Nx777248847/W5G0YliXOu1PXv2YNmyZVi4cCG+//3v+92covLkk09mv7tXXXUVZsyYgX/8x3/0u1lF5emnn87Gw/fee6/fzSlKDz30EBYsWIDFixfjX//1X41fIIZET0+POGfOHPH48ePi6dOnxcWLF4t//OMf/W6WJzKZjDhz5kxxeHjY76Z45uWXXxYXLVokNjY2im+//bY4MDAgNjc3i2+99ZY4PDwsrlq1Snzuuef8bqZrlPsviqK4aNEi8d133/W5Ze5rb28Xv/CFL4jJZFIcGhoSV6xYIba2tkbi81fb91//+teR+ex/97vfidddd504PDwsDgwMiHPmzBEPHToUic9eFNX3v7u7OzKfP1HQ7N+/X/z0pz8t3nHHHX43pahEMa712ltvvSXOmjVLfOedd8ShoSHx+uuvL9prp99ef/118fLLLxf7+vr8bkrROHPmjPjJT35S7OvrE4eHh8Vrr71WbG9v97tZRaW9vV1ctGiRePLkSTGVSom33HKL+Ktf/Ur3NaEZcbR//3585jOfwejRo3HOOedgwYIF2Llzp9/N8sSf/vQnCIKAm266CUuWLMF//Md/+N0k1z3xxBP4zne+g3HjxgEADh48iE984hOYOHEiEokEFi9eXNSfv3L/z5w5g2PHjuFb3/oWFi9ejPvvvx+ZTMbnVrqjtrYWd955J0pLS1FSUoL6+nq8+eabkfj81fb92LFjkfnsP/WpT+GRRx5BIpFAX18f0uk0+vv7I/HZA+r7X1ZWFpnPnyhITpw4gfvuuw9f/epX/W5K0YliXOu1Xbt24YorrkBdXR1KSkpw33334eKLL/a7WUXpu9/9Lm6//XaMHTvW76YUjXQ6jUwmg4GBAaRSKaRSKZSVlfndrKLS1dWFWbNmobKyEvF4HJdeeil2796t+5rQJI7ee+891NbWZv89btw4vPvuuz62yDv9/f1oamrCv/zLv+AnP/kJfvazn6G9vd3vZrnqn/7pn/Df//t/z/47ap+/cv/7+vrwmc98BnfffTeeeOIJvPDCC/j5z3/uYwvdc+GFF+KSSy4BALz55pvYvn07BEGIxOevtu+XXnppZD57ACgpKcH999+PK6+8Ek1NTZH77Sv3P51OR+rzJwqKb3/727j99ttRXV3td1OKThTjWq/9+c9/Rjqdxpe//GUsWbIEjz32GD7ykY/43ayis3//fgwODqKlpcXvphSVyspKfP3rX0dLSwsuu+wyfPzjH8ff/M3f+N2sotLY2Ih9+/bhxIkTSCaT2LNnD95//33d14QmcSSKYt5jgiD40BLvTZ8+HT/4wQ9wzjnnYOzYsbj22muxd+9ev5vlqSh//gAwceJE/Mu//AtqampQUVGB5cuXF/134I9//CNWrVqFO+64A+edd17e34v585fv+3/7b/8tcp/9bbfdho6ODrzzzjt488038/5ezJ89kLv/HR0dkfv8ifz25JNP4mMf+xiampr8bkpRYlzrvnQ6jY6ODqxbtw5PPPEEXn31VTz11FN+N6vo/OxnP8OXvvQlv5tRdF577TX84he/wLPPPot9+/YhFoth48aNfjerqDQ1NWHZsmVYvnw5vvKVr2DGjBkoKSnRfU1oEkcf/ehHc7Jg7733XnYaT7F74YUX0NHRkf23KIpIJBI+tsh7Uf78AeDw4cP41a9+lf13sX8HDhw4gBtvvBF///d/j6uvvjpSn79y36P02Xd3d+PQoUMAgIqKCsyfPx+/+93vIvPZq+3/9u3bI/P5EwXF9u3b0d7ejquuugr3338/9uzZg7vvvtvvZhUNxrXuO/fcc9HU1ISxY8eivLwcn/vc53Dw4EG/m1VUhoaG8Ic//AFz5871uylFZ9++fWhqakJNTQ1KS0uxbNky/P73v/e7WUXl1KlTuPzyy9Ha2opHH30UFRUVmDhxou5rQpM4+uxnP4uOjg588MEHGBgYwK9//WtcdtllfjfLEydPnsQPfvADJJNJnDp1Ck899RQuv/xyv5vlqYsvvhhHjhzJDr1ta2uLzOcPjARVd999N/7yl79geHgYjz/+eNF+B9555x187Wtfww9/+ENceeWVAKLz+avte5Q++6NHj+Kb3/wmhoaGMDQ0hN/85je47rrrIvHZA+r7/8lPfjIynz9RUDz88MNoa2vD008/jdtuuw1z587FXXfd5XezigbjWvfNmTMH+/btQ39/P9LpNJ5//nk0Njb63ayicvjwYfzVX/0VzjnnHL+bUnQaGhqwf/9+nDlzBqIoYs+ePZg6darfzSoqR48exde+9jWkUimcPHkSTz75pOGUy9Ck9z/60Y/i9ttvx4oVKzA8PIxrr70W06ZN87tZnpgzZw5eeeUVLF26FJlMBjfccAOmT5/ud7M8VVZWhrVr1+LWW29FMplEc3MzFi5c6HezPNPQ0ICbb74Z119/PVKpFObPn49Fixb53SxXbNy4EclkEmvXrs0+dt1110Xi89fa96h89s3NzdlzXTwex/z583HllVdi7NixRf/ZA+r7/7d/+7cYM2ZMJD5/IooGxrXuu/jii/GVr3wFN9xwA4aHhzFz5kxcc801fjerqLz99tuoq6vzuxlFadasWejq6sKyZctQUlKCqVOn4uabb/a7WUWloaEB8+fPx5IlS5BOp3HjjTdixowZuq8RRLXiMUREREREREREFHmhmapGRERERERERETeYuKIiIiIiIiIiIhUMXFERERERERERESqmDgiIiIiIiIiIiJVTBwREREREREREZGqhN8NIKLidfToUSxevBgvvfRS3t82bNiAtrY2iKKITCaDSy+9FLfffjsGBwexfPlyAMCZM2fw7rvv4vzzzwcAfPazn8Udd9yB4eFhzJkzB5MnT8bGjRsBAA899BB++ctfAgDeeustjBkzBlVVVQCABx54AOedd54Xu0xEREQUeJMnT8akSZMQi8UgCAIGBgZQWVmJ7373u5g6dSq2bt2Kb3zjG1i9ejW+/vWvZ18niiLmzZuHiooKtLW1+bgHROQlJo6IyHM7duzA7t278fjjj6O8vBzJZBK33XYbHnzwQfzd3/0dnn76aQDA7373O3zve9/L/luya9cuTJ48GZ2dneju7kZ9fT1uvvlm3HzzzQCA5cuX44tf/CIWLlzo+b4RERERhcHmzZsxduzY7L83btyI73//+3j88ccBAOPHj0dra2tO4uiFF17A4OAgKioqPG8vEfmHU9WIyHO9vb1Ip9MYHBwEAJSVleFb3/oW5s2bZ+r1W7Zswbx583DFFVdg8+bNbjaViIiIqOilUim88847+MhHPpJ9bNKkSTjnnHPw4osvZh976qmnsGTJEj+aSEQ+YuKIiDx39dVXo7q6GrNmzcIXvvAFrF27Fu+88w6mTZtm+No33ngDL7/8MlpaWrB06VI8/fTTOH78uAetJiIiIioeK1euxJIlSzBr1iwsWLAAAHDPPffkPEeKtQBgYGAABw4cwKWXXup5W4nIX0wcEZHnqqqqsGnTJuzYsQPXXnst+vr6cPPNN2PdunWGr92yZQtmz56N0aNHY9q0aZgwYUJ2SDURERERmbN582Y888wzeOihhzA4OIjp06ejpqYm5zmLFy/Grl27MDw8jF27dmHu3LmIx+M+tZiI/MLEERF5bsOGDXjxxRcxceJEfP7zn8e6deuwYcMGPPbYY7qvO3PmDLZt24YDBw5g7ty5mDt3Lnp7e/HTn/4Uw8PDHrWeiIiIqHhMmTIF3/jGN/DNb34TR48ezflbbW0tpkyZgr1792Lbtm24+uqrfWolEfmJiSMi8tzg4CD++Z//GSdOnMg+duTIEUyZMkX3da2trRgzZgyef/557NmzB3v27MHu3btx5swZ7Nixw+VWExERERWnRYsW4ZJLLsHdd9+d97elS5fi4YcfxsmTJzFp0iQfWkdEfuOqakTkqjNnzmD69Ok5j23ZsgWCIOC6666DIAjIZDL467/+a/zoRz/S3daWLVvwpS99KWeIdHV1NZYvX47NmzezWCMRERGRTd/61rewZMkSPP/88zmPz5s3D9/5zndw++23+9QyIvKbIIqi6HcjiIiIiIiIiIgoeDhVjYiIiIiIiIiIVDFxREREREREREREqpg4IiIiIiIiIiIiVUwcERERERERERGRKiaOiIiIiIiIiIhIFRNHRERERERERESkiokjIiIiIiIiIiJSxcQRERERERERERGp+v8BPxPXvaRvYuwAAAAASUVORK5CYII=\n", - "text/plain": [ - "
          " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "92c78b0f", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "plt.figure(figsize=(20, 5))\n", "\n", @@ -1850,8 +1761,10 @@ }, { "cell_type": "markdown", - "id": "69cafd8a", - "metadata": {}, + "id": "da68c38a", + "metadata": { + "editable": true + }, "source": [ "Now we start training our model" ] @@ -1859,8 +1772,11 @@ { "cell_type": "code", "execution_count": 18, - "id": "48a04777", - "metadata": {}, + "id": "a6b3a9d5", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "X = pd.DataFrame(np.c_[boston['LSTAT'], boston['RM']], columns = ['LSTAT','RM'])\n", @@ -1869,8 +1785,10 @@ }, { "cell_type": "markdown", - "id": "e21c7f03", - "metadata": {}, + "id": "b80ca360", + "metadata": { + "editable": true + }, "source": [ "We split the data into training and test sets" ] @@ -1878,20 +1796,12 @@ { "cell_type": "code", "execution_count": 19, - "id": "fa0eca85", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(404, 2)\n", - "(102, 2)\n", - "(404,)\n", - "(102,)\n" - ] - } - ], + "id": "f6257185", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", @@ -1906,8 +1816,10 @@ }, { "cell_type": "markdown", - "id": "598473cc", - "metadata": {}, + "id": "7ba8dedb", + "metadata": { + "editable": true + }, "source": [ "Then we use the linear regression functionality from **Scikit-Learn**" ] @@ -1915,26 +1827,12 @@ { "cell_type": "code", "execution_count": 20, - "id": "adc72931", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The model performance for training set\n", - "--------------------------------------\n", - "RMSE is 5.6371293350711955\n", - "R2 score is 0.6300745149331701\n", - "\n", - "\n", - "The model performance for testing set\n", - "--------------------------------------\n", - "RMSE is 5.137400784702911\n", - "R2 score is 0.6628996975186952\n" - ] - } - ], + "id": "381d739f", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import mean_squared_error, r2_score\n", @@ -1972,20 +1870,12 @@ { "cell_type": "code", "execution_count": 21, - "id": "5bf0e806", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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E4yMTiwE2HmzZ+diZHQioREBALBauQ+xU9MzNT0OAED65T7E9nR31fQ4AADpl/sQO1zoj7Wdiy9zbeeaGC70JzQiAABWK/cbu+Y3b+lOAACQH7kPsRG/CrJCKwBAfuS+nAAAgPwRYgEAyBwhFgCAzBFiAQDIHCEWAIDMEWIBAMgcIRYAgMwRYgEAyBwhFgCAzBFiAQDIHCEWAIDMEWIBAMgcIRYAgMwRYgEAyJzOpF54zZqOpF469fxsqIZ5QjXME6phnlCNVs+TSq/XUSwWiy0aCwAANIRyAgAAMkeIBQAgc4RYAAAyR4gFACBzhFgAADJHiAUAIHOEWAAAMkeIBQAgc4RYAAAyR4hN2KlTp+Kmm26Kt956KyIiDh06FNu2bYvNmzfH3r17Ex4dafD1r389hoaGYmhoKB5++OGIME8o7Wtf+1rceOONMTQ0FE888UREmCuU9tBDD8X9998fERGHDx+O2267LW644Yb40pe+FGfPnk14dKTBjh07YmhoKG655Za45ZZb4tVXX40XX3wxbrzxxvjsZz8bzzzzTNJDjCiSmB/96EfFm266qTgwMFD8yU9+Ujx9+nSxUCgU/+M//qN45syZ4p133ln8/ve/n/QwSdBLL71U/MM//MPizMxMcXZ2trhjx47iiy++aJ6wzA9/+MPi9u3bi2fOnCmePn26eP311xcPHz5srrDMoUOHip/+9KeL9913X7FYLBaHhoaK//zP/1wsFovFv/iLvyg+88wzCY6ONJibmytec801xTNnziw8Njk5Wbz++uuL7777bvH9998vbtu2rfjGG28kOMpi0Upsgp599tn4yle+En19fRER8dprr8UVV1wRGzdujM7Ozti2bVscPHgw4VGSpN7e3rj//vtj7dq1cf7550d/f38cPXrUPGGZT33qU/H0009HZ2dnTE1Nxblz52J6etpcYZGf//znsXfv3rj77rsjIuKnP/1pfPDBB/HJT34yIiKGh4fNEeLf//3fo6OjIz7/+c/HzTffHH/zN38Thw4dis985jOxfv36uOiii+KGG25IfK4IsQn66le/Gr/7u7+78PHx48ejt7d34eO+vr44duxYEkMjJa688sqF/1yOHj0a+/fvj46ODvOEks4///x47LHHYmhoKAYHB/1NYZkvf/nLsWvXruju7o6I5f/v9Pb2miPE9PR0DA4Oxl/91V/Fk08+GX/3d38XP/vZz1L390SITZFisbjssY6OjgRGQtq88cYbceedd8Z9990Xl19++bLPmyfM27lzZ4yNjcXbb78dR48eXfZ5c6V9fetb34rLLrssBgcHFx7z/w6l/M7v/E48/PDDcdFFF8Ull1wSt99+ezz22GPLvi7pudKZ6KuzyKWXXhonT55c+Pj48eMLpQa0r1deeSV27twZDzzwQAwNDcXLL79snrDMxMREzM7Oxsc+9rG48MILY/PmzXHw4ME477zzFr7GXGlv+/fvjxMnTsQtt9wSv/jFL+KXv/xldHR0LPp7cuLECXOE+Kd/+qc4c+bMwhueYrEYv/7rv566/3usxKbIVVddFUeOHIk333wzzp07F/v27Ytrr7026WGRoLfffju++MUvxqOPPhpDQ0MRYZ5Q2ltvvRW7d++O2dnZmJ2dje9+97uxfft2c4UFTzzxROzbty/+/u//Pnbu3Bl/8Ad/EA8++GB0dXXFK6+8EhERzz//vDlCvPfee/Hwww/HzMxMnDp1Kp577rl45JFHYmxsLN555504ffp0fOc730l8rliJTZGurq7Ys2dP3HPPPTEzMxOFQiG2bNmS9LBI0De+8Y2YmZmJPXv2LDy2fft284RlCoVCvPrqq3HrrbfGeeedF5s3b46hoaG45JJLzBXKevTRR2P37t3x/vvvx8c//vHYsWNH0kMiYddff/3C35O5ubn4oz/6o7j66qtj165dsWPHjjhz5kzcfvvt8YlPfCLRcXYUSxXEAABAiiknAAAgc4RYAAAyR4gFACBzhFgAADJHiAUAIHOEWAAAMkeIBQAgc4RYAAAy5/8Dzq8geRBsSJwAAAAASUVORK5CYII=\n", - "text/plain": [ - "
          " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "5bacb92a", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "# plotting the y_test vs y_pred\n", "# ideally should have been a straight line\n", @@ -1995,8 +1885,10 @@ }, { "cell_type": "markdown", - "id": "115406d0", - "metadata": {}, + "id": "debdedcf", + "metadata": { + "editable": true + }, "source": [ "## Reducing the number of degrees of freedom, overarching view\n", "\n", @@ -2022,8 +1914,10 @@ }, { "cell_type": "markdown", - "id": "98df56e6", - "metadata": {}, + "id": "57b1e446", + "metadata": { + "editable": true + }, "source": [ "## Preprocessing our data\n", "\n", @@ -2045,8 +1939,10 @@ }, { "cell_type": "markdown", - "id": "1de59215", - "metadata": {}, + "id": "5ecd4e8c", + "metadata": { + "editable": true + }, "source": [ "## Functionality in Scikit-Learn\n", "\n", @@ -2063,8 +1959,10 @@ }, { "cell_type": "markdown", - "id": "e1c1b7ee", - "metadata": {}, + "id": "ecab4f44", + "metadata": { + "editable": true + }, "source": [ "## More preprocessing\n", "\n", @@ -2088,8 +1986,10 @@ }, { "cell_type": "markdown", - "id": "a35f95ed", - "metadata": {}, + "id": "05a84d19", + "metadata": { + "editable": true + }, "source": [ "## Frequently used scaling functions\n", "\n", @@ -2099,8 +1999,10 @@ }, { "cell_type": "markdown", - "id": "804df448", - "metadata": {}, + "id": "c559aba3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "x_j^{(i)} \\rightarrow \\frac{x_j^{(i)} - \\overline{x}_j}{\\sigma(x_j)},\n", @@ -2109,8 +2011,10 @@ }, { "cell_type": "markdown", - "id": "8495ae4c", - "metadata": {}, + "id": "c3143bae", + "metadata": { + "editable": true + }, "source": [ "where $\\overline{x}_j$ and $\\sigma(x_j)$ are the mean and standard deviation, respectively, of the feature $x_j$.\n", "This ensures that each feature has zero mean and unit standard deviation. For data sets where we do not have the standard deviation or don't wish to calculate it, it is then common to simply set it to one." @@ -2118,8 +2022,10 @@ }, { "cell_type": "markdown", - "id": "9ebd107f", - "metadata": {}, + "id": "538fa93c", + "metadata": { + "editable": true + }, "source": [ "## Example of own Standard scaling\n", "\n", @@ -2132,418 +2038,12 @@ { "cell_type": "code", "execution_count": 22, - "id": "8b62f35a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
          \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
          01234
          0-1.7497650.3426801.153036-0.2524360.981321
          10.5142190.221180-1.070043-0.1894960.255001
          2-0.4580270.435163-0.5835950.8168470.672721
          3-0.104411-0.5312801.029733-0.438136-1.118318
          41.6189821.541605-0.251879-0.8424360.184519
          50.9370820.7310001.361556-0.3262380.055676
          60.222400-1.443217-0.7563520.8164540.750445
          7-0.4559471.189622-1.690617-1.356399-1.232435
          8-0.544439-0.6681720.007315-0.6129391.299748
          9-1.733096-0.9833100.357508-1.6135791.470714
          \n", - "
          " - ], - "text/plain": [ - " 0 1 2 3 4\n", - "0 -1.749765 0.342680 1.153036 -0.252436 0.981321\n", - "1 0.514219 0.221180 -1.070043 -0.189496 0.255001\n", - "2 -0.458027 0.435163 -0.583595 0.816847 0.672721\n", - "3 -0.104411 -0.531280 1.029733 -0.438136 -1.118318\n", - "4 1.618982 1.541605 -0.251879 -0.842436 0.184519\n", - "5 0.937082 0.731000 1.361556 -0.326238 0.055676\n", - "6 0.222400 -1.443217 -0.756352 0.816454 0.750445\n", - "7 -0.455947 1.189622 -1.690617 -1.356399 -1.232435\n", - "8 -0.544439 -0.668172 0.007315 -0.612939 1.299748\n", - "9 -1.733096 -0.983310 0.357508 -1.613579 1.470714" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 -0.175300\n", - "1 0.083527\n", - "2 -0.044334\n", - "3 -0.399836\n", - "4 0.331939\n", - "dtype: float64\n", - "0 1.069584\n", - "1 0.965548\n", - "2 1.018232\n", - "3 0.793167\n", - "4 0.918992\n", - "dtype: float64\n" - ] - }, - { - "data": { - "text/html": [ - "
          \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
          01234
          0-1.5744650.2591531.1973700.1474000.649382
          10.6895190.137652-1.0257090.210340-0.076938
          2-0.2827270.351636-0.5392611.2166830.340782
          30.070889-0.6148081.074067-0.038300-1.450257
          41.7942821.458078-0.207545-0.442600-0.147420
          51.1123830.6474731.4058900.073598-0.276263
          60.397700-1.526744-0.7120181.2162900.418506
          7-0.2806471.106095-1.646283-0.956563-1.564374
          8-0.369139-0.7516990.051649-0.2131030.967809
          9-1.557795-1.0668370.401842-1.2137431.138775
          \n", - "
          " - ], - "text/plain": [ - " 0 1 2 3 4\n", - "0 -1.574465 0.259153 1.197370 0.147400 0.649382\n", - "1 0.689519 0.137652 -1.025709 0.210340 -0.076938\n", - "2 -0.282727 0.351636 -0.539261 1.216683 0.340782\n", - "3 0.070889 -0.614808 1.074067 -0.038300 -1.450257\n", - "4 1.794282 1.458078 -0.207545 -0.442600 -0.147420\n", - "5 1.112383 0.647473 1.405890 0.073598 -0.276263\n", - "6 0.397700 -1.526744 -0.712018 1.216290 0.418506\n", - "7 -0.280647 1.106095 -1.646283 -0.956563 -1.564374\n", - "8 -0.369139 -0.751699 0.051649 -0.213103 0.967809\n", - "9 -1.557795 -1.066837 0.401842 -1.213743 1.138775" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
          \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
          01234
          00.00.00.00.00.0
          10.00.00.00.00.0
          20.00.00.00.00.0
          30.00.00.00.00.0
          40.00.00.00.00.0
          50.00.00.00.00.0
          60.00.00.00.00.0
          70.00.00.00.00.0
          80.00.00.00.00.0
          90.00.00.00.00.0
          \n", - "
          " - ], - "text/plain": [ - " 0 1 2 3 4\n", - "0 0.0 0.0 0.0 0.0 0.0\n", - "1 0.0 0.0 0.0 0.0 0.0\n", - "2 0.0 0.0 0.0 0.0 0.0\n", - "3 0.0 0.0 0.0 0.0 0.0\n", - "4 0.0 0.0 0.0 0.0 0.0\n", - "5 0.0 0.0 0.0 0.0 0.0\n", - "6 0.0 0.0 0.0 0.0 0.0\n", - "7 0.0 0.0 0.0 0.0 0.0\n", - "8 0.0 0.0 0.0 0.0 0.0\n", - "9 0.0 0.0 0.0 0.0 0.0" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "e7c505e1", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "import sklearn.linear_model as skl\n", "from sklearn.metrics import mean_squared_error\n", @@ -2572,16 +2072,20 @@ }, { "cell_type": "markdown", - "id": "bbaf614f", - "metadata": {}, + "id": "8dce2309", + "metadata": { + "editable": true + }, "source": [ "Small exercise: perform the standard scaling by including the standard deviation and compare with what Scikit-Learn gives." ] }, { "cell_type": "markdown", - "id": "e297e64a", - "metadata": {}, + "id": "e673685d", + "metadata": { + "editable": true + }, "source": [ "## Min-Max Scaling\n", "\n", @@ -2593,8 +2097,10 @@ }, { "cell_type": "markdown", - "id": "3a48d095", - "metadata": {}, + "id": "07d28ab3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "x_j^{(i)} \\rightarrow (b-a)\\frac{x_j^{(i)} - \\min(x_j)}{\\max(x_j) - \\min(x_j)} - a\n", @@ -2603,16 +2109,20 @@ }, { "cell_type": "markdown", - "id": "b836623d", - "metadata": {}, + "id": "8dd69e21", + "metadata": { + "editable": true + }, "source": [ "where $\\min(x_j)$ and $\\max(x_j)$ return the minimum and maximum value of $x_j$ over the data set, respectively." ] }, { "cell_type": "markdown", - "id": "0cf9ca3e", - "metadata": {}, + "id": "0691d9ee", + "metadata": { + "editable": true + }, "source": [ "## Testing the Means Squared Error as function of Complexity\n", "One of \n", @@ -2625,8 +2135,11 @@ { "cell_type": "code", "execution_count": 23, - "id": "409e549f", - "metadata": {}, + "id": "2dddedb3", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "np.random.seed()\n", @@ -2639,8 +2152,10 @@ }, { "cell_type": "markdown", - "id": "ed762bab", - "metadata": {}, + "id": "c53156de", + "metadata": { + "editable": true + }, "source": [ "where $y$ is the function we want to fit with a given polynomial.\n", "\n", @@ -2650,20 +2165,12 @@ { "cell_type": "code", "execution_count": 24, - "id": "a2d186a5", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
          " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "e12b421a", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -2705,8 +2212,10 @@ }, { "cell_type": "markdown", - "id": "8f34fae7", - "metadata": {}, + "id": "47115e0d", + "metadata": { + "editable": true + }, "source": [ "## More preprocessing examples, Franke function and regression" ] @@ -2714,42 +2223,12 @@ { "cell_type": "code", "execution_count": 25, - "id": "5fc132f0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MSE before scaling: 0.00\n", - "R2 score before scaling 1.00\n", - "Feature min values before scaling:\n", - " [1.00000000e+00 6.97906022e-03 2.43639284e-03 4.87072815e-05\n", - " 1.70037324e-05 5.93601008e-06 3.39931051e-07 1.18670072e-07\n", - " 4.14277718e-08 1.44624525e-08 2.37239927e-09 8.28205578e-10\n", - " 2.89126914e-10 1.00934327e-10 3.52362157e-11 1.65571174e-11\n", - " 5.78009660e-12 2.01783414e-12 7.04426744e-13 2.45915671e-13\n", - " 8.58492636e-14]\n", - "Feature max values before scaling:\n", - " [1. 0.99970894 0.99978365 0.99941797 0.99949266 0.99956735\n", - " 0.99912709 0.99920175 0.99927642 0.9993511 0.99883628 0.99891093\n", - " 0.99898558 0.99906023 0.99913489 0.99854557 0.99862019 0.99869482\n", - " 0.99876945 0.99884409 0.99891873]\n", - "Feature min values after scaling:\n", - " [ 0. -1.71761101 -1.75770568 -1.12330033 -1.12591227 -1.12871842\n", - " -0.88613493 -0.884669 -0.88323026 -0.88182591 -0.75269037 -0.75050135\n", - " -0.74829661 -0.74607851 -0.74384949 -0.6652177 -0.66294408 -0.66064822\n", - " -0.65833132 -0.65599456 -0.6536392 ]\n", - "Feature max values after scaling:\n", - " [0. 1.71737253 1.75576555 2.20916295 2.23971032 2.26995402\n", - " 2.60543038 2.63162342 2.65743689 2.68286725 2.94273542 2.96631321\n", - " 2.98947894 3.01222822 3.034557 3.24159785 3.26297455 3.28391978\n", - " 3.30442964 3.32450054 3.34412923]\n", - "MSE after scaling: 0.00\n", - "R2 score for scaled data: 1.00\n" - ] - } - ], + "id": "4107c2c2", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "# Common imports\n", "import os\n", @@ -2847,8 +2326,10 @@ }, { "cell_type": "markdown", - "id": "ad5b41a1", - "metadata": {}, + "id": "2d2b728f", + "metadata": { + "editable": true + }, "source": [ "## Mathematical Interpretation of Ordinary Least Squares\n", "\n", @@ -2859,8 +2340,10 @@ }, { "cell_type": "markdown", - "id": "a93ce01c", - "metadata": {}, + "id": "aad9c099", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\hat{\\boldsymbol{\\beta}} = \\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", @@ -2869,8 +2352,10 @@ }, { "cell_type": "markdown", - "id": "2f89cf96", - "metadata": {}, + "id": "0e368ba4", + "metadata": { + "editable": true + }, "source": [ "The **hat** over $\\boldsymbol{\\beta}$ means we have the optimal parameters after minimization of the cost function.\n", "\n", @@ -2879,8 +2364,10 @@ }, { "cell_type": "markdown", - "id": "1bdec2cd", - "metadata": {}, + "id": "fc63cdcb", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{\\boldsymbol{y}}=\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}} = \\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", @@ -2889,16 +2376,20 @@ }, { "cell_type": "markdown", - "id": "d6090b0f", - "metadata": {}, + "id": "3469f96c", + "metadata": { + "editable": true + }, "source": [ "We now define a matrix" ] }, { "cell_type": "markdown", - "id": "71edebd0", - "metadata": {}, + "id": "b31ae9d4", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{A}=\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T.\n", @@ -2907,16 +2398,20 @@ }, { "cell_type": "markdown", - "id": "fc1b8e60", - "metadata": {}, + "id": "cb84304f", + "metadata": { + "editable": true + }, "source": [ "We can rewrite" ] }, { "cell_type": "markdown", - "id": "c407cc78", - "metadata": {}, + "id": "00ec7e13", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{\\boldsymbol{y}}=\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}} = \\boldsymbol{A}\\boldsymbol{y}.\n", @@ -2925,8 +2420,10 @@ }, { "cell_type": "markdown", - "id": "e674f439", - "metadata": {}, + "id": "0420fb1e", + "metadata": { + "editable": true + }, "source": [ "The matrix $\\boldsymbol{A}$ has the important property that $\\boldsymbol{A}^2=\\boldsymbol{A}$. This is the definition of a projection matrix.\n", "We can then interpret our optimal model $\\tilde{\\boldsymbol{y}}$ as being represented by an orthogonal projection of $\\boldsymbol{y}$ onto a space defined by the column vectors of $\\boldsymbol{X}$. In our case here the matrix $\\boldsymbol{A}$ is a square matrix. If it is a general rectangular matrix we have an oblique projection matrix." @@ -2934,8 +2431,10 @@ }, { "cell_type": "markdown", - "id": "6b5a2484", - "metadata": {}, + "id": "b598bd0a", + "metadata": { + "editable": true + }, "source": [ "## Residual Error\n", "\n", @@ -2944,8 +2443,10 @@ }, { "cell_type": "markdown", - "id": "631571fe", - "metadata": {}, + "id": "93865bfb", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\epsilon}=\\boldsymbol{y}-\\tilde{\\boldsymbol{y}}=\\left[\\boldsymbol{I}-\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\right]\\boldsymbol{y}.\n", @@ -2954,16 +2455,20 @@ }, { "cell_type": "markdown", - "id": "03e7938e", - "metadata": {}, + "id": "8425236f", + "metadata": { + "editable": true + }, "source": [ "The residual errors are then the projections of $\\boldsymbol{y}$ onto the orthogonal component of the space defined by the column vectors of $\\boldsymbol{X}$." ] }, { "cell_type": "markdown", - "id": "89c1cbc1", - "metadata": {}, + "id": "71d814fc", + "metadata": { + "editable": true + }, "source": [ "## Simple case\n", "\n", @@ -2972,8 +2477,10 @@ }, { "cell_type": "markdown", - "id": "997c8992", - "metadata": {}, + "id": "18b5777e", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{X}\\boldsymbol{X}^T = \\boldsymbol{I}.\n", @@ -2982,16 +2489,20 @@ }, { "cell_type": "markdown", - "id": "7c3ad56e", - "metadata": {}, + "id": "244dd800", + "metadata": { + "editable": true + }, "source": [ "In this case the matrix $\\boldsymbol{A}$ becomes" ] }, { "cell_type": "markdown", - "id": "4cc0e3f1", - "metadata": {}, + "id": "f056abef", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{A}=\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T)=\\boldsymbol{I},\n", @@ -3000,16 +2511,20 @@ }, { "cell_type": "markdown", - "id": "7304c055", - "metadata": {}, + "id": "9b06ee67", + "metadata": { + "editable": true + }, "source": [ "and we have the obvious case" ] }, { "cell_type": "markdown", - "id": "0a8db981", - "metadata": {}, + "id": "179dd59f", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\epsilon}=\\boldsymbol{y}-\\tilde{\\boldsymbol{y}}=0.\n", @@ -3018,16 +2533,20 @@ }, { "cell_type": "markdown", - "id": "d04ddf92", - "metadata": {}, + "id": "02a755af", + "metadata": { + "editable": true + }, "source": [ "This serves also as a useful test of our codes." ] }, { "cell_type": "markdown", - "id": "044bd0ca", - "metadata": {}, + "id": "aa4dd8c0", + "metadata": { + "editable": true + }, "source": [ "## The singular value decomposition\n", "\n", @@ -3064,8 +2583,10 @@ }, { "cell_type": "markdown", - "id": "ef9e05c1", - "metadata": {}, + "id": "9d9a43c2", + "metadata": { + "editable": true + }, "source": [ "## Linear Regression Problems\n", "\n", @@ -3079,8 +2600,10 @@ }, { "cell_type": "markdown", - "id": "d63adf14", - "metadata": {}, + "id": "eb0e61db", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*}\n", @@ -3100,8 +2623,10 @@ }, { "cell_type": "markdown", - "id": "5e78a531", - "metadata": {}, + "id": "f36d477e", + "metadata": { + "editable": true + }, "source": [ "The columns of $\\boldsymbol{X}$ are linearly dependent. We see this easily since the \n", "the first column is the row-wise sum of the other two columns. The rank (more correct,\n", @@ -3115,8 +2640,10 @@ }, { "cell_type": "markdown", - "id": "2744881a", - "metadata": {}, + "id": "f70cb326", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*}\n", @@ -3132,8 +2659,10 @@ }, { "cell_type": "markdown", - "id": "037e81db", - "metadata": {}, + "id": "0a7ac34e", + "metadata": { + "editable": true + }, "source": [ "We see easily that $\\mbox{det}(\\boldsymbol{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \\times (-1) - 1 \\times (-1) = 0$. Hence, $\\mathbf{X}$ is singular and its inverse is undefined.\n", "This is equivalent to saying that the matrix $\\boldsymbol{X}$ has at least an eigenvalue which is zero." @@ -3141,8 +2670,10 @@ }, { "cell_type": "markdown", - "id": "f21e5f16", - "metadata": {}, + "id": "80fc7ab8", + "metadata": { + "editable": true + }, "source": [ "## Fixing the singularity\n", "\n", @@ -3151,8 +2682,10 @@ }, { "cell_type": "markdown", - "id": "46f92b4a", - "metadata": {}, + "id": "d2a1e8f1", + "metadata": { + "editable": true + }, "source": [ "\n", "
          \n", @@ -3167,8 +2700,10 @@ }, { "cell_type": "markdown", - "id": "30476b84", - "metadata": {}, + "id": "3ef5d6bd", + "metadata": { + "editable": true + }, "source": [ "has linearly dependent column vectors, we will not be able to compute the inverse\n", "of $\\boldsymbol{X}^T\\boldsymbol{X}$ and we cannot find the parameters (estimators) $\\beta_i$. \n", @@ -3181,8 +2716,10 @@ }, { "cell_type": "markdown", - "id": "36716f3b", - "metadata": {}, + "id": "22032de1", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^{T} \\boldsymbol{X} \\rightarrow \\boldsymbol{X}^{T} \\boldsymbol{X}+\\lambda \\boldsymbol{I},\n", @@ -3191,16 +2728,20 @@ }, { "cell_type": "markdown", - "id": "a56a9662", - "metadata": {}, + "id": "3fd3d85a", + "metadata": { + "editable": true + }, "source": [ "where $\\boldsymbol{I}$ is the identity matrix. When we discuss **Ridge** regression this is actually what we end up evaluating. The parameter $\\lambda$ is called a hyperparameter. More about this later." ] }, { "cell_type": "markdown", - "id": "9484e1b3", - "metadata": {}, + "id": "2b3c587c", + "metadata": { + "editable": true + }, "source": [ "## Basic math of the SVD\n", "\n", @@ -3212,8 +2753,10 @@ }, { "cell_type": "markdown", - "id": "7d0e79fd", - "metadata": {}, + "id": "8967c4c4", + "metadata": { + "editable": true + }, "source": [ "$$\n", "(\\lambda_1,\\boldsymbol{u}_1),\\dots, (\\lambda_n,\\boldsymbol{u}_n),\n", @@ -3222,16 +2765,20 @@ }, { "cell_type": "markdown", - "id": "957d1974", - "metadata": {}, + "id": "4fbd74d7", + "metadata": { + "editable": true + }, "source": [ "and the eigenvalues are given by the diagonal matrix" ] }, { "cell_type": "markdown", - "id": "4da24ddd", - "metadata": {}, + "id": "74a6d631", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\Sigma}=\\mathrm{Diag}(\\lambda_1, \\dots,\\lambda_n).\n", @@ -3240,16 +2787,20 @@ }, { "cell_type": "markdown", - "id": "63934409", - "metadata": {}, + "id": "f18674dc", + "metadata": { + "editable": true + }, "source": [ "The matrix $\\boldsymbol{X}$ can be written in terms of an orthogonal/unitary transformation $\\boldsymbol{U}$" ] }, { "cell_type": "markdown", - "id": "3710e8a3", - "metadata": {}, + "id": "7785284e", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X} = \\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", @@ -3258,8 +2809,10 @@ }, { "cell_type": "markdown", - "id": "6fc2de6c", - "metadata": {}, + "id": "3a6c8bf4", + "metadata": { + "editable": true + }, "source": [ "with $\\boldsymbol{U}\\boldsymbol{U}^T=\\boldsymbol{I}$ or $\\boldsymbol{U}\\boldsymbol{U}^{\\dagger}=\\boldsymbol{I}$.\n", "\n", @@ -3268,8 +2821,10 @@ }, { "cell_type": "markdown", - "id": "5c7cbfc4", - "metadata": {}, + "id": "5dbc9b48", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X} = \\begin{bmatrix} \n", @@ -3281,8 +2836,10 @@ }, { "cell_type": "markdown", - "id": "30e83681", - "metadata": {}, + "id": "199aa6b0", + "metadata": { + "editable": true + }, "source": [ "is not diagonalizable, it is a so-called [defective matrix](https://en.wikipedia.org/wiki/Defective_matrix). It is easy to see that the condition\n", "$\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{X}^T\\boldsymbol{X}$ is not fulfilled." @@ -3290,8 +2847,10 @@ }, { "cell_type": "markdown", - "id": "10f85da7", - "metadata": {}, + "id": "95f50728", + "metadata": { + "editable": true + }, "source": [ "## The SVD, a Fantastic Algorithm\n", "\n", @@ -3308,8 +2867,10 @@ }, { "cell_type": "markdown", - "id": "f9269daa", - "metadata": {}, + "id": "b8cb1b13", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X} = \\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\n", @@ -3318,16 +2879,20 @@ }, { "cell_type": "markdown", - "id": "558c53b6", - "metadata": {}, + "id": "df9d2f8d", + "metadata": { + "editable": true + }, "source": [ "As an example, the above defective matrix can be decomposed as" ] }, { "cell_type": "markdown", - "id": "5f32a26d", - "metadata": {}, + "id": "cfc446e3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X} = \\frac{1}{\\sqrt{2}}\\begin{bmatrix} 1& 1 \\\\ 1& -1\\\\ \\end{bmatrix} \\begin{bmatrix} 2& 0 \\\\ 0& 0\\\\ \\end{bmatrix} \\frac{1}{\\sqrt{2}}\\begin{bmatrix} 1& -1 \\\\ 1& 1\\\\ \\end{bmatrix}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", @@ -3336,8 +2901,10 @@ }, { "cell_type": "markdown", - "id": "42617846", - "metadata": {}, + "id": "c633f00f", + "metadata": { + "editable": true + }, "source": [ "with eigenvalues $\\sigma_1=2$ and $\\sigma_2=0$. \n", "The SVD exits always! \n", @@ -3363,8 +2930,10 @@ }, { "cell_type": "markdown", - "id": "cc45bdee", - "metadata": {}, + "id": "e6633145", + "metadata": { + "editable": true + }, "source": [ "## Economy-size SVD\n", "\n", @@ -3388,8 +2957,10 @@ }, { "cell_type": "markdown", - "id": "f77eda9e", - "metadata": {}, + "id": "e3b9ee63", + "metadata": { + "editable": true + }, "source": [ "## Codes for the SVD" ] @@ -3397,8 +2968,11 @@ { "cell_type": "code", "execution_count": 26, - "id": "87edcbe8", - "metadata": {}, + "id": "460a54c6", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import numpy as np\n", @@ -3434,8 +3008,10 @@ }, { "cell_type": "markdown", - "id": "9594d07b", - "metadata": {}, + "id": "dd7e793f", + "metadata": { + "editable": true + }, "source": [ "The matrix $\\boldsymbol{X}$ has columns that are linearly dependent. The first\n", "column is the row-wise sum of the other two columns. The rank of a\n", @@ -3449,8 +3025,10 @@ }, { "cell_type": "markdown", - "id": "83495077", - "metadata": {}, + "id": "21a28d2f", + "metadata": { + "editable": true + }, "source": [ "## Note about SVD Calculations\n", "\n", @@ -3470,20 +3048,20 @@ }, { "cell_type": "markdown", - "id": "1f811c23", - "metadata": {}, + "id": "0466e9e9", + "metadata": { + "editable": true + }, "source": [ - "## Friday September 3\n", - "\n", - "[Video of Lecture from 2020](https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h20/forelesningsvideoer/LectureSeptember11.mp4?vrtx=view-as-webpage) and [handwritten notes](https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/NotesSeptember11.pdf)\n", - "\n", - "More material will be added here, see handwritten notes also. Note that this material will be cleaned up after the lecture of Friday September 3. See the handwritten notes from Friday's lecture at ." + "## Friday September 2" ] }, { "cell_type": "markdown", - "id": "4a266ed5", - "metadata": {}, + "id": "cbc489a5", + "metadata": { + "editable": true + }, "source": [ "## Mathematics of the SVD and implications\n", "\n", @@ -3494,8 +3072,10 @@ }, { "cell_type": "markdown", - "id": "175eb163", - "metadata": {}, + "id": "7a2e30f8", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}=\\begin{bmatrix}\n", @@ -3511,16 +3091,20 @@ }, { "cell_type": "markdown", - "id": "19a5e14c", - "metadata": {}, + "id": "083352fe", + "metadata": { + "editable": true + }, "source": [ "We can SVD decompose our matrix as" ] }, { "cell_type": "markdown", - "id": "11cf192a", - "metadata": {}, + "id": "eafaedd0", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", @@ -3529,8 +3113,10 @@ }, { "cell_type": "markdown", - "id": "f3e550d5", - "metadata": {}, + "id": "77c9a500", + "metadata": { + "editable": true + }, "source": [ "where $\\boldsymbol{U}$ is an orthogonal matrix of dimension $n\\times n$, meaning that $\\boldsymbol{U}\\boldsymbol{U}^T=\\boldsymbol{U}^T\\boldsymbol{U}=\\boldsymbol{I}_n$. Here $\\boldsymbol{I}_n$ is the unit matrix of dimension $n \\times n$.\n", "\n", @@ -3541,8 +3127,10 @@ }, { "cell_type": "markdown", - "id": "d53bb578", - "metadata": {}, + "id": "fe70b7df", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\sigma_0 > \\sigma_1 > \\sigma_2 > \\dots > \\sigma_{p-1} > 0.\n", @@ -3551,16 +3139,20 @@ }, { "cell_type": "markdown", - "id": "57f2f89f", - "metadata": {}, + "id": "544809ac", + "metadata": { + "editable": true + }, "source": [ "All values beyond $p-1$ are all zero." ] }, { "cell_type": "markdown", - "id": "0458c51f", - "metadata": {}, + "id": "01643345", + "metadata": { + "editable": true + }, "source": [ "## Example Matrix\n", "\n", @@ -3569,8 +3161,10 @@ }, { "cell_type": "markdown", - "id": "58155af6", - "metadata": {}, + "id": "bb30ad0f", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\Sigma}=\n", @@ -3584,16 +3178,20 @@ }, { "cell_type": "markdown", - "id": "a1996d9b", - "metadata": {}, + "id": "3725c7e1", + "metadata": { + "editable": true + }, "source": [ "The singular values are $\\sigma_0=2$ and $\\sigma_1=1$. It is common to rewrite the matrix $\\boldsymbol{\\Sigma}$ as" ] }, { "cell_type": "markdown", - "id": "583c5e45", - "metadata": {}, + "id": "237832a1", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\Sigma}=\n", @@ -3606,16 +3204,20 @@ }, { "cell_type": "markdown", - "id": "988f38ae", - "metadata": {}, + "id": "64722e29", + "metadata": { + "editable": true + }, "source": [ "where" ] }, { "cell_type": "markdown", - "id": "542eb473", - "metadata": {}, + "id": "1a4c89e2", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\tilde{\\Sigma}}=\n", @@ -3628,16 +3230,20 @@ }, { "cell_type": "markdown", - "id": "81dfd087", - "metadata": {}, + "id": "8e035efe", + "metadata": { + "editable": true + }, "source": [ "contains only the singular values. Note also (and we will use this below) that" ] }, { "cell_type": "markdown", - "id": "98e874a5", - "metadata": {}, + "id": "57bc943e", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}=\n", @@ -3650,16 +3256,20 @@ }, { "cell_type": "markdown", - "id": "431542eb", - "metadata": {}, + "id": "212af7c2", + "metadata": { + "editable": true + }, "source": [ "which is a $2\\times 2 $ matrix while" ] }, { "cell_type": "markdown", - "id": "3b821038", - "metadata": {}, + "id": "1a1a5efc", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T=\n", @@ -3673,8 +3283,10 @@ }, { "cell_type": "markdown", - "id": "0279e1cb", - "metadata": {}, + "id": "4e24ea2c", + "metadata": { + "editable": true + }, "source": [ "is a $3\\times 3 $ matrix. The last row and column of this last matrix\n", "contain only zeros. This will have important consequences for our SVD\n", @@ -3683,8 +3295,10 @@ }, { "cell_type": "markdown", - "id": "9d85ed00", - "metadata": {}, + "id": "2fb73025", + "metadata": { + "editable": true + }, "source": [ "## Setting up the Matrix to be inverted\n", "\n", @@ -3693,8 +3307,10 @@ }, { "cell_type": "markdown", - "id": "4224af8b", - "metadata": {}, + "id": "438ffaba", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", @@ -3703,16 +3319,20 @@ }, { "cell_type": "markdown", - "id": "8312e008", - "metadata": {}, + "id": "99129c0f", + "metadata": { + "editable": true + }, "source": [ "and using the orthogonality of the matrix $\\boldsymbol{U}$ we have" ] }, { "cell_type": "markdown", - "id": "9674e71f", - "metadata": {}, + "id": "870c52eb", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{V}^T.\n", @@ -3721,8 +3341,10 @@ }, { "cell_type": "markdown", - "id": "1dc69f6e", - "metadata": {}, + "id": "4494e480", + "metadata": { + "editable": true + }, "source": [ "We define $\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}=\\tilde{\\boldsymbol{\\Sigma}}^2$ which is a diagonal matrix containing only the singular values squared. It has dimensionality $p \\times p$.\n", "\n", @@ -3731,8 +3353,10 @@ }, { "cell_type": "markdown", - "id": "ad5b0673", - "metadata": {}, + "id": "104993a7", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=\\tilde{\\boldsymbol{\\Sigma}}^2.\n", @@ -3741,16 +3365,20 @@ }, { "cell_type": "markdown", - "id": "a955f323", - "metadata": {}, + "id": "949b0666", + "metadata": { + "editable": true + }, "source": [ "We can now insert the result for the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ into our equation for ordinary least squares where" ] }, { "cell_type": "markdown", - "id": "bb180718", - "metadata": {}, + "id": "c2c79819", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{y}_{\\mathrm{OLS}}=\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y},\n", @@ -3759,16 +3387,20 @@ }, { "cell_type": "markdown", - "id": "d869817e", - "metadata": {}, + "id": "6e1f9777", + "metadata": { + "editable": true + }, "source": [ "and using our SVD decomposition of $\\boldsymbol{X}$ we have" ] }, { "cell_type": "markdown", - "id": "f89bdf6f", - "metadata": {}, + "id": "988a58e8", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{y}_{\\mathrm{OLS}}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\\tilde{\\boldsymbol{\\Sigma}}^{-2}\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{y},\n", @@ -3777,16 +3409,20 @@ }, { "cell_type": "markdown", - "id": "a0b18249", - "metadata": {}, + "id": "fe62c7ba", + "metadata": { + "editable": true + }, "source": [ "which gives us, using the orthogonality of the matrices $\\boldsymbol{U}$ and $\\boldsymbol{V}$," ] }, { "cell_type": "markdown", - "id": "638cd1cd", - "metadata": {}, + "id": "fa7270b8", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{y}_{\\mathrm{OLS}}=\\boldsymbol{U}\\boldsymbol{U}^T\\boldsymbol{y}=\\sum_{i=0}^{p-1}\\boldsymbol{u}_i\\boldsymbol{u}^T_j\\boldsymbol{y},\n", @@ -3795,16 +3431,20 @@ }, { "cell_type": "markdown", - "id": "3f302527", - "metadata": {}, + "id": "f845749b", + "metadata": { + "editable": true + }, "source": [ "Note here that when we perform the multiplication of the various matrices, the orthogonal vectors of the matrix $\\boldsymbol{U}$" ] }, { "cell_type": "markdown", - "id": "8db82136", - "metadata": {}, + "id": "00150f9b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{U}=[\\boldsymbol{u}_0,\\boldsymbol{u}_1,\\dots,\\boldsymbol{u}_{n-1}],\n", @@ -3813,8 +3453,10 @@ }, { "cell_type": "markdown", - "id": "cf0ac2c9", - "metadata": {}, + "id": "5ad9b501", + "metadata": { + "editable": true + }, "source": [ "that belong to $i>p-1$, result in only zeros when we perform the multiplications. This means that the sum above has non-zero elements only up to $i=p-1$. This corresponds also to the number of singular values (these are all non-zero).\n", "\n", @@ -3823,8 +3465,10 @@ }, { "cell_type": "markdown", - "id": "cfa84fdc", - "metadata": {}, + "id": "72f20405", + "metadata": { + "editable": true + }, "source": [ "## Further properties (important for our analyses later)\n", "\n", @@ -3833,8 +3477,10 @@ }, { "cell_type": "markdown", - "id": "f308d879", - "metadata": {}, + "id": "2a3128af", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{V}^T.\n", @@ -3843,16 +3489,20 @@ }, { "cell_type": "markdown", - "id": "cfc8d50e", - "metadata": {}, + "id": "b1c729b1", + "metadata": { + "editable": true + }, "source": [ "If we now multiply from the right with $\\boldsymbol{V}$ (using the orthogonality of $\\boldsymbol{V}$) we get" ] }, { "cell_type": "markdown", - "id": "4578a076", - "metadata": {}, + "id": "7c162a1c", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{V}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}.\n", @@ -3861,8 +3511,10 @@ }, { "cell_type": "markdown", - "id": "ceaea02f", - "metadata": {}, + "id": "73e8c5dd", + "metadata": { + "editable": true + }, "source": [ "This means the vectors $\\boldsymbol{v}_i$ of the orthogonal matrix $\\boldsymbol{V}$ are the eigenvectors of the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$\n", "with eigenvalues given by the singular values squared, that is" @@ -3870,8 +3522,10 @@ }, { "cell_type": "markdown", - "id": "5595d033", - "metadata": {}, + "id": "abc2c7fb", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{v}_i=\\boldsymbol{v}_i\\sigma_i^2.\n", @@ -3880,16 +3534,20 @@ }, { "cell_type": "markdown", - "id": "a2b4b94e", - "metadata": {}, + "id": "e66e44f6", + "metadata": { + "editable": true + }, "source": [ "Similarly, if we use the SVD decomposition for the matrix $\\boldsymbol{X}\\boldsymbol{X}^T$, we have" ] }, { "cell_type": "markdown", - "id": "af283d4c", - "metadata": {}, + "id": "cc07831e", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T.\n", @@ -3898,16 +3556,20 @@ }, { "cell_type": "markdown", - "id": "2bdfba47", - "metadata": {}, + "id": "c23c98fb", + "metadata": { + "editable": true + }, "source": [ "If we now multiply from the right with $\\boldsymbol{U}$ (using the orthogonality of $\\boldsymbol{U}$) we get" ] }, { "cell_type": "markdown", - "id": "bb3c855d", - "metadata": {}, + "id": "8df03787", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left(\\boldsymbol{X}\\boldsymbol{X}^T\\right)\\boldsymbol{U}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T.\n", @@ -3916,8 +3578,10 @@ }, { "cell_type": "markdown", - "id": "f4d2ed1b", - "metadata": {}, + "id": "445bddc2", + "metadata": { + "editable": true + }, "source": [ "This means the vectors $\\boldsymbol{u}_i$ of the orthogonal matrix $\\boldsymbol{U}$ are the eigenvectors of the matrix $\\boldsymbol{X}\\boldsymbol{X}^T$\n", "with eigenvalues given by the singular values squared, that is" @@ -3925,8 +3589,10 @@ }, { "cell_type": "markdown", - "id": "3250e943", - "metadata": {}, + "id": "1923e2b6", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left(\\boldsymbol{X}\\boldsymbol{X}^T\\right)\\boldsymbol{u}_i=\\boldsymbol{u}_i\\sigma_i^2.\n", @@ -3935,8 +3601,10 @@ }, { "cell_type": "markdown", - "id": "122744d7", - "metadata": {}, + "id": "60533116", + "metadata": { + "editable": true + }, "source": [ "**Important note**: we have defined our design matrix $\\boldsymbol{X}$ to be an\n", "$n\\times p$ matrix. In most supervised learning cases we have that $n\n", @@ -3951,8 +3619,10 @@ }, { "cell_type": "markdown", - "id": "c970d800", - "metadata": {}, + "id": "cead831a", + "metadata": { + "editable": true + }, "source": [ "## Meet the Covariance Matrix\n", "\n", @@ -3965,8 +3635,10 @@ }, { "cell_type": "markdown", - "id": "1b3fd7ba", - "metadata": {}, + "id": "25a006c7", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial^2 C(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}^T\\partial \\boldsymbol{\\beta}} =\\frac{2}{n}\\boldsymbol{X}^T\\boldsymbol{X}.\n", @@ -3975,8 +3647,10 @@ }, { "cell_type": "markdown", - "id": "622b35d2", - "metadata": {}, + "id": "52846f89", + "metadata": { + "editable": true + }, "source": [ "This quantity defines was what is called the Hessian matrix (the second derivative of a function we want to optimize).\n", "\n", @@ -3985,8 +3659,10 @@ }, { "cell_type": "markdown", - "id": "bb65ea69", - "metadata": {}, + "id": "77ab000c", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{H}=\\boldsymbol{X}^T\\boldsymbol{X}.\n", @@ -3995,8 +3671,10 @@ }, { "cell_type": "markdown", - "id": "dd5b2301", - "metadata": {}, + "id": "0a3ddc06", + "metadata": { + "editable": true + }, "source": [ "The Hessian matrix for ordinary least squares is also proportional to\n", "the covariance matrix. This means also that we can use the SVD to find\n", @@ -4006,8 +3684,10 @@ }, { "cell_type": "markdown", - "id": "1518b5a6", - "metadata": {}, + "id": "18b92d45", + "metadata": { + "editable": true + }, "source": [ "## Introducing the Covariance and Correlation functions\n", "\n", @@ -4020,8 +3700,10 @@ }, { "cell_type": "markdown", - "id": "32731b28", - "metadata": {}, + "id": "ce2158b2", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", @@ -4032,16 +3714,20 @@ }, { "cell_type": "markdown", - "id": "1546b8ab", - "metadata": {}, + "id": "65be741f", + "metadata": { + "editable": true + }, "source": [ "where for example" ] }, { "cell_type": "markdown", - "id": "7b3b0e00", - "metadata": {}, + "id": "7c76799d", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] =\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})(y_i- \\overline{y}).\n", @@ -4050,16 +3736,20 @@ }, { "cell_type": "markdown", - "id": "404a1659", - "metadata": {}, + "id": "0c26f780", + "metadata": { + "editable": true + }, "source": [ "With this definition and recalling that the variance is defined as" ] }, { "cell_type": "markdown", - "id": "3a1ff8da", - "metadata": {}, + "id": "0322a50a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\mathrm{var}[\\boldsymbol{x}]=\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})^2,\n", @@ -4068,16 +3758,20 @@ }, { "cell_type": "markdown", - "id": "9e5fe3fe", - "metadata": {}, + "id": "1d6b6c20", + "metadata": { + "editable": true + }, "source": [ "we can rewrite the covariance matrix as" ] }, { "cell_type": "markdown", - "id": "e476e478", - "metadata": {}, + "id": "8a87cbab", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} \\mathrm{var}[\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", @@ -4088,8 +3782,10 @@ }, { "cell_type": "markdown", - "id": "035beba2", - "metadata": {}, + "id": "6d1453cc", + "metadata": { + "editable": true + }, "source": [ "**Note:** we have used $1/n$ in the above definitions of the *sample* variance and covariance. We assume then that we can calculate the exact mean value. \n", "What you will find in essentially all statistics texts are equations\n", @@ -4103,8 +3799,10 @@ }, { "cell_type": "markdown", - "id": "ce0c8788", - "metadata": {}, + "id": "8ae68bd9", + "metadata": { + "editable": true + }, "source": [ "## Covariance and Correlation Matrix\n", "\n", @@ -4117,8 +3815,10 @@ }, { "cell_type": "markdown", - "id": "8ee8be1b", - "metadata": {}, + "id": "391376b3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}]=\\frac{\\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}]}{\\sqrt{\\mathrm{var}[\\boldsymbol{x}] \\mathrm{var}[\\boldsymbol{y}]}}.\n", @@ -4127,8 +3827,10 @@ }, { "cell_type": "markdown", - "id": "e05c764a", - "metadata": {}, + "id": "0930f21a", + "metadata": { + "editable": true + }, "source": [ "The correlation function is then given by values $\\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}]\n", "\\in [-1,1]$. This avoids eventual problems with too large values. We\n", @@ -4138,8 +3840,10 @@ }, { "cell_type": "markdown", - "id": "e351ae83", - "metadata": {}, + "id": "0960ecfd", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{K}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} 1 & \\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", @@ -4150,16 +3854,20 @@ }, { "cell_type": "markdown", - "id": "00e81faf", - "metadata": {}, + "id": "f8c211c7", + "metadata": { + "editable": true + }, "source": [ "In the above example this is the function we constructed using **pandas**." ] }, { "cell_type": "markdown", - "id": "c2209483", - "metadata": {}, + "id": "660f0e48", + "metadata": { + "editable": true + }, "source": [ "## Correlation Function and Design/Feature Matrix\n", "\n", @@ -4169,8 +3877,10 @@ }, { "cell_type": "markdown", - "id": "fd757d09", - "metadata": {}, + "id": "c8f3a48a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}=\\begin{bmatrix}\n", @@ -4186,8 +3896,10 @@ }, { "cell_type": "markdown", - "id": "d3ddca6a", - "metadata": {}, + "id": "13852d99", + "metadata": { + "editable": true + }, "source": [ "with $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$, with the predictors/features $p$ refering to the column numbers and the\n", "entries $n$ being the row elements.\n", @@ -4196,8 +3908,10 @@ }, { "cell_type": "markdown", - "id": "0819a630", - "metadata": {}, + "id": "9caf69ed", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}=\\begin{bmatrix} \\boldsymbol{x}_0 & \\boldsymbol{x}_1 & \\boldsymbol{x}_2 & \\dots & \\dots & \\boldsymbol{x}_{p-1}\\end{bmatrix},\n", @@ -4206,16 +3920,20 @@ }, { "cell_type": "markdown", - "id": "8d70123f", - "metadata": {}, + "id": "b65b0452", + "metadata": { + "editable": true + }, "source": [ "with a given vector" ] }, { "cell_type": "markdown", - "id": "39032237", - "metadata": {}, + "id": "4fdb15c5", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{x}_i^T = \\begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \\dots & \\dots x_{n-1,i}\\end{bmatrix}.\n", @@ -4224,8 +3942,10 @@ }, { "cell_type": "markdown", - "id": "616bfec3", - "metadata": {}, + "id": "b25cf3af", + "metadata": { + "editable": true + }, "source": [ "With these definitions, we can now rewrite our $2\\times 2$\n", "correlation/covariance matrix in terms of a moe general design/feature\n", @@ -4235,8 +3955,10 @@ }, { "cell_type": "markdown", - "id": "3e0872f6", - "metadata": {}, + "id": "32007df3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{C}[\\boldsymbol{x}] = \\begin{bmatrix}\n", @@ -4252,16 +3974,20 @@ }, { "cell_type": "markdown", - "id": "a95cb740", - "metadata": {}, + "id": "72695d5a", + "metadata": { + "editable": true + }, "source": [ "and the correlation matrix" ] }, { "cell_type": "markdown", - "id": "97b7477a", - "metadata": {}, + "id": "c6672ffe", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{K}[\\boldsymbol{x}] = \\begin{bmatrix}\n", @@ -4277,8 +4003,10 @@ }, { "cell_type": "markdown", - "id": "089f07ac", - "metadata": {}, + "id": "382286a5", + "metadata": { + "editable": true + }, "source": [ "## Covariance Matrix Examples\n", "\n", @@ -4293,8 +4021,10 @@ }, { "cell_type": "markdown", - "id": "25fd911d", - "metadata": {}, + "id": "b0c4c797", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{W} = \\begin{bmatrix} x_0 & x_1 & x_2 & \\dots & x_{n-2} & x_{n-1} \\\\\n", @@ -4305,8 +4035,10 @@ }, { "cell_type": "markdown", - "id": "f03f377c", - "metadata": {}, + "id": "36fba640", + "metadata": { + "editable": true + }, "source": [ "which in turn is converted into into the $2\\times 2$ covariance matrix\n", "$\\boldsymbol{C}$ via the Numpy function **np.cov()**. We note that we can also calculate\n", @@ -4318,8 +4050,11 @@ { "cell_type": "code", "execution_count": 27, - "id": "b1661961", - "metadata": {}, + "id": "bf706a0d", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# Importing various packages\n", @@ -4336,8 +4071,10 @@ }, { "cell_type": "markdown", - "id": "f91ad28e", - "metadata": {}, + "id": "d1b4fd40", + "metadata": { + "editable": true + }, "source": [ "## Correlation Matrix\n", "\n", @@ -4351,8 +4088,11 @@ { "cell_type": "code", "execution_count": 28, - "id": "3ff08e48", - "metadata": {}, + "id": "2a6bd16e", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import numpy as np\n", @@ -4380,8 +4120,10 @@ }, { "cell_type": "markdown", - "id": "eed40eec", - "metadata": {}, + "id": "722eb589", + "metadata": { + "editable": true + }, "source": [ "We see that the matrix elements along the diagonal are one as they\n", "should be and that the matrix is symmetric. Furthermore, diagonalizing\n", @@ -4392,8 +4134,10 @@ }, { "cell_type": "markdown", - "id": "4aff4d1d", - "metadata": {}, + "id": "7f3497d4", + "metadata": { + "editable": true + }, "source": [ "## Correlation Matrix with Pandas\n", "\n", @@ -4403,8 +4147,11 @@ { "cell_type": "code", "execution_count": 29, - "id": "a3347660", - "metadata": {}, + "id": "7a301f46", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import numpy as np\n", @@ -4425,16 +4172,20 @@ }, { "cell_type": "markdown", - "id": "48a0cf23", - "metadata": {}, + "id": "50e01f52", + "metadata": { + "editable": true + }, "source": [ "We expand this model to the Franke function discussed above." ] }, { "cell_type": "markdown", - "id": "ee4d2fa0", - "metadata": {}, + "id": "f28301d6", + "metadata": { + "editable": true + }, "source": [ "## Correlation Matrix with Pandas and the Franke function" ] @@ -4442,8 +4193,11 @@ { "cell_type": "code", "execution_count": 30, - "id": "f370e6da", - "metadata": {}, + "id": "3951a832", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "# Common imports\n", @@ -4493,8 +4247,10 @@ }, { "cell_type": "markdown", - "id": "71b41cc3", - "metadata": {}, + "id": "8ad06af5", + "metadata": { + "editable": true + }, "source": [ "We note here that the covariance is zero for the first rows and\n", "columns since all matrix elements in the design matrix were set to one\n", @@ -4508,8 +4264,10 @@ }, { "cell_type": "markdown", - "id": "ec1bbf8b", - "metadata": {}, + "id": "17063f58", + "metadata": { + "editable": true + }, "source": [ "## Rewriting the Covariance and/or Correlation Matrix\n", "\n", @@ -4518,8 +4276,10 @@ }, { "cell_type": "markdown", - "id": "90bac5f3", - "metadata": {}, + "id": "4df5a82f", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{C}[\\boldsymbol{x}] = \\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X}= \\mathbb{E}[\\boldsymbol{X}^T\\boldsymbol{X}].\n", @@ -4528,16 +4288,20 @@ }, { "cell_type": "markdown", - "id": "8d0e3e56", - "metadata": {}, + "id": "bb789f76", + "metadata": { + "editable": true + }, "source": [ "To see this let us simply look at a design matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{2\\times 2}$" ] }, { "cell_type": "markdown", - "id": "a796bd05", - "metadata": {}, + "id": "bce50f33", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}=\\begin{bmatrix}\n", @@ -4551,16 +4315,20 @@ }, { "cell_type": "markdown", - "id": "860b78db", - "metadata": {}, + "id": "bbb48342", + "metadata": { + "editable": true + }, "source": [ "If we then compute the expectation value (note the $1/n$ factor instead of $1/(n-1)$)" ] }, { "cell_type": "markdown", - "id": "03e8fc84", - "metadata": {}, + "id": "c7759d29", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\mathbb{E}[\\boldsymbol{X}^T\\boldsymbol{X}] = \\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X}=\\frac{1}{n}\\begin{bmatrix}\n", @@ -4572,16 +4340,20 @@ }, { "cell_type": "markdown", - "id": "007e9517", - "metadata": {}, + "id": "ac240840", + "metadata": { + "editable": true + }, "source": [ "which is just" ] }, { "cell_type": "markdown", - "id": "4f59cf88", - "metadata": {}, + "id": "feac822f", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{C}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] = \\boldsymbol{C}[\\boldsymbol{x}]=\\begin{bmatrix} \\mathrm{var}[\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] \\\\\n", @@ -4592,8 +4364,10 @@ }, { "cell_type": "markdown", - "id": "1ffd6dae", - "metadata": {}, + "id": "b16a9f14", + "metadata": { + "editable": true + }, "source": [ "where we wrote $$\\boldsymbol{C}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] = \\boldsymbol{C}[\\boldsymbol{x}]$$ to indicate that this is the covariance of the vectors $\\boldsymbol{x}$ of the design/feature matrix $\\boldsymbol{X}$.\n", "\n", @@ -4602,8 +4376,10 @@ }, { "cell_type": "markdown", - "id": "48e43aec", - "metadata": {}, + "id": "ca333d33", + "metadata": { + "editable": true + }, "source": [ "## Linking with the SVD\n", "\n", @@ -4612,8 +4388,10 @@ }, { "cell_type": "markdown", - "id": "a9e79c63", - "metadata": {}, + "id": "46fc66c6", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{V}^T.\n", @@ -4622,16 +4400,20 @@ }, { "cell_type": "markdown", - "id": "53c6be82", - "metadata": {}, + "id": "f42055e7", + "metadata": { + "editable": true + }, "source": [ "Since the matrices here have dimension $p\\times p$, with $p$ corresponding to the singular values, we defined earlier the matrix" ] }, { "cell_type": "markdown", - "id": "f338f425", - "metadata": {}, + "id": "662ca199", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma} = \\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0}\\\\ \\end{bmatrix}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} \\\\ \\boldsymbol{0}\\\\ \\end{bmatrix},\n", @@ -4640,16 +4422,20 @@ }, { "cell_type": "markdown", - "id": "99d983a1", - "metadata": {}, + "id": "143a8cf7", + "metadata": { + "editable": true + }, "source": [ "where the tilde-matrix $\\tilde{\\boldsymbol{\\Sigma}}$ is a matrix of dimension $p\\times p$ containing only the singular values $\\sigma_i$, that is" ] }, { "cell_type": "markdown", - "id": "71c5eed8", - "metadata": {}, + "id": "382c0c14", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{\\boldsymbol{\\Sigma}}=\\begin{bmatrix} \\sigma_0 & 0 & 0 & \\dots & 0 & 0 \\\\\n", @@ -4663,16 +4449,20 @@ }, { "cell_type": "markdown", - "id": "f15223b4", - "metadata": {}, + "id": "20d8d486", + "metadata": { + "editable": true + }, "source": [ "meaning we can write" ] }, { "cell_type": "markdown", - "id": "413194f6", - "metadata": {}, + "id": "8fd19fa6", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\tilde{\\boldsymbol{\\Sigma}}^2\\boldsymbol{V}^T.\n", @@ -4681,16 +4471,20 @@ }, { "cell_type": "markdown", - "id": "dd296b3f", - "metadata": {}, + "id": "513650c9", + "metadata": { + "editable": true + }, "source": [ "Multiplying from the right with $\\boldsymbol{V}$ (using the orthogonality of $\\boldsymbol{V}$) we get" ] }, { "cell_type": "markdown", - "id": "9688049c", - "metadata": {}, + "id": "f263fab5", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{V}=\\boldsymbol{V}\\tilde{\\boldsymbol{\\Sigma}}^2.\n", @@ -4699,8 +4493,10 @@ }, { "cell_type": "markdown", - "id": "fe0ed0fb", - "metadata": {}, + "id": "66bab0c0", + "metadata": { + "editable": true + }, "source": [ "## What does it mean?\n", "\n", @@ -4711,8 +4507,10 @@ }, { "cell_type": "markdown", - "id": "49bcec1c", - "metadata": {}, + "id": "c5673072", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{v}_i=\\boldsymbol{v}_i\\sigma_i^2.\n", @@ -4721,8 +4519,10 @@ }, { "cell_type": "markdown", - "id": "d217e1c2", - "metadata": {}, + "id": "07bd061b", + "metadata": { + "editable": true + }, "source": [ "In other words, each non-zero singular value of $\\boldsymbol{X}$ is a positive\n", "square root of an eigenvalue of $\\boldsymbol{X}^T\\boldsymbol{X}$. It means also that\n", @@ -4741,8 +4541,10 @@ }, { "cell_type": "markdown", - "id": "3a1e3aaf", - "metadata": {}, + "id": "7d17272c", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{C}[\\boldsymbol{X}]=\\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X},\n", @@ -4751,8 +4553,10 @@ }, { "cell_type": "markdown", - "id": "ced3b70f", - "metadata": {}, + "id": "e48cbb4c", + "metadata": { + "editable": true + }, "source": [ "meaning that every squared non-singular value of $\\boldsymbol{X}$ divided by $n$ (\n", "the number of samples) are the eigenvalues of the covariance\n", @@ -4764,8 +4568,10 @@ }, { "cell_type": "markdown", - "id": "f2589fdd", - "metadata": {}, + "id": "8a7f97b9", + "metadata": { + "editable": true + }, "source": [ "## And finally $\\boldsymbol{X}\\boldsymbol{X}^T$\n", "\n", @@ -4774,8 +4580,10 @@ }, { "cell_type": "markdown", - "id": "02248c4a", - "metadata": {}, + "id": "7996e3bc", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{U}^T.\n", @@ -4784,16 +4592,20 @@ }, { "cell_type": "markdown", - "id": "96d09d6e", - "metadata": {}, + "id": "03393c29", + "metadata": { + "editable": true + }, "source": [ "Since the matrices here have dimension $n\\times n$, we have" ] }, { "cell_type": "markdown", - "id": "4b99c87c", - "metadata": {}, + "id": "2cb552ea", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T = \\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} \\\\ \\boldsymbol{0}\\\\ \\end{bmatrix}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} \\boldsymbol{0}\\\\ \\end{bmatrix}=\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0} \\\\ \\boldsymbol{0} & \\boldsymbol{0}\\\\ \\end{bmatrix},\n", @@ -4802,16 +4614,20 @@ }, { "cell_type": "markdown", - "id": "d8faf331", - "metadata": {}, + "id": "ae39e476", + "metadata": { + "editable": true + }, "source": [ "leading to" ] }, { "cell_type": "markdown", - "id": "0bb641d6", - "metadata": {}, + "id": "d6189c04", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{U}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0} \\\\ \\boldsymbol{0} & \\boldsymbol{0}\\\\ \\end{bmatrix}\\boldsymbol{U}^T.\n", @@ -4820,16 +4636,20 @@ }, { "cell_type": "markdown", - "id": "25ebcc39", - "metadata": {}, + "id": "b9284cba", + "metadata": { + "editable": true + }, "source": [ "Multiplying with $\\boldsymbol{U}$ from the right gives us the eigenvalue problem" ] }, { "cell_type": "markdown", - "id": "4b2f3c5f", - "metadata": {}, + "id": "99aca4c5", + "metadata": { + "editable": true + }, "source": [ "$$\n", "(\\boldsymbol{X}\\boldsymbol{X}^T)\\boldsymbol{U}=\\boldsymbol{U}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0} \\\\ \\boldsymbol{0} & \\boldsymbol{0}\\\\ \\end{bmatrix}.\n", @@ -4838,8 +4658,10 @@ }, { "cell_type": "markdown", - "id": "e9837512", - "metadata": {}, + "id": "08b82557", + "metadata": { + "editable": true + }, "source": [ "It means that the eigenvalues of $\\boldsymbol{X}\\boldsymbol{X}^T$ are again given by\n", "the non-zero singular values plus now a series of zeros. The column\n", @@ -4853,8 +4675,10 @@ }, { "cell_type": "markdown", - "id": "4d55630a", - "metadata": {}, + "id": "26e2bbec", + "metadata": { + "editable": true + }, "source": [ "## Ridge and LASSO Regression\n", "\n", @@ -4864,8 +4688,10 @@ }, { "cell_type": "markdown", - "id": "2a3f0995", - "metadata": {}, + "id": "2c67d9df", + "metadata": { + "editable": true + }, "source": [ "$$\n", "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in {\\mathbb{R}}^{p}}}\\frac{1}{n}\\left\\{\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)\\right\\}.\n", @@ -4874,16 +4700,20 @@ }, { "cell_type": "markdown", - "id": "417b607c", - "metadata": {}, + "id": "61dff7cb", + "metadata": { + "editable": true + }, "source": [ "or we can state it as" ] }, { "cell_type": "markdown", - "id": "aef4e4c9", - "metadata": {}, + "id": "9ffd1014", + "metadata": { + "editable": true + }, "source": [ "$$\n", "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in\n", @@ -4893,16 +4723,20 @@ }, { "cell_type": "markdown", - "id": "720d64d9", - "metadata": {}, + "id": "49d4546f", + "metadata": { + "editable": true + }, "source": [ "where we have used the definition of a norm-2 vector, that is" ] }, { "cell_type": "markdown", - "id": "580095be", - "metadata": {}, + "id": "393393c3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\vert\\vert \\boldsymbol{x}\\vert\\vert_2 = \\sqrt{\\sum_i x_i^2}.\n", @@ -4911,8 +4745,10 @@ }, { "cell_type": "markdown", - "id": "699717e7", - "metadata": {}, + "id": "1e88bc43", + "metadata": { + "editable": true + }, "source": [ "By minimizing the above equation with respect to the parameters\n", "$\\boldsymbol{\\beta}$ we could then obtain an analytical expression for the\n", @@ -4922,8 +4758,10 @@ }, { "cell_type": "markdown", - "id": "ceaebf06", - "metadata": {}, + "id": "c68d77e9", + "metadata": { + "editable": true + }, "source": [ "$$\n", "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in\n", @@ -4933,8 +4771,10 @@ }, { "cell_type": "markdown", - "id": "2c7e22af", - "metadata": {}, + "id": "806da181", + "metadata": { + "editable": true + }, "source": [ "which leads to the Ridge regression minimization problem where we\n", "require that $\\vert\\vert \\boldsymbol{\\beta}\\vert\\vert_2^2\\le t$, where $t$ is\n", @@ -4943,8 +4783,10 @@ }, { "cell_type": "markdown", - "id": "def3adb2", - "metadata": {}, + "id": "52431ab4", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{X},\\boldsymbol{\\beta})=\\frac{1}{n}\\vert\\vert \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\vert\\vert_2^2+\\lambda\\vert\\vert \\boldsymbol{\\beta}\\vert\\vert_1,\n", @@ -4953,16 +4795,20 @@ }, { "cell_type": "markdown", - "id": "73687e75", - "metadata": {}, + "id": "d929ad9b", + "metadata": { + "editable": true + }, "source": [ "we have a new optimization equation" ] }, { "cell_type": "markdown", - "id": "8e15f07f", - "metadata": {}, + "id": "80cb20da", + "metadata": { + "editable": true + }, "source": [ "$$\n", "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in\n", @@ -4972,8 +4818,10 @@ }, { "cell_type": "markdown", - "id": "6c53998d", - "metadata": {}, + "id": "3c3ac295", + "metadata": { + "editable": true + }, "source": [ "which leads to Lasso regression. Lasso stands for least absolute shrinkage and selection operator. \n", "\n", @@ -4982,8 +4830,10 @@ }, { "cell_type": "markdown", - "id": "89b9cbc4", - "metadata": {}, + "id": "533cb25b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\vert\\vert \\boldsymbol{x}\\vert\\vert_1 = \\sum_i \\vert x_i\\vert.\n", @@ -4992,8 +4842,10 @@ }, { "cell_type": "markdown", - "id": "357f8421", - "metadata": {}, + "id": "09a7af98", + "metadata": { + "editable": true + }, "source": [ "## Deriving the Ridge Regression Equations\n", "\n", @@ -5002,8 +4854,10 @@ }, { "cell_type": "markdown", - "id": "ef7abfcd", - "metadata": {}, + "id": "b8450765", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{X},\\boldsymbol{\\beta})=\\left\\{(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})^T(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\right\\}+\\lambda\\boldsymbol{\\beta}^T\\boldsymbol{\\beta},\n", @@ -5012,8 +4866,10 @@ }, { "cell_type": "markdown", - "id": "db09d607", - "metadata": {}, + "id": "10d56ab6", + "metadata": { + "editable": true + }, "source": [ "and \n", "taking the derivatives with respect to $\\boldsymbol{\\beta}$ we obtain then\n", @@ -5024,8 +4880,10 @@ }, { "cell_type": "markdown", - "id": "1fb685f5", - "metadata": {}, + "id": "b6f870bb", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\hat{\\boldsymbol{\\beta}}_{\\mathrm{Ridge}} = \\left(\\boldsymbol{X}^T\\boldsymbol{X}+\\lambda\\boldsymbol{I}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y},\n", @@ -5034,16 +4892,20 @@ }, { "cell_type": "markdown", - "id": "25fedebe", - "metadata": {}, + "id": "b1ca5c13", + "metadata": { + "editable": true + }, "source": [ "with $\\boldsymbol{I}$ being a $p\\times p$ identity matrix with the constraint that" ] }, { "cell_type": "markdown", - "id": "5de8bfbf", - "metadata": {}, + "id": "7845cebf", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\sum_{i=0}^{p-1} \\beta_i^2 \\leq t,\n", @@ -5052,8 +4914,10 @@ }, { "cell_type": "markdown", - "id": "3cdcc769", - "metadata": {}, + "id": "06812700", + "metadata": { + "editable": true + }, "source": [ "with $t$ a finite positive number. \n", "\n", @@ -5062,8 +4926,10 @@ }, { "cell_type": "markdown", - "id": "88b1d12e", - "metadata": {}, + "id": "99223f96", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\hat{\\boldsymbol{\\beta}}_{\\mathrm{Ridge}} = \\left(\\boldsymbol{X}^T\\boldsymbol{X}+n\\lambda\\boldsymbol{I}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", @@ -5072,8 +4938,10 @@ }, { "cell_type": "markdown", - "id": "187cbef2", - "metadata": {}, + "id": "733feba7", + "metadata": { + "editable": true + }, "source": [ "In many textbooks the $1/n$ term is often omitted. Note that a library like **Scikit-Learn** does not include the $1/n$ factor in the setup of the cost function.\n", "\n", @@ -5082,8 +4950,10 @@ }, { "cell_type": "markdown", - "id": "397694ac", - "metadata": {}, + "id": "5208f63b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\hat{\\boldsymbol{\\beta}}_{\\mathrm{OLS}} = \\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y},\n", @@ -5092,8 +4962,10 @@ }, { "cell_type": "markdown", - "id": "b02cd961", - "metadata": {}, + "id": "f4757521", + "metadata": { + "editable": true + }, "source": [ "which can lead to singular matrices. However, with the SVD, we can always compute the inverse of the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$.\n", "\n", @@ -5109,8 +4981,10 @@ }, { "cell_type": "markdown", - "id": "f80fdb0c", - "metadata": {}, + "id": "cbf0ce84", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{\\boldsymbol{y}}_{\\mathrm{OLS}}=\\boldsymbol{X}\\boldsymbol{\\beta} =\\boldsymbol{U}\\boldsymbol{U}^T\\boldsymbol{y}.\n", @@ -5119,16 +4993,20 @@ }, { "cell_type": "markdown", - "id": "b8421783", - "metadata": {}, + "id": "6ce5fe29", + "metadata": { + "editable": true + }, "source": [ "For Ridge regression this becomes" ] }, { "cell_type": "markdown", - "id": "615c1cb8", - "metadata": {}, + "id": "f11b7398", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\tilde{\\boldsymbol{y}}_{\\mathrm{Ridge}}=\\boldsymbol{X}\\boldsymbol{\\beta}_{\\mathrm{Ridge}} = \\boldsymbol{U\\Sigma V^T}\\left(\\boldsymbol{V}\\boldsymbol{\\Sigma}^2\\boldsymbol{V}^T+\\lambda\\boldsymbol{I} \\right)^{-1}(\\boldsymbol{U\\Sigma V^T})^T\\boldsymbol{y}=\\sum_{j=0}^{p-1}\\boldsymbol{u}_j\\boldsymbol{u}_j^T\\frac{\\sigma_j^2}{\\sigma_j^2+\\lambda}\\boldsymbol{y},\n", @@ -5137,16 +5015,20 @@ }, { "cell_type": "markdown", - "id": "dafe3b7e", - "metadata": {}, + "id": "af086f6d", + "metadata": { + "editable": true + }, "source": [ "with the vectors $\\boldsymbol{u}_j$ being the columns of $\\boldsymbol{U}$ from the SVD of the matrix $\\boldsymbol{X}$." ] }, { "cell_type": "markdown", - "id": "51dea34a", - "metadata": {}, + "id": "c2924353", + "metadata": { + "editable": true + }, "source": [ "## Interpreting the Ridge results\n", "\n", @@ -5155,8 +5037,10 @@ }, { "cell_type": "markdown", - "id": "5dd44f1b", - "metadata": {}, + "id": "2771d445", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\sigma_j^2}{\\sigma_j^2+\\lambda} \\leq 1.\n", @@ -5165,8 +5049,10 @@ }, { "cell_type": "markdown", - "id": "2f45c598", - "metadata": {}, + "id": "7a6ff466", + "metadata": { + "editable": true + }, "source": [ "Ridge regression finds the coordinates of $\\boldsymbol{y}$ with respect to the\n", "orthonormal basis $\\boldsymbol{U}$, it then shrinks the coordinates by\n", @@ -5179,8 +5065,10 @@ }, { "cell_type": "markdown", - "id": "17f9867f", - "metadata": {}, + "id": "5af821c9", + "metadata": { + "editable": true + }, "source": [ "## More interpretations\n", "\n", @@ -5189,8 +5077,10 @@ }, { "cell_type": "markdown", - "id": "583738d0", - "metadata": {}, + "id": "f5aa42bf", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}=(\\boldsymbol{X}^T\\boldsymbol{X})^{-1} =\\boldsymbol{I}.\n", @@ -5199,16 +5089,20 @@ }, { "cell_type": "markdown", - "id": "20d77427", - "metadata": {}, + "id": "316f57cc", + "metadata": { + "editable": true + }, "source": [ "In this case the standard OLS results in" ] }, { "cell_type": "markdown", - "id": "9e7706c5", - "metadata": {}, + "id": "c292a003", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\beta}^{\\mathrm{OLS}} = \\boldsymbol{X}^T\\boldsymbol{y}=\\sum_{i=0}^{p-1}\\boldsymbol{u}_j\\boldsymbol{u}_j^T\\boldsymbol{y},\n", @@ -5217,16 +5111,20 @@ }, { "cell_type": "markdown", - "id": "4da844c2", - "metadata": {}, + "id": "45e5165b", + "metadata": { + "editable": true + }, "source": [ "and" ] }, { "cell_type": "markdown", - "id": "525db3d4", - "metadata": {}, + "id": "49717c92", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{\\beta}^{\\mathrm{Ridge}} = \\left(\\boldsymbol{I}+\\lambda\\boldsymbol{I}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}=\\left(1+\\lambda\\right)^{-1}\\boldsymbol{\\beta}^{\\mathrm{OLS}},\n", @@ -5235,8 +5133,10 @@ }, { "cell_type": "markdown", - "id": "cd528cd6", - "metadata": {}, + "id": "97a0c23b", + "metadata": { + "editable": true + }, "source": [ "that is the Ridge estimator scales the OLS estimator by the inverse of a factor $1+\\lambda$, and\n", "the Ridge estimator converges to zero when the hyperparameter goes to\n", @@ -5250,8 +5150,10 @@ }, { "cell_type": "markdown", - "id": "efbcf3aa", - "metadata": {}, + "id": "330ce73a", + "metadata": { + "editable": true + }, "source": [ "## Deriving the Lasso Regression Equations\n", "\n", @@ -5260,8 +5162,10 @@ }, { "cell_type": "markdown", - "id": "41c8f3cb", - "metadata": {}, + "id": "6d7b002d", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{X},\\boldsymbol{\\beta})=\\left\\{(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})^T(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\right\\}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n", @@ -5270,16 +5174,20 @@ }, { "cell_type": "markdown", - "id": "896f0e84", - "metadata": {}, + "id": "416c99d3", + "metadata": { + "editable": true + }, "source": [ "Taking the derivative with respect to $\\boldsymbol{\\beta}$ and recalling that the derivative of the absolute value is (we drop the boldfaced vector symbol for simplicty)" ] }, { "cell_type": "markdown", - "id": "515a212f", - "metadata": {}, + "id": "d17f3500", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{d \\vert \\beta\\vert}{d \\boldsymbol{\\beta}}=\\mathrm{sgn}(\\boldsymbol{\\beta})=\\left\\{\\begin{array}{cc} 1 & \\beta > 0 \\\\ 0 & \\beta =0\\\\-1 & \\beta < 0, \\end{array}\\right.\n", @@ -5288,16 +5196,20 @@ }, { "cell_type": "markdown", - "id": "138183e2", - "metadata": {}, + "id": "bb7641db", + "metadata": { + "editable": true + }, "source": [ "we have that the derivative of the cost function is" ] }, { "cell_type": "markdown", - "id": "4e475fea", - "metadata": {}, + "id": "88cfef76", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial C(\\boldsymbol{X},\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}}=-2\\boldsymbol{X}^T(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})+\\lambda sgn(\\boldsymbol{\\beta})=0,\n", @@ -5306,16 +5218,20 @@ }, { "cell_type": "markdown", - "id": "4ed75094", - "metadata": {}, + "id": "9c13528c", + "metadata": { + "editable": true + }, "source": [ "and reordering we have" ] }, { "cell_type": "markdown", - "id": "d4bafc4a", - "metadata": {}, + "id": "0d7679bb", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\boldsymbol{X}^T\\boldsymbol{X}\\boldsymbol{\\beta})+\\lambda sgn(\\boldsymbol{\\beta})=2\\boldsymbol{X}^T(\\boldsymbol{y}.\n", @@ -5324,16 +5240,20 @@ }, { "cell_type": "markdown", - "id": "f1ba8e36", - "metadata": {}, + "id": "a6d38478", + "metadata": { + "editable": true + }, "source": [ "This equation does not lead to a nice analytical equation as in either Ridge regression or ordinary least squares. This equation can however be solved by using standard convex optimization algorithms using for example the Python package [CVXOPT](https://cvxopt.org/). We will discuss this later." ] }, { "cell_type": "markdown", - "id": "8efb3578", - "metadata": {}, + "id": "f2ea25db", + "metadata": { + "editable": true + }, "source": [ "## Exercises for week 36, September 6-10\n", "\n", @@ -5342,8 +5262,10 @@ }, { "cell_type": "markdown", - "id": "c413d900", - "metadata": {}, + "id": "3bbdcc57", + "metadata": { + "editable": true + }, "source": [ "## Exercise 1: Adding Ridge and Lasso Regression\n", "\n", @@ -5364,8 +5286,11 @@ { "cell_type": "code", "execution_count": 31, - "id": "afad0eab", - "metadata": {}, + "id": "75f7df50", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "x = np.random.rand(100)\n", @@ -5374,8 +5299,10 @@ }, { "cell_type": "markdown", - "id": "3f02a117", - "metadata": {}, + "id": "cd187f0b", + "metadata": { + "editable": true + }, "source": [ "Write your own code for the Ridge method (see chapter 3.4 of Hastie *et al.*, equations (3.43) and (3.44)) and compute the parametrization for different values of $\\lambda$. Compare and analyze your results with those from exercise 3. Study the dependence on $\\lambda$ while also varying the strength of the noise in your expression for $y(x)$. \n", "\n", @@ -5387,8 +5314,11 @@ { "cell_type": "code", "execution_count": 32, - "id": "b2c58e37", - "metadata": {}, + "id": "b405f2bc", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "import os\n", @@ -5464,8 +5394,10 @@ }, { "cell_type": "markdown", - "id": "dc07b126", - "metadata": {}, + "id": "1488d7c3", + "metadata": { + "editable": true + }, "source": [ "Repeat the above but using the functionality of\n", "**Scikit-Learn**. Compare your code with the results from\n", @@ -5477,8 +5409,10 @@ }, { "cell_type": "markdown", - "id": "f4d85b30", - "metadata": {}, + "id": "a941e20b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "MSE(\\hat{y},\\hat{\\tilde{y}}) = \\frac{1}{n}\n", @@ -5488,8 +5422,10 @@ }, { "cell_type": "markdown", - "id": "e08d2eda", - "metadata": {}, + "id": "56a27876", + "metadata": { + "editable": true + }, "source": [ "and the $R^2$ score function.\n", "If $\\tilde{\\hat{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as" @@ -5497,8 +5433,10 @@ }, { "cell_type": "markdown", - "id": "fd872c6f", - "metadata": {}, + "id": "f80ee5a2", + "metadata": { + "editable": true + }, "source": [ "$$\n", "R^2(\\hat{y}, \\tilde{\\hat{y}}) = 1 - \\frac{\\sum_{i=0}^{n - 1} (y_i - \\tilde{y}_i)^2}{\\sum_{i=0}^{n - 1} (y_i - \\bar{y})^2},\n", @@ -5507,16 +5445,20 @@ }, { "cell_type": "markdown", - "id": "977bd2c8", - "metadata": {}, + "id": "c1e9cced", + "metadata": { + "editable": true + }, "source": [ "where we have defined the mean value of $\\hat{y}$ as" ] }, { "cell_type": "markdown", - "id": "eeee30ad", - "metadata": {}, + "id": "e39f7404", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\bar{y} = \\frac{1}{n} \\sum_{i=0}^{n - 1} y_i.\n", @@ -5525,16 +5467,20 @@ }, { "cell_type": "markdown", - "id": "5bf6c9bc", - "metadata": {}, + "id": "34e83b50", + "metadata": { + "editable": true + }, "source": [ "Discuss these quantities as functions of the variable $\\lambda$ in the Ridge and Lasso regression methods." ] }, { "cell_type": "markdown", - "id": "c223eb1b", - "metadata": {}, + "id": "ea59251f", + "metadata": { + "editable": true + }, "source": [ "### Exercise: Linear Regression for a two-dimensional function\n", "\n", @@ -5554,8 +5500,10 @@ }, { "cell_type": "markdown", - "id": "45b1e7c9", - "metadata": {}, + "id": "e4450572", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\begin{align*}\n", @@ -5567,8 +5515,10 @@ }, { "cell_type": "markdown", - "id": "425075fd", - "metadata": {}, + "id": "a137f836", + "metadata": { + "editable": true + }, "source": [ "The function will be defined for $x,y\\in [0,1]$. Our first step will\n", "be to perform an OLS regression analysis of this function, trying out\n", @@ -5585,8 +5535,11 @@ { "cell_type": "code", "execution_count": 33, - "id": "05e1fa34", - "metadata": {}, + "id": "b25ec6b4", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "from mpl_toolkits.mplot3d import Axes3D\n", @@ -5632,8 +5585,10 @@ }, { "cell_type": "markdown", - "id": "b1e5347d", - "metadata": {}, + "id": "c8665f13", + "metadata": { + "editable": true + }, "source": [ "We will generate our own dataset for a function\n", "$\\mathrm{FrankeFunction}(x,y)$ with $x,y \\in [0,1]$. The function\n", @@ -5650,8 +5605,10 @@ }, { "cell_type": "markdown", - "id": "f60027f0", - "metadata": {}, + "id": "5f0a0382", + "metadata": { + "editable": true + }, "source": [ "$$\n", "MSE(\\hat{y},\\hat{\\tilde{y}}) = \\frac{1}{n}\n", @@ -5661,8 +5618,10 @@ }, { "cell_type": "markdown", - "id": "0c95b9d2", - "metadata": {}, + "id": "2c1525e9", + "metadata": { + "editable": true + }, "source": [ "and the $R^2$ score function. If $\\tilde{\\hat{y}}_i$ is the predicted\n", "value of the $i-th$ sample and $y_i$ is the corresponding true value,\n", @@ -5671,8 +5630,10 @@ }, { "cell_type": "markdown", - "id": "baf15958", - "metadata": {}, + "id": "e672995a", + "metadata": { + "editable": true + }, "source": [ "$$\n", "R^2(\\hat{y}, \\tilde{\\hat{y}}) = 1 - \\frac{\\sum_{i=0}^{n - 1} (y_i - \\tilde{y}_i)^2}{\\sum_{i=0}^{n - 1} (y_i - \\bar{y})^2},\n", @@ -5681,16 +5642,20 @@ }, { "cell_type": "markdown", - "id": "d7f9b2c0", - "metadata": {}, + "id": "74440d03", + "metadata": { + "editable": true + }, "source": [ "where we have defined the mean value of $\\hat{y}$ as" ] }, { "cell_type": "markdown", - "id": "93125b69", - "metadata": {}, + "id": "6a5e7573", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\bar{y} = \\frac{1}{n} \\sum_{i=0}^{n - 1} y_i.\n", @@ -5699,8 +5664,10 @@ }, { "cell_type": "markdown", - "id": "973a4d1a", - "metadata": {}, + "id": "f304109e", + "metadata": { + "editable": true + }, "source": [ "You should split your data in train and test and also consider scaling the data.\n", "\n", @@ -5710,8 +5677,11 @@ { "cell_type": "code", "execution_count": 34, - "id": "b173966c", - "metadata": {}, + "id": "e401828b", + "metadata": { + "collapsed": false, + "editable": true + }, "outputs": [], "source": [ "def FrankeFunction(x,y):\n", @@ -5750,8 +5720,10 @@ }, { "cell_type": "markdown", - "id": "59c6410f", - "metadata": {}, + "id": "813839cb", + "metadata": { + "editable": true + }, "source": [ "Write then your own code for the Ridge method or use **Scikit-Learn**.\n", "Perform the same analysis as you did for ordinary Least Squares (for the same polynomials) but now for different values of $\\lambda$. Compare and\n", @@ -5767,25 +5739,7 @@ ] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 5 } diff --git a/doc/src/week35/week35.do.txt b/doc/src/week35/week35.do.txt index 973434693..13f23d4b1 100644 --- a/doc/src/week35/week35.do.txt +++ b/doc/src/week35/week35.do.txt @@ -4,18 +4,16 @@ DATE: today !split -===== Plans for week 35, August 30 -September 3 ===== +===== Plans for week 35 ===== * Thursday: Review of ordinary Least Squares with applications and discussion of Ridge Regression and Singular Value Decomposition -* "Video of lecture Thursday":"https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember2.mp4?vrtx=view-as-webpage". * Friday: Analysis of Ridge and Lasso Regression and links with Singular Value Decomposition -* "Video of lecture Friday":"https://www.uio.no/studier/emner/matnat/fys/FYS-STK3155/h21/forelesningsvideoer/LectureSeptember3.mp4?vrtx=view-as-webpage" * "Video series on the SVD":"http://databookuw.com/page-2/page-4/". Highly recommended. !split -===== Thursday September 2 ===== +===== Thursday September 1 ===== The main topics on Thursday are: o Repetition from last week on linear regression @@ -1566,11 +1564,8 @@ example !split -===== Friday September 3 ===== +===== Friday September 2 ===== -"Video of Lecture from 2020":"https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h20/forelesningsvideoer/LectureSeptember11.mp4?vrtx=view-as-webpage" and "handwritten notes":"https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/NotesSeptember11.pdf" - -More material will be added here, see handwritten notes also. Note that this material will be cleaned up after the lecture of Friday September 3. See the handwritten notes from Friday's lecture at URL:"https://github.com/CompPhysics/MachineLearning/tree/master/doc/HandWrittenNotes/2021". !split