[{"data":1,"prerenderedAt":3445},["ShallowReactive",2],{"lang-switch-post-\u002Fplaylists\u002Fmachine-learning-specialization\u002Fw2-lab04-feature-engineering":3,"post-pt-machine-learning-specialization-w2-lab04-feature-engineering":4},"\u002Fen\u002Fplaylists\u002Fmachine-learning-specialization\u002Fw2-lab04-feature-engineering",{"id":5,"title":6,"body":7,"cover":3429,"date":3430,"description":3431,"extension":3432,"meta":3433,"navigation":3365,"order":3434,"path":3435,"playlist":3436,"seo":3437,"status":3438,"stem":3439,"tags":3440,"__hash__":3444},"posts\u002Fpt\u002Fplaylists\u002Fmachine-learning-specialization\u002Fw2-lab04-feature-engineering.md","Engenharia de Features e Regressão Polinomial",{"type":8,"value":9,"toc":3415},"minimark",[10,18,21,26,29,606,906,910,1079,1102,1162,1168,1263,1267,1862,1872,2142,2217,2221,2466,2470,2554,2559,2729,2733,2744,2749,2752,2840,2851,2855,2858,2864,2867,2870,2877,2881,2921,2925,3256,3260,3298,3301,3323,3335,3339,3351,3379,3395,3408,3411],[11,12,13],"p",{},[14,15],"img",{"alt":16,"src":17},"Meme \"Flex Tape\": em cima, um homem animado rotulado \"EU\" ao lado de um pote vazando água com a legenda \"MODELO FUNCIONANDO CADA VEZ MENOS PRECISO\". Embaixo, uma mão colando fita Flex Tape num vidro rachado que ainda vaza um pouco de água por baixo, rotulada \"ENGENHARIA DE FEATURES\"","\u002Fimages\u002Fposts\u002Fmachine-learning-specialization\u002Fw2-lab04-feature-engineering\u002Fmeme-feature-engineering.jpeg",[11,19,20],{},"Esse é o quarto lab da Semana 2, e o que eu esperava ser só \"mais um truque de matemática\" virou o post que mais me fez replanejar o que eu ia escrever. A ideia central cabe numa frase, mas as consequências dela (inclusive uma que o próprio lab original nunca menciona) tomaram o post inteiro.",[22,23,25],"h2",{"id":24},"a-ideia-central-linear-nos-parâmetros-não-na-feature","A ideia central: linear nos parâmetros, não na feature",[11,27,28],{},"Regressão linear ajusta modelos da forma",[11,30,31],{},[32,33,36,156],"span",{"className":34},[35],"katex",[32,37,40],{"className":38},[39],"katex-mathml",[41,42,44],"math",{"xmlns":43},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[45,46,47,151],"semantics",{},[48,49,50,71,75,78,81,84,92,98,101,108,114,116,119,121,135,147,149],"mrow",{},[51,52,53,57],"msub",{},[54,55,56],"mi",{},"f",[48,58,59,63,68],{},[54,60,62],{"mathvariant":61},"bold","w",[64,65,67],"mo",{"separator":66},"true",",",[54,69,70],{},"b",[64,72,74],{"stretchy":73},"false","(",[54,76,77],{"mathvariant":61},"x",[64,79,80],{"stretchy":73},")",[64,82,83],{},"=",[51,85,86,88],{},[54,87,62],{},[89,90,91],"mn",{},"0",[51,93,94,96],{},[54,95,77],{},[89,97,91],{},[64,99,100],{},"+",[51,102,103,105],{},[54,104,62],{},[89,106,107],{},"1",[51,109,110,112],{},[54,111,77],{},[89,113,107],{},[64,115,100],{},[64,117,118],{},"…",[64,120,100],{},[51,122,123,125],{},[54,124,62],{},[48,126,127,130,133],{},[54,128,129],{},"n",[64,131,132],{},"−",[89,134,107],{},[51,136,137,139],{},[54,138,77],{},[48,140,141,143,145],{},[54,142,129],{},[64,144,132],{},[89,146,107],{},[64,148,100],{},[54,150,70],{},[152,153,155],"annotation",{"encoding":154},"application\u002Fx-tex","f_{\\mathbf{w},b}(\\mathbf{x}) = w_0x_0 + w_1x_1 + \\ldots + w_{n-1}x_{n-1} + b",[32,157,160,263,366,461,481,596],{"className":158,"ariaHidden":66},[159],"katex-html",[32,161,164,169,240,244,247,251,256,260],{"className":162},[163],"base",[32,165],{"className":166,"style":168},[167],"strut","height:1.0361em;vertical-align:-0.2861em;",[32,170,173,178],{"className":171},[172],"mord",[32,174,56],{"className":175,"style":177},[172,176],"mathnormal","margin-right:0.1076em;",[32,179,182],{"className":180},[181],"msupsub",[32,183,187,231],{"className":184},[185,186],"vlist-t","vlist-t2",[32,188,191,226],{"className":189},[190],"vlist-r",[32,192,196],{"className":193,"style":195},[194],"vlist","height:0.3361em;",[32,197,199,204],{"style":198},"top:-2.55em;margin-left:-0.1076em;margin-right:0.05em;",[32,200],{"className":201,"style":203},[202],"pstrut","height:2.7em;",[32,205,211],{"className":206},[207,208,209,210],"sizing","reset-size6","size3","mtight",[32,212,214,219,223],{"className":213},[172,210],[32,215,62],{"className":216,"style":218},[172,217,210],"mathbf","margin-right:0.016em;",[32,220,67],{"className":221},[222,210],"mpunct",[32,224,70],{"className":225},[172,176,210],[32,227,230],{"className":228},[229],"vlist-s","​",[32,232,234],{"className":233},[190],[32,235,238],{"className":236,"style":237},[194],"height:0.2861em;",[32,239],{},[32,241,74],{"className":242},[243],"mopen",[32,245,77],{"className":246},[172,217],[32,248,80],{"className":249},[250],"mclose",[32,252],{"className":253,"style":255},[254],"mspace","margin-right:0.2778em;",[32,257,83],{"className":258},[259],"mrel",[32,261],{"className":262,"style":255},[254],[32,264,266,270,314,355,359,363],{"className":265},[163],[32,267],{"className":268,"style":269},[167],"height:0.7333em;vertical-align:-0.15em;",[32,271,273,277],{"className":272},[172],[32,274,62],{"className":275,"style":276},[172,176],"margin-right:0.0269em;",[32,278,280],{"className":279},[181],[32,281,283,305],{"className":282},[185,186],[32,284,286,302],{"className":285},[190],[32,287,290],{"className":288,"style":289},[194],"height:0.3011em;",[32,291,293,296],{"style":292},"top:-2.55em;margin-left:-0.0269em;margin-right:0.05em;",[32,294],{"className":295,"style":203},[202],[32,297,299],{"className":298},[207,208,209,210],[32,300,91],{"className":301},[172,210],[32,303,230],{"className":304},[229],[32,306,308],{"className":307},[190],[32,309,312],{"className":310,"style":311},[194],"height:0.15em;",[32,313],{},[32,315,317,320],{"className":316},[172],[32,318,77],{"className":319},[172,176],[32,321,323],{"className":322},[181],[32,324,326,347],{"className":325},[185,186],[32,327,329,344],{"className":328},[190],[32,330,332],{"className":331,"style":289},[194],[32,333,335,338],{"style":334},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[32,336],{"className":337,"style":203},[202],[32,339,341],{"className":340},[207,208,209,210],[32,342,91],{"className":343},[172,210],[32,345,230],{"className":346},[229],[32,348,350],{"className":349},[190],[32,351,353],{"className":352,"style":311},[194],[32,354],{},[32,356],{"className":357,"style":358},[254],"margin-right:0.2222em;",[32,360,100],{"className":361},[362],"mbin",[32,364],{"className":365,"style":358},[254],[32,367,369,372,412,452,455,458],{"className":368},[163],[32,370],{"className":371,"style":269},[167],[32,373,375,378],{"className":374},[172],[32,376,62],{"className":377,"style":276},[172,176],[32,379,381],{"className":380},[181],[32,382,384,404],{"className":383},[185,186],[32,385,387,401],{"className":386},[190],[32,388,390],{"className":389,"style":289},[194],[32,391,392,395],{"style":292},[32,393],{"className":394,"style":203},[202],[32,396,398],{"className":397},[207,208,209,210],[32,399,107],{"className":400},[172,210],[32,402,230],{"className":403},[229],[32,405,407],{"className":406},[190],[32,408,410],{"className":409,"style":311},[194],[32,411],{},[32,413,415,418],{"className":414},[172],[32,416,77],{"className":417},[172,176],[32,419,421],{"className":420},[181],[32,422,424,444],{"className":423},[185,186],[32,425,427,441],{"className":426},[190],[32,428,430],{"className":429,"style":289},[194],[32,431,432,435],{"style":334},[32,433],{"className":434,"style":203},[202],[32,436,438],{"className":437},[207,208,209,210],[32,439,107],{"className":440},[172,210],[32,442,230],{"className":443},[229],[32,445,447],{"className":446},[190],[32,448,450],{"className":449,"style":311},[194],[32,451],{},[32,453],{"className":454,"style":358},[254],[32,456,100],{"className":457},[362],[32,459],{"className":460,"style":358},[254],[32,462,464,468,472,475,478],{"className":463},[163],[32,465],{"className":466,"style":467},[167],"height:0.6667em;vertical-align:-0.0833em;",[32,469,118],{"className":470},[471],"minner",[32,473],{"className":474,"style":358},[254],[32,476,100],{"className":477},[362],[32,479],{"className":480,"style":358},[254],[32,482,484,488,538,587,590,593],{"className":483},[163],[32,485],{"className":486,"style":487},[167],"height:0.7917em;vertical-align:-0.2083em;",[32,489,491,494],{"className":490},[172],[32,492,62],{"className":493,"style":276},[172,176],[32,495,497],{"className":496},[181],[32,498,500,529],{"className":499},[185,186],[32,501,503,526],{"className":502},[190],[32,504,506],{"className":505,"style":289},[194],[32,507,508,511],{"style":292},[32,509],{"className":510,"style":203},[202],[32,512,514],{"className":513},[207,208,209,210],[32,515,517,520,523],{"className":516},[172,210],[32,518,129],{"className":519},[172,176,210],[32,521,132],{"className":522},[362,210],[32,524,107],{"className":525},[172,210],[32,527,230],{"className":528},[229],[32,530,532],{"className":531},[190],[32,533,536],{"className":534,"style":535},[194],"height:0.2083em;",[32,537],{},[32,539,541,544],{"className":540},[172],[32,542,77],{"className":543},[172,176],[32,545,547],{"className":546},[181],[32,548,550,579],{"className":549},[185,186],[32,551,553,576],{"className":552},[190],[32,554,556],{"className":555,"style":289},[194],[32,557,558,561],{"style":334},[32,559],{"className":560,"style":203},[202],[32,562,564],{"className":563},[207,208,209,210],[32,565,567,570,573],{"className":566},[172,210],[32,568,129],{"className":569},[172,176,210],[32,571,132],{"className":572},[362,210],[32,574,107],{"className":575},[172,210],[32,577,230],{"className":578},[229],[32,580,582],{"className":581},[190],[32,583,585],{"className":584,"style":535},[194],[32,586],{},[32,588],{"className":589,"style":358},[254],[32,591,100],{"className":592},[362],[32,594],{"className":595,"style":358},[254],[32,597,599,603],{"className":598},[163],[32,600],{"className":601,"style":602},[167],"height:0.6944em;",[32,604,70],{"className":605},[172,176],[11,607,608,609,613,614,658,659,730,731,794,795,842,843,872,873,901,902,905],{},"O que torna isso \"linear\" é a relação entre a saída e os ",[610,611,612],"strong",{},"parâmetros"," ",[32,615,617,635],{"className":616},[35],[32,618,620],{"className":619},[39],[41,621,622],{"xmlns":43},[45,623,624,632],{},[48,625,626,628,630],{},[54,627,62],{"mathvariant":61},[64,629,67],{"separator":66},[54,631,70],{},[152,633,634],{"encoding":154},"\\mathbf{w}, b",[32,636,638],{"className":637,"ariaHidden":66},[159],[32,639,641,645,648,651,655],{"className":640},[163],[32,642],{"className":643,"style":644},[167],"height:0.8889em;vertical-align:-0.1944em;",[32,646,62],{"className":647,"style":218},[172,217],[32,649,67],{"className":650},[222],[32,652],{"className":653,"style":654},[254],"margin-right:0.1667em;",[32,656,70],{"className":657},[172,176],", não a relação entre a saída e a variável original. Nada impede que ",[32,660,662,680],{"className":661},[35],[32,663,665],{"className":664},[39],[41,666,667],{"xmlns":43},[45,668,669,677],{},[48,670,671],{},[51,672,673,675],{},[54,674,77],{},[89,676,107],{},[152,678,679],{"encoding":154},"x_1",[32,681,683],{"className":682,"ariaHidden":66},[159],[32,684,686,690],{"className":685},[163],[32,687],{"className":688,"style":689},[167],"height:0.5806em;vertical-align:-0.15em;",[32,691,693,696],{"className":692},[172],[32,694,77],{"className":695},[172,176],[32,697,699],{"className":698},[181],[32,700,702,722],{"className":701},[185,186],[32,703,705,719],{"className":704},[190],[32,706,708],{"className":707,"style":289},[194],[32,709,710,713],{"style":334},[32,711],{"className":712,"style":203},[202],[32,714,716],{"className":715},[207,208,209,210],[32,717,107],{"className":718},[172,210],[32,720,230],{"className":721},[229],[32,723,725],{"className":724},[190],[32,726,728],{"className":727,"style":311},[194],[32,729],{}," seja, ele próprio, ",[32,732,734,754],{"className":733},[35],[32,735,737],{"className":736},[39],[41,738,739],{"xmlns":43},[45,740,741,751],{},[48,742,743],{},[744,745,746,748],"msup",{},[54,747,77],{},[89,749,750],{},"2",[152,752,753],{"encoding":154},"x^2",[32,755,757],{"className":756,"ariaHidden":66},[159],[32,758,760,764],{"className":759},[163],[32,761],{"className":762,"style":763},[167],"height:0.8141em;",[32,765,767,770],{"className":766},[172],[32,768,77],{"className":769},[172,176],[32,771,773],{"className":772},[181],[32,774,776],{"className":775},[185],[32,777,779],{"className":778},[190],[32,780,782],{"className":781,"style":763},[194],[32,783,785,788],{"style":784},"top:-3.063em;margin-right:0.05em;",[32,786],{"className":787,"style":203},[202],[32,789,791],{"className":790},[207,208,209,210],[32,792,750],{"className":793},[172,210],", ou ",[32,796,798,818],{"className":797},[35],[32,799,801],{"className":800},[39],[41,802,803],{"xmlns":43},[45,804,805,815],{},[48,806,807,810,813],{},[54,808,809],{},"log",[64,811,812],{},"⁡",[54,814,77],{},[152,816,817],{"encoding":154},"\\log x",[32,819,821],{"className":820,"ariaHidden":66},[159],[32,822,824,827,836,839],{"className":823},[163],[32,825],{"className":826,"style":644},[167],[32,828,831,832],{"className":829},[830],"mop","lo",[32,833,835],{"style":834},"margin-right:0.0139em;","g",[32,837],{"className":838,"style":654},[254],[32,840,77],{"className":841},[172,176],", ou o produto de duas outras colunas. Por mais que eu ajuste ",[32,844,846,859],{"className":845},[35],[32,847,849],{"className":848},[39],[41,850,851],{"xmlns":43},[45,852,853,857],{},[48,854,855],{},[54,856,62],{},[152,858,62],{"encoding":154},[32,860,862],{"className":861,"ariaHidden":66},[159],[32,863,865,869],{"className":864},[163],[32,866],{"className":867,"style":868},[167],"height:0.4306em;",[32,870,62],{"className":871,"style":276},[172,176]," e ",[32,874,876,889],{"className":875},[35],[32,877,879],{"className":878},[39],[41,880,881],{"xmlns":43},[45,882,883,887],{},[48,884,885],{},[54,886,70],{},[152,888,70],{"encoding":154},[32,890,892],{"className":891,"ariaHidden":66},[159],[32,893,895,898],{"className":894},[163],[32,896],{"className":897,"style":602},[167],[32,899,70],{"className":900},[172,176],", a equação nunca vira uma curva se as features forem retas. Mas se eu ",[610,903,904],{},"criar"," uma feature curva e jogar ela lá dentro, a mesma maquinaria de sempre ajusta a curva. Isso é engenharia de features.",[22,907,909],{"id":908},"features-polinomiais-na-prática","Features polinomiais na prática",[11,911,912,913,1020,1021,1049,1050,1078],{},"Testei isso com um alvo simples: ",[32,914,916,943],{"className":915},[35],[32,917,919],{"className":918},[39],[41,920,921],{"xmlns":43},[45,922,923,940],{},[48,924,925,928,930,932,934],{},[54,926,927],{},"y",[64,929,83],{},[89,931,107],{},[64,933,100],{},[744,935,936,938],{},[54,937,77],{},[89,939,750],{},[152,941,942],{"encoding":154},"y = 1 + x^2",[32,944,946,966,985],{"className":945,"ariaHidden":66},[159],[32,947,949,953,957,960,963],{"className":948},[163],[32,950],{"className":951,"style":952},[167],"height:0.625em;vertical-align:-0.1944em;",[32,954,927],{"className":955,"style":956},[172,176],"margin-right:0.0359em;",[32,958],{"className":959,"style":255},[254],[32,961,83],{"className":962},[259],[32,964],{"className":965,"style":255},[254],[32,967,969,973,976,979,982],{"className":968},[163],[32,970],{"className":971,"style":972},[167],"height:0.7278em;vertical-align:-0.0833em;",[32,974,107],{"className":975},[172],[32,977],{"className":978,"style":358},[254],[32,980,100],{"className":981},[362],[32,983],{"className":984,"style":358},[254],[32,986,988,991],{"className":987},[163],[32,989],{"className":990,"style":763},[167],[32,992,994,997],{"className":993},[172],[32,995,77],{"className":996},[172,176],[32,998,1000],{"className":999},[181],[32,1001,1003],{"className":1002},[185],[32,1004,1006],{"className":1005},[190],[32,1007,1009],{"className":1008,"style":763},[194],[32,1010,1011,1014],{"style":784},[32,1012],{"className":1013,"style":203},[202],[32,1015,1017],{"className":1016},[207,208,209,210],[32,1018,750],{"className":1019},[172,210],", pra ",[32,1022,1024,1037],{"className":1023},[35],[32,1025,1027],{"className":1026},[39],[41,1028,1029],{"xmlns":43},[45,1030,1031,1035],{},[48,1032,1033],{},[54,1034,77],{},[152,1036,77],{"encoding":154},[32,1038,1040],{"className":1039,"ariaHidden":66},[159],[32,1041,1043,1046],{"className":1042},[163],[32,1044],{"className":1045,"style":868},[167],[32,1047,77],{"className":1048},[172,176]," de 0 a 19. Primeiro, a tentativa ingênua: jogar o ",[32,1051,1053,1066],{"className":1052},[35],[32,1054,1056],{"className":1055},[39],[41,1057,1058],{"xmlns":43},[45,1059,1060,1064],{},[48,1061,1062],{},[54,1063,77],{},[152,1065,77],{"encoding":154},[32,1067,1069],{"className":1068,"ariaHidden":66},[159],[32,1070,1072,1075],{"className":1071},[163],[32,1073],{"className":1074,"style":868},[167],[32,1076,77],{"className":1077},[172,176]," cru no modelo.",[1080,1081,1086],"pre",{"className":1082,"code":1083,"language":1084,"meta":1085,"style":1085},"language-python shiki shiki-themes github-light github-dark","x = list(range(20))\ny = [1 + xi**2 for xi in x]\n","python","",[1087,1088,1089,1096],"code",{"__ignoreMap":1085},[32,1090,1093],{"class":1091,"line":1092},"line",1,[32,1094,1095],{},"x = list(range(20))\n",[32,1097,1099],{"class":1091,"line":1098},2,[32,1100,1101],{},"y = [1 + xi**2 for xi in x]\n",[11,1103,1104,1105,872,1133,1161],{},"Arrasta o grau pra 1 no simulador abaixo e repara: nenhum valor de ",[32,1106,1108,1121],{"className":1107},[35],[32,1109,1111],{"className":1110},[39],[41,1112,1113],{"xmlns":43},[45,1114,1115,1119],{},[48,1116,1117],{},[54,1118,62],{},[152,1120,62],{"encoding":154},[32,1122,1124],{"className":1123,"ariaHidden":66},[159],[32,1125,1127,1130],{"className":1126},[163],[32,1128],{"className":1129,"style":868},[167],[32,1131,62],{"className":1132,"style":276},[172,176],[32,1134,1136,1149],{"className":1135},[35],[32,1137,1139],{"className":1138},[39],[41,1140,1141],{"xmlns":43},[45,1142,1143,1147],{},[48,1144,1145],{},[54,1146,70],{},[152,1148,70],{"encoding":154},[32,1150,1152],{"className":1151,"ariaHidden":66},[159],[32,1153,1155,1158],{"className":1154},[163],[32,1156],{"className":1157,"style":602},[167],[32,1159,70],{"className":1160},[172,176]," conserta isso, porque o modelo é uma reta e o alvo é uma parábola. Agora arrasta pra 2:",[1163,1164],"polynomial-fit-explorer",{":initial-degree":107,":max-degree":1165,":x-train":1166,":y-train":1167,"x-label":77,"y-label":927},"4","[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]","[1,2,5,10,17,26,37,50,65,82,101,122,145,170,197,226,257,290,325,362]",[11,1169,1170,1171,1174,1175,1203,1204,1262],{},"No grau 2 o ajuste vira exato, RMSE zero. O que eu troquei não foi o algoritmo, foi a ",[610,1172,1173],{},"feature",": em vez de ",[32,1176,1178,1191],{"className":1177},[35],[32,1179,1181],{"className":1180},[39],[41,1182,1183],{"xmlns":43},[45,1184,1185,1189],{},[48,1186,1187],{},[54,1188,77],{},[152,1190,77],{"encoding":154},[32,1192,1194],{"className":1193,"ariaHidden":66},[159],[32,1195,1197,1200],{"className":1196},[163],[32,1198],{"className":1199,"style":868},[167],[32,1201,77],{"className":1202},[172,176],", entrei com ",[32,1205,1207,1224],{"className":1206},[35],[32,1208,1210],{"className":1209},[39],[41,1211,1212],{"xmlns":43},[45,1213,1214,1222],{},[48,1215,1216],{},[744,1217,1218,1220],{},[54,1219,77],{},[89,1221,750],{},[152,1223,753],{"encoding":154},[32,1225,1227],{"className":1226,"ariaHidden":66},[159],[32,1228,1230,1233],{"className":1229},[163],[32,1231],{"className":1232,"style":763},[167],[32,1234,1236,1239],{"className":1235},[172],[32,1237,77],{"className":1238},[172,176],[32,1240,1242],{"className":1241},[181],[32,1243,1245],{"className":1244},[185],[32,1246,1248],{"className":1247},[190],[32,1249,1251],{"className":1250,"style":763},[194],[32,1252,1253,1256],{"style":784},[32,1254],{"className":1255,"style":203},[202],[32,1257,1259],{"className":1258},[207,208,209,210],[32,1260,750],{"className":1261},[172,210]," (e o resto do polinômio) e deixei a mesma regressão linear de sempre encontrar o peso certo.",[22,1264,1266],{"id":1265},"escolhendo-features-sem-saber-a-resposta-de-antemão","Escolhendo features, sem saber a resposta de antemão",[11,1268,1269,1270,1273,1274,1332,1333,1650,1651,1709,1710,872,1738,1797,1798,1856,1857,1861],{},"Ali em cima eu ",[610,1271,1272],{},"já sabia"," que o termo certo era ",[32,1275,1277,1294],{"className":1276},[35],[32,1278,1280],{"className":1279},[39],[41,1281,1282],{"xmlns":43},[45,1283,1284,1292],{},[48,1285,1286],{},[744,1287,1288,1290],{},[54,1289,77],{},[89,1291,750],{},[152,1293,753],{"encoding":154},[32,1295,1297],{"className":1296,"ariaHidden":66},[159],[32,1298,1300,1303],{"className":1299},[163],[32,1301],{"className":1302,"style":763},[167],[32,1304,1306,1309],{"className":1305},[172],[32,1307,77],{"className":1308},[172,176],[32,1310,1312],{"className":1311},[181],[32,1313,1315],{"className":1314},[185],[32,1316,1318],{"className":1317},[190],[32,1319,1321],{"className":1320,"style":763},[194],[32,1322,1323,1326],{"style":784},[32,1324],{"className":1325,"style":203},[202],[32,1327,1329],{"className":1328},[207,208,209,210],[32,1330,750],{"className":1331},[172,210],". Na prática, você não sabe. Uma estratégia é jogar vários candidatos e deixar o ajuste decidir: testei ",[32,1334,1336,1393],{"className":1335},[35],[32,1337,1339],{"className":1338},[39],[41,1340,1341],{"xmlns":43},[45,1342,1343,1390],{},[48,1344,1345,1347,1349,1355,1357,1359,1365,1371,1373,1379,1386,1388],{},[54,1346,927],{},[64,1348,83],{},[51,1350,1351,1353],{},[54,1352,62],{},[89,1354,91],{},[54,1356,77],{},[64,1358,100],{},[51,1360,1361,1363],{},[54,1362,62],{},[89,1364,107],{},[744,1366,1367,1369],{},[54,1368,77],{},[89,1370,750],{},[64,1372,100],{},[51,1374,1375,1377],{},[54,1376,62],{},[89,1378,750],{},[744,1380,1381,1383],{},[54,1382,77],{},[89,1384,1385],{},"3",[64,1387,100],{},[54,1389,70],{},[152,1391,1392],{"encoding":154},"y = w_0x + w_1x^2 + w_2x^3 + b",[32,1394,1396,1414,1472,1557,1641],{"className":1395,"ariaHidden":66},[159],[32,1397,1399,1402,1405,1408,1411],{"className":1398},[163],[32,1400],{"className":1401,"style":952},[167],[32,1403,927],{"className":1404,"style":956},[172,176],[32,1406],{"className":1407,"style":255},[254],[32,1409,83],{"className":1410},[259],[32,1412],{"className":1413,"style":255},[254],[32,1415,1417,1420,1460,1463,1466,1469],{"className":1416},[163],[32,1418],{"className":1419,"style":269},[167],[32,1421,1423,1426],{"className":1422},[172],[32,1424,62],{"className":1425,"style":276},[172,176],[32,1427,1429],{"className":1428},[181],[32,1430,1432,1452],{"className":1431},[185,186],[32,1433,1435,1449],{"className":1434},[190],[32,1436,1438],{"className":1437,"style":289},[194],[32,1439,1440,1443],{"style":292},[32,1441],{"className":1442,"style":203},[202],[32,1444,1446],{"className":1445},[207,208,209,210],[32,1447,91],{"className":1448},[172,210],[32,1450,230],{"className":1451},[229],[32,1453,1455],{"className":1454},[190],[32,1456,1458],{"className":1457,"style":311},[194],[32,1459],{},[32,1461,77],{"className":1462},[172,176],[32,1464],{"className":1465,"style":358},[254],[32,1467,100],{"className":1468},[362],[32,1470],{"className":1471,"style":358},[254],[32,1473,1475,1479,1519,1548,1551,1554],{"className":1474},[163],[32,1476],{"className":1477,"style":1478},[167],"height:0.9641em;vertical-align:-0.15em;",[32,1480,1482,1485],{"className":1481},[172],[32,1483,62],{"className":1484,"style":276},[172,176],[32,1486,1488],{"className":1487},[181],[32,1489,1491,1511],{"className":1490},[185,186],[32,1492,1494,1508],{"className":1493},[190],[32,1495,1497],{"className":1496,"style":289},[194],[32,1498,1499,1502],{"style":292},[32,1500],{"className":1501,"style":203},[202],[32,1503,1505],{"className":1504},[207,208,209,210],[32,1506,107],{"className":1507},[172,210],[32,1509,230],{"className":1510},[229],[32,1512,1514],{"className":1513},[190],[32,1515,1517],{"className":1516,"style":311},[194],[32,1518],{},[32,1520,1522,1525],{"className":1521},[172],[32,1523,77],{"className":1524},[172,176],[32,1526,1528],{"className":1527},[181],[32,1529,1531],{"className":1530},[185],[32,1532,1534],{"className":1533},[190],[32,1535,1537],{"className":1536,"style":763},[194],[32,1538,1539,1542],{"style":784},[32,1540],{"className":1541,"style":203},[202],[32,1543,1545],{"className":1544},[207,208,209,210],[32,1546,750],{"className":1547},[172,210],[32,1549],{"className":1550,"style":358},[254],[32,1552,100],{"className":1553},[362],[32,1555],{"className":1556,"style":358},[254],[32,1558,1560,1563,1603,1632,1635,1638],{"className":1559},[163],[32,1561],{"className":1562,"style":1478},[167],[32,1564,1566,1569],{"className":1565},[172],[32,1567,62],{"className":1568,"style":276},[172,176],[32,1570,1572],{"className":1571},[181],[32,1573,1575,1595],{"className":1574},[185,186],[32,1576,1578,1592],{"className":1577},[190],[32,1579,1581],{"className":1580,"style":289},[194],[32,1582,1583,1586],{"style":292},[32,1584],{"className":1585,"style":203},[202],[32,1587,1589],{"className":1588},[207,208,209,210],[32,1590,750],{"className":1591},[172,210],[32,1593,230],{"className":1594},[229],[32,1596,1598],{"className":1597},[190],[32,1599,1601],{"className":1600,"style":311},[194],[32,1602],{},[32,1604,1606,1609],{"className":1605},[172],[32,1607,77],{"className":1608},[172,176],[32,1610,1612],{"className":1611},[181],[32,1613,1615],{"className":1614},[185],[32,1616,1618],{"className":1617},[190],[32,1619,1621],{"className":1620,"style":763},[194],[32,1622,1623,1626],{"style":784},[32,1624],{"className":1625,"style":203},[202],[32,1627,1629],{"className":1628},[207,208,209,210],[32,1630,1385],{"className":1631},[172,210],[32,1633],{"className":1634,"style":358},[254],[32,1636,100],{"className":1637},[362],[32,1639],{"className":1640,"style":358},[254],[32,1642,1644,1647],{"className":1643},[163],[32,1645],{"className":1646,"style":602},[167],[32,1648,70],{"className":1649},[172,176]," contra um alvo puro ",[32,1652,1654,1671],{"className":1653},[35],[32,1655,1657],{"className":1656},[39],[41,1658,1659],{"xmlns":43},[45,1660,1661,1669],{},[48,1662,1663],{},[744,1664,1665,1667],{},[54,1666,77],{},[89,1668,750],{},[152,1670,753],{"encoding":154},[32,1672,1674],{"className":1673,"ariaHidden":66},[159],[32,1675,1677,1680],{"className":1676},[163],[32,1678],{"className":1679,"style":763},[167],[32,1681,1683,1686],{"className":1682},[172],[32,1684,77],{"className":1685},[172,176],[32,1687,1689],{"className":1688},[181],[32,1690,1692],{"className":1691},[185],[32,1693,1695],{"className":1694},[190],[32,1696,1698],{"className":1697,"style":763},[194],[32,1699,1700,1703],{"style":784},[32,1701],{"className":1702,"style":203},[202],[32,1704,1706],{"className":1705},[207,208,209,210],[32,1707,750],{"className":1708},[172,210],", e o solver zerou os pesos de ",[32,1711,1713,1726],{"className":1712},[35],[32,1714,1716],{"className":1715},[39],[41,1717,1718],{"xmlns":43},[45,1719,1720,1724],{},[48,1721,1722],{},[54,1723,77],{},[152,1725,77],{"encoding":154},[32,1727,1729],{"className":1728,"ariaHidden":66},[159],[32,1730,1732,1735],{"className":1731},[163],[32,1733],{"className":1734,"style":868},[167],[32,1736,77],{"className":1737},[172,176],[32,1739,1741,1759],{"className":1740},[35],[32,1742,1744],{"className":1743},[39],[41,1745,1746],{"xmlns":43},[45,1747,1748,1756],{},[48,1749,1750],{},[744,1751,1752,1754],{},[54,1753,77],{},[89,1755,1385],{},[152,1757,1758],{"encoding":154},"x^3",[32,1760,1762],{"className":1761,"ariaHidden":66},[159],[32,1763,1765,1768],{"className":1764},[163],[32,1766],{"className":1767,"style":763},[167],[32,1769,1771,1774],{"className":1770},[172],[32,1772,77],{"className":1773},[172,176],[32,1775,1777],{"className":1776},[181],[32,1778,1780],{"className":1779},[185],[32,1781,1783],{"className":1782},[190],[32,1784,1786],{"className":1785,"style":763},[194],[32,1787,1788,1791],{"style":784},[32,1789],{"className":1790,"style":203},[202],[32,1792,1794],{"className":1793},[207,208,209,210],[32,1795,1385],{"className":1796},[172,210]," sozinho, deixando praticamente só o de ",[32,1799,1801,1818],{"className":1800},[35],[32,1802,1804],{"className":1803},[39],[41,1805,1806],{"xmlns":43},[45,1807,1808,1816],{},[48,1809,1810],{},[744,1811,1812,1814],{},[54,1813,77],{},[89,1815,750],{},[152,1817,753],{"encoding":154},[32,1819,1821],{"className":1820,"ariaHidden":66},[159],[32,1822,1824,1827],{"className":1823},[163],[32,1825],{"className":1826,"style":763},[167],[32,1828,1830,1833],{"className":1829},[172],[32,1831,77],{"className":1832},[172,176],[32,1834,1836],{"className":1835},[181],[32,1837,1839],{"className":1838},[185],[32,1840,1842],{"className":1841},[190],[32,1843,1845],{"className":1844,"style":763},[194],[32,1846,1847,1850],{"style":784},[32,1848],{"className":1849,"style":203},[202],[32,1851,1853],{"className":1852},[207,208,209,210],[32,1854,750],{"className":1855},[172,210]," de pé. (O notebook original faz essa mesma conta com gradiente descendente e só consegue ",[1858,1859,1860],"em",{},"reduzir"," os pesos errados, não zerá-los, porque a convergência nunca termina de verdade. Com solução exata, o resultado sai limpo.)",[11,1863,1864,1865,1868,1869,1871],{},"Outra forma de pensar: depois de criar as features, eu continuo fazendo regressão ",[610,1866,1867],{},"linear",". Então a melhor feature é a que tem relação ",[610,1870,1867],{}," com o alvo. Isso vira uma correlação de Pearson fácil de calcular:",[1873,1874,1875,1971],"table",{},[1876,1877,1878],"thead",{},[1879,1880,1881,1886],"tr",{},[1882,1883,1885],"th",{"align":1884},"left","Feature",[1882,1887,1889,1890],{"align":1888},"right","Correlação com ",[32,1891,1893,1915],{"className":1892},[35],[32,1894,1896],{"className":1895},[39],[41,1897,1898],{"xmlns":43},[45,1899,1900,1912],{},[48,1901,1902,1904,1906],{},[54,1903,927],{},[64,1905,83],{},[744,1907,1908,1910],{},[54,1909,77],{},[89,1911,750],{},[152,1913,1914],{"encoding":154},"y=x^2",[32,1916,1918,1936],{"className":1917,"ariaHidden":66},[159],[32,1919,1921,1924,1927,1930,1933],{"className":1920},[163],[32,1922],{"className":1923,"style":952},[167],[32,1925,927],{"className":1926,"style":956},[172,176],[32,1928],{"className":1929,"style":255},[254],[32,1931,83],{"className":1932},[259],[32,1934],{"className":1935,"style":255},[254],[32,1937,1939,1942],{"className":1938},[163],[32,1940],{"className":1941,"style":763},[167],[32,1943,1945,1948],{"className":1944},[172],[32,1946,77],{"className":1947},[172,176],[32,1949,1951],{"className":1950},[181],[32,1952,1954],{"className":1953},[185],[32,1955,1957],{"className":1956},[190],[32,1958,1960],{"className":1959,"style":763},[194],[32,1961,1962,1965],{"style":784},[32,1963],{"className":1964,"style":203},[202],[32,1966,1968],{"className":1967},[207,208,209,210],[32,1969,750],{"className":1970},[172,210],[1972,1973,1974,2010,2077],"tbody",{},[1879,1975,1976,2007],{},[1977,1978,1979],"td",{"align":1884},[32,1980,1982,1995],{"className":1981},[35],[32,1983,1985],{"className":1984},[39],[41,1986,1987],{"xmlns":43},[45,1988,1989,1993],{},[48,1990,1991],{},[54,1992,77],{},[152,1994,77],{"encoding":154},[32,1996,1998],{"className":1997,"ariaHidden":66},[159],[32,1999,2001,2004],{"className":2000},[163],[32,2002],{"className":2003,"style":868},[167],[32,2005,77],{"className":2006},[172,176],[1977,2008,2009],{"align":1888},"0.965",[1879,2011,2012,2072],{},[1977,2013,2014],{"align":1884},[32,2015,2017,2034],{"className":2016},[35],[32,2018,2020],{"className":2019},[39],[41,2021,2022],{"xmlns":43},[45,2023,2024,2032],{},[48,2025,2026],{},[744,2027,2028,2030],{},[54,2029,77],{},[89,2031,750],{},[152,2033,753],{"encoding":154},[32,2035,2037],{"className":2036,"ariaHidden":66},[159],[32,2038,2040,2043],{"className":2039},[163],[32,2041],{"className":2042,"style":763},[167],[32,2044,2046,2049],{"className":2045},[172],[32,2047,77],{"className":2048},[172,176],[32,2050,2052],{"className":2051},[181],[32,2053,2055],{"className":2054},[185],[32,2056,2058],{"className":2057},[190],[32,2059,2061],{"className":2060,"style":763},[194],[32,2062,2063,2066],{"style":784},[32,2064],{"className":2065,"style":203},[202],[32,2067,2069],{"className":2068},[207,208,209,210],[32,2070,750],{"className":2071},[172,210],[1977,2073,2074],{"align":1888},[610,2075,2076],{},"1.000",[1879,2078,2079,2139],{},[1977,2080,2081],{"align":1884},[32,2082,2084,2101],{"className":2083},[35],[32,2085,2087],{"className":2086},[39],[41,2088,2089],{"xmlns":43},[45,2090,2091,2099],{},[48,2092,2093],{},[744,2094,2095,2097],{},[54,2096,77],{},[89,2098,1385],{},[152,2100,1758],{"encoding":154},[32,2102,2104],{"className":2103,"ariaHidden":66},[159],[32,2105,2107,2110],{"className":2106},[163],[32,2108],{"className":2109,"style":763},[167],[32,2111,2113,2116],{"className":2112},[172],[32,2114,77],{"className":2115},[172,176],[32,2117,2119],{"className":2118},[181],[32,2120,2122],{"className":2121},[185],[32,2123,2125],{"className":2124},[190],[32,2126,2128],{"className":2127,"style":763},[194],[32,2129,2130,2133],{"style":784},[32,2131],{"className":2132,"style":203},[202],[32,2134,2136],{"className":2135},[207,208,209,210],[32,2137,1385],{"className":2138},[172,210],[1977,2140,2141],{"align":1888},"0.986",[11,2143,2144,2202,2203,2206,2207,2212,2213,2216],{},[32,2145,2147,2164],{"className":2146},[35],[32,2148,2150],{"className":2149},[39],[41,2151,2152],{"xmlns":43},[45,2153,2154,2162],{},[48,2155,2156],{},[744,2157,2158,2160],{},[54,2159,77],{},[89,2161,750],{},[152,2163,753],{"encoding":154},[32,2165,2167],{"className":2166,"ariaHidden":66},[159],[32,2168,2170,2173],{"className":2169},[163],[32,2171],{"className":2172,"style":763},[167],[32,2174,2176,2179],{"className":2175},[172],[32,2177,77],{"className":2178},[172,176],[32,2180,2182],{"className":2181},[181],[32,2183,2185],{"className":2184},[185],[32,2186,2188],{"className":2187},[190],[32,2189,2191],{"className":2190,"style":763},[194],[32,2192,2193,2196],{"style":784},[32,2194],{"className":2195,"style":203},[202],[32,2197,2199],{"className":2198},[207,208,209,210],[32,2200,750],{"className":2201},[172,210]," tem correlação perfeita porque ela ",[610,2204,2205],{},"é"," o alvo, a menos de escala. Já falei dessa mesma heurística (plotar feature contra alvo e procurar a reta) no ",[2208,2209,2211],"a",{"href":2210},"\u002Fplaylists\u002Fmachine-learning-specialization\u002Fw2-lab03-feature-scaling","post de normalização",", é a mesma ideia, só que agora aplicada pra escolher a ",[1858,2214,2215],{},"forma"," certa da feature, não só sua escala.",[22,2218,2220],{"id":2219},"normalizando-de-novo-versão-mais-extrema","Normalizando, de novo (versão mais extrema)",[11,2222,2223,2224,2252,2253,2311,2312,2370,2371,2374,2375,872,2403,2461,2462,2465],{},"Features polinomiais são o caso mais extremo de escalas diferentes que eu vi até agora: ",[32,2225,2227,2240],{"className":2226},[35],[32,2228,2230],{"className":2229},[39],[41,2231,2232],{"xmlns":43},[45,2233,2234,2238],{},[48,2235,2236],{},[54,2237,77],{},[152,2239,77],{"encoding":154},[32,2241,2243],{"className":2242,"ariaHidden":66},[159],[32,2244,2246,2249],{"className":2245},[163],[32,2247],{"className":2248,"style":868},[167],[32,2250,77],{"className":2251},[172,176]," vai até 19, ",[32,2254,2256,2273],{"className":2255},[35],[32,2257,2259],{"className":2258},[39],[41,2260,2261],{"xmlns":43},[45,2262,2263,2271],{},[48,2264,2265],{},[744,2266,2267,2269],{},[54,2268,77],{},[89,2270,750],{},[152,2272,753],{"encoding":154},[32,2274,2276],{"className":2275,"ariaHidden":66},[159],[32,2277,2279,2282],{"className":2278},[163],[32,2280],{"className":2281,"style":763},[167],[32,2283,2285,2288],{"className":2284},[172],[32,2286,77],{"className":2287},[172,176],[32,2289,2291],{"className":2290},[181],[32,2292,2294],{"className":2293},[185],[32,2295,2297],{"className":2296},[190],[32,2298,2300],{"className":2299,"style":763},[194],[32,2301,2302,2305],{"style":784},[32,2303],{"className":2304,"style":203},[202],[32,2306,2308],{"className":2307},[207,208,209,210],[32,2309,750],{"className":2310},[172,210]," até 361, ",[32,2313,2315,2332],{"className":2314},[35],[32,2316,2318],{"className":2317},[39],[41,2319,2320],{"xmlns":43},[45,2321,2322,2330],{},[48,2323,2324],{},[744,2325,2326,2328],{},[54,2327,77],{},[89,2329,1385],{},[152,2331,1758],{"encoding":154},[32,2333,2335],{"className":2334,"ariaHidden":66},[159],[32,2336,2338,2341],{"className":2337},[163],[32,2339],{"className":2340,"style":763},[167],[32,2342,2344,2347],{"className":2343},[172],[32,2345,77],{"className":2346},[172,176],[32,2348,2350],{"className":2349},[181],[32,2351,2353],{"className":2352},[185],[32,2354,2356],{"className":2355},[190],[32,2357,2359],{"className":2358,"style":763},[194],[32,2360,2361,2364],{"style":784},[32,2362],{"className":2363,"style":203},[202],[32,2365,2367],{"className":2366},[207,208,209,210],[32,2368,1385],{"className":2369},[172,210]," até 6859, uma razão de ",[610,2372,2373],{},"361 vezes"," só entre ",[32,2376,2378,2391],{"className":2377},[35],[32,2379,2381],{"className":2380},[39],[41,2382,2383],{"xmlns":43},[45,2384,2385,2389],{},[48,2386,2387],{},[54,2388,77],{},[152,2390,77],{"encoding":154},[32,2392,2394],{"className":2393,"ariaHidden":66},[159],[32,2395,2397,2400],{"className":2396},[163],[32,2398],{"className":2399,"style":868},[167],[32,2401,77],{"className":2402},[172,176],[32,2404,2406,2423],{"className":2405},[35],[32,2407,2409],{"className":2408},[39],[41,2410,2411],{"xmlns":43},[45,2412,2413,2421],{},[48,2414,2415],{},[744,2416,2417,2419],{},[54,2418,77],{},[89,2420,750],{},[152,2422,753],{"encoding":154},[32,2424,2426],{"className":2425,"ariaHidden":66},[159],[32,2427,2429,2432],{"className":2428},[163],[32,2430],{"className":2431,"style":763},[167],[32,2433,2435,2438],{"className":2434},[172],[32,2436,77],{"className":2437},[172,176],[32,2439,2441],{"className":2440},[181],[32,2442,2444],{"className":2443},[185],[32,2445,2447],{"className":2446},[190],[32,2448,2450],{"className":2449,"style":763},[194],[32,2451,2452,2455],{"style":784},[32,2453],{"className":2454,"style":203},[202],[32,2456,2458],{"className":2457},[207,208,209,210],[32,2459,750],{"className":2460},[172,210],". Mesmo truque do ",[2208,2463,2464],{"href":2210},"post anterior"," resolve: z-score em cada coluna, calculado só com o treino. O componente que eu construí pra esse post já normaliza por baixo dos panos antes de resolver, exatamente como fiz lá.",[22,2467,2469],{"id":2468},"uma-função-de-verdade-complicada","Uma função de verdade complicada",[11,2471,2472,2473,2553],{},"Com feature engineering dá pra modelar coisas bem mais malucas que uma parábola. Testei ",[32,2474,2476,2509],{"className":2475},[35],[32,2477,2479],{"className":2478},[39],[41,2480,2481],{"xmlns":43},[45,2482,2483,2506],{},[48,2484,2485,2487,2489,2492,2494,2496,2498,2502,2504],{},[54,2486,927],{},[64,2488,83],{},[54,2490,2491],{},"cos",[64,2493,812],{},[64,2495,74],{"stretchy":73},[54,2497,77],{},[54,2499,2501],{"mathvariant":2500},"normal","\u002F",[89,2503,750],{},[64,2505,80],{"stretchy":73},[152,2507,2508],{"encoding":154},"y = \\cos(x\u002F2)",[32,2510,2512,2530],{"className":2511,"ariaHidden":66},[159],[32,2513,2515,2518,2521,2524,2527],{"className":2514},[163],[32,2516],{"className":2517,"style":952},[167],[32,2519,927],{"className":2520,"style":956},[172,176],[32,2522],{"className":2523,"style":255},[254],[32,2525,83],{"className":2526},[259],[32,2528],{"className":2529,"style":255},[254],[32,2531,2533,2537,2540,2543,2546,2550],{"className":2532},[163],[32,2534],{"className":2535,"style":2536},[167],"height:1em;vertical-align:-0.25em;",[32,2538,2491],{"className":2539},[830],[32,2541,74],{"className":2542},[243],[32,2544,77],{"className":2545},[172,176],[32,2547,2549],{"className":2548},[172],"\u002F2",[32,2551,80],{"className":2552},[250]," com um polinômio de grau até 13:",[1163,2555],{":initial-degree":107,":max-degree":2556,":x-train":1166,":y-train":2557,"x-label":77,"y-label":2558},"13","[1.0,0.877583,0.540302,0.070737,-0.416147,-0.801144,-0.989992,-0.936457,-0.653644,-0.210796,0.283662,0.70867,0.96017,0.976588,0.753902,0.346635,-0.1455,-0.602012,-0.91113,-0.997172]","y = cos(x\u002F2)",[11,2560,2561,2562,2660,2661,2692,2693,2696,2697,2699,2700,2728],{},"Arrasta até o grau 13: RMSE cai pra ",[32,2563,2565,2595],{"className":2564},[35],[32,2566,2568],{"className":2567},[39],[41,2569,2570],{"xmlns":43},[45,2571,2572,2592],{},[48,2573,2574,2577,2580],{},[89,2575,2576],{},"1.1",[64,2578,2579],{},"×",[744,2581,2582,2585],{},[89,2583,2584],{},"10",[48,2586,2587,2589],{},[64,2588,132],{},[89,2590,2591],{},"5",[152,2593,2594],{"encoding":154},"1.1\\times10^{-5}",[32,2596,2598,2616],{"className":2597,"ariaHidden":66},[159],[32,2599,2601,2604,2607,2610,2613],{"className":2600},[163],[32,2602],{"className":2603,"style":972},[167],[32,2605,2576],{"className":2606},[172],[32,2608],{"className":2609,"style":358},[254],[32,2611,2579],{"className":2612},[362],[32,2614],{"className":2615,"style":358},[254],[32,2617,2619,2622,2625],{"className":2618},[163],[32,2620],{"className":2621,"style":763},[167],[32,2623,107],{"className":2624},[172],[32,2626,2628,2631],{"className":2627},[172],[32,2629,91],{"className":2630},[172],[32,2632,2634],{"className":2633},[181],[32,2635,2637],{"className":2636},[185],[32,2638,2640],{"className":2639},[190],[32,2641,2643],{"className":2642,"style":763},[194],[32,2644,2645,2648],{"style":784},[32,2646],{"className":2647,"style":203},[202],[32,2649,2651],{"className":2650},[207,208,209,210],[32,2652,2654,2657],{"className":2653},[172,210],[32,2655,132],{"className":2656},[172,210],[32,2658,2591],{"className":2659},[172,210],", um ajuste praticamente perfeito nos 20 pontos de treino. E aqui eu troquei de ferramenta de propósito: em vez de gradiente descendente com ",[32,2662,2664,2679],{"className":2663},[35],[32,2665,2667],{"className":2666},[39],[41,2668,2669],{"xmlns":43},[45,2670,2671,2676],{},[48,2672,2673],{},[54,2674,2675],{},"α",[152,2677,2678],{"encoding":154},"\\alpha",[32,2680,2682],{"className":2681,"ariaHidden":66},[159],[32,2683,2685,2688],{"className":2684},[163],[32,2686],{"className":2687,"style":868},[167],[32,2689,2675],{"className":2690,"style":2691},[172,176],"margin-right:0.0037em;"," ajustado na mão pra cada grau (o que o notebook original faz, e dá bastante trabalho), esse componente resolve por ",[610,2694,2695],{},"equação normal",", a mesma solução exata que eu já usei pra conferir resultado no ",[2208,2698,2464],{"href":2210},". Isso deixa explorar vários graus instantâneo, sem caçar ",[32,2701,2703,2716],{"className":2702},[35],[32,2704,2706],{"className":2705},[39],[41,2707,2708],{"xmlns":43},[45,2709,2710,2714],{},[48,2711,2712],{},[54,2713,2675],{},[152,2715,2678],{"encoding":154},[32,2717,2719],{"className":2718,"ariaHidden":66},[159],[32,2720,2722,2725],{"className":2721},[163],[32,2723],{"className":2724,"style":868},[167],[32,2726,2675],{"className":2727,"style":2691},[172,176]," de novo, e sobra atenção pro que importa de verdade aqui: o que acontece quando o modelo fica flexível demais.",[22,2730,2732],{"id":2731},"o-elefante-na-sala-overfitting","O elefante na sala: overfitting",[11,2734,2735,2736,2739,2740,2743],{},"Acabei de ajustar ",[610,2737,2738],{},"14 parâmetros"," (13 pesos + o viés) a ",[610,2741,2742],{},"20 pontos"," de dado. O ajuste ficou lindo. Isso deveria acender um alerta, não uma comemoração, e é exatamente o que o lab original nunca faz.",[2745,2746,2748],"h3",{"id":2747},"primeira-surpresa-sem-ruído-flexibilidade-não-é-pecado","Primeira surpresa: sem ruído, flexibilidade não é pecado",[11,2750,2751],{},"Separei os 20 pontos em 10 de treino (índices pares) e 10 de teste (índices ímpares), sem nenhum ruído nos dados:",[1873,2753,2754,2771],{},[1876,2755,2756],{},[1879,2757,2758,2762,2765,2768],{},[1882,2759,2761],{"align":2760},"center","Grau",[1882,2763,2764],{"align":1888},"RMSE treino",[1882,2766,2767],{"align":1888},"RMSE teste",[1882,2769,2770],{"align":1888},"razão teste\u002Ftreino",[1972,2772,2773,2786,2799,2812,2826],{},[1879,2774,2775,2777,2780,2783],{},[1977,2776,107],{"align":2760},[1977,2778,2779],{"align":1888},"0.708",[1977,2781,2782],{"align":1888},"0.709",[1977,2784,2785],{"align":1888},"1.0x",[1879,2787,2788,2790,2793,2796],{},[1977,2789,1385],{"align":2760},[1977,2791,2792],{"align":1888},"0.323",[1977,2794,2795],{"align":1888},"0.421",[1977,2797,2798],{"align":1888},"1.3x",[1879,2800,2801,2803,2806,2809],{},[1977,2802,2591],{"align":2760},[1977,2804,2805],{"align":1888},"0.043",[1977,2807,2808],{"align":1888},"0.141",[1977,2810,2811],{"align":1888},"3.3x",[1879,2813,2814,2817,2820,2823],{},[1977,2815,2816],{"align":2760},"7",[1977,2818,2819],{"align":1888},"0.002",[1977,2821,2822],{"align":1888},"0.039",[1977,2824,2825],{"align":1888},"21.4x",[1879,2827,2828,2831,2834,2837],{},[1977,2829,2830],{"align":2760},"9",[1977,2832,2833],{"align":1888},"0.000",[1977,2835,2836],{"align":1888},"0.009",[1977,2838,2839],{"align":1888},"24529x",[11,2841,2842,2843,2846,2847,2850],{},"Reparei numa coisa: no grau 9 (10 parâmetros pra 10 pontos de treino, o limite exato de solução única), a razão teste\u002Ftreino parece uma catástrofe (24529 vezes!), mas o erro de teste ",[610,2844,2845],{},"em número absoluto"," continua pequeno (0.009). Isso contraria o slogan de \"muitos parâmetros sempre causam overfitting\". A afirmação certa é mais sutil: ",[610,2848,2849],{},"overfitting é o modelo ajustar o ruído",", não simplesmente ter muitos parâmetros. Sem ruído nenhum pra ajustar, um modelo flexível interpola bem, mesmo no limite extremo.",[2745,2852,2854],{"id":2853},"com-ruído-o-fenômeno-aparece-de-verdade","Com ruído, o fenômeno aparece de verdade",[11,2856,2857],{},"Dado real sempre tem ruído. Adicionei um ruído modesto (desvio-padrão 0.15) e refiz o teste, agora comparando vários graus de uma vez:",[2859,2860],"train-test-curve-chart",{":points":2861,"test-label":2862,"train-label":2863},"[{\"degree\":1,\"trainRmse\":0.74482,\"testRmse\":0.7491},{\"degree\":2,\"trainRmse\":0.73486,\"testRmse\":0.76026},{\"degree\":3,\"trainRmse\":0.31894,\"testRmse\":0.42316},{\"degree\":4,\"trainRmse\":0.31481,\"testRmse\":0.4589},{\"degree\":5,\"trainRmse\":0.08323,\"testRmse\":0.27673},{\"degree\":6,\"trainRmse\":0.07051,\"testRmse\":0.1808},{\"degree\":7,\"trainRmse\":0.01868,\"testRmse\":0.45143},{\"degree\":8,\"trainRmse\":0.01212,\"testRmse\":0.72573},{\"degree\":9,\"trainRmse\":0.0,\"testRmse\":1.71735}]","teste","treino",[11,2865,2866],{},"O erro de treino só cai (mais parâmetros sempre ajustam melhor o que já foi visto, isso é praticamente um teorema, não uma coincidência). O erro de teste cai, atinge um mínimo por volta do grau 6, e depois sobe forte, chegando a 1.72 no grau 9, pior que um ajuste de grau 1. É esse mínimo que interessa, não o grau que zera o erro de treino.",[11,2868,2869],{},"Testa você mesmo, só com os 10 pontos de treino ruidosos (arrasta o grau e observa o RMSE de teste ao vivo, calculado nos 10 pontos que o ajuste nunca viu):",[1163,2871],{":initial-degree":107,":max-degree":2830,":x-train":2872,":y-train":2873,"x-label":77,"y-label":2874,":x-test":2875,":y-test":2876},"[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]","[1.193228, 0.550253, -0.579973, -1.143308, -0.623747, 0.365632, 0.960921, 0.528028, -0.097393, -0.880685]","y (com ruído)","[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]","[1.094999, -0.043944, -0.796443, -1.151981, -0.19079, 0.571574, 0.966876, 0.427335, -0.243645, -1.018878]",[2745,2878,2880],{"id":2879},"extrapolação-onde-fica-realmente-perigoso","Extrapolação: onde fica realmente perigoso",[11,2882,2883,2884,2887,2888,2916,2917,2920],{},"Tudo até aqui foi ",[1858,2885,2886],{},"dentro"," da faixa de treino (",[32,2889,2891,2904],{"className":2890},[35],[32,2892,2894],{"className":2893},[39],[41,2895,2896],{"xmlns":43},[45,2897,2898,2902],{},[48,2899,2900],{},[54,2901,77],{},[152,2903,77],{"encoding":154},[32,2905,2907],{"className":2906,"ariaHidden":66},[159],[32,2908,2910,2913],{"className":2909},[163],[32,2911],{"className":2912,"style":868},[167],[32,2914,77],{"className":2915},[172,176]," de 0 a 19). Fora dela, o comportamento me surpreendeu, e não do jeito que eu esperava. Arrasta o grau pra 13 no simulador abaixo (a faixa verde marca onde os dados de treino realmente estavam) e repara: logo depois da borda, o ajuste de grau 13 continua ",[610,2918,2919],{},"melhor"," que um grau baixo por alguns pontos, porque ele aprendeu o formato da curva com muita precisão bem na borda. A armadilha é justamente essa falsa confiança: continua arrastando o eixo pra frente, e o mesmo grau 13 que parecia seguro dispara pro infinito muito mais rápido que qualquer grau baixo.",[1163,2922],{":initial-degree":1385,":max-degree":2556,":x-train":1166,":y-train":2557,"x-label":77,"y-label":2558,":view-max":2923,":view-min":2924},"30","-3",[11,2926,2927,2928,2981,2982,3017,3018,3047,3048,3077,3078,3129,3130,3165,3166,3195,3196,3255],{},"Calculei os números pra confirmar o que o olho vê: em ",[32,2929,2931,2950],{"className":2930},[35],[32,2932,2934],{"className":2933},[39],[41,2935,2936],{"xmlns":43},[45,2937,2938,2947],{},[48,2939,2940,2942,2944],{},[54,2941,77],{},[64,2943,83],{},[89,2945,2946],{},"22",[152,2948,2949],{"encoding":154},"x=22",[32,2951,2953,2971],{"className":2952,"ariaHidden":66},[159],[32,2954,2956,2959,2962,2965,2968],{"className":2955},[163],[32,2957],{"className":2958,"style":868},[167],[32,2960,77],{"className":2961},[172,176],[32,2963],{"className":2964,"style":255},[254],[32,2966,83],{"className":2967},[259],[32,2969],{"className":2970,"style":255},[254],[32,2972,2974,2978],{"className":2973},[163],[32,2975],{"className":2976,"style":2977},[167],"height:0.6444em;",[32,2979,2946],{"className":2980},[172],", três unidades depois da borda, o grau 3 já erra por ",[32,2983,2985,3002],{"className":2984},[35],[32,2986,2988],{"className":2987},[39],[41,2989,2990],{"xmlns":43},[45,2991,2992,2999],{},[48,2993,2994,2996],{},[64,2995,132],{},[89,2997,2998],{},"5.42",[152,3000,3001],{"encoding":154},"-5.42",[32,3003,3005],{"className":3004,"ariaHidden":66},[159],[32,3006,3008,3011,3014],{"className":3007},[163],[32,3009],{"className":3010,"style":972},[167],[32,3012,132],{"className":3013},[172],[32,3015,2998],{"className":3016},[172]," (o valor real é ",[32,3019,3021,3035],{"className":3020},[35],[32,3022,3024],{"className":3023},[39],[41,3025,3026],{"xmlns":43},[45,3027,3028,3033],{},[48,3029,3030],{},[89,3031,3032],{},"0.004",[152,3034,3032],{"encoding":154},[32,3036,3038],{"className":3037,"ariaHidden":66},[159],[32,3039,3041,3044],{"className":3040},[163],[32,3042],{"className":3043,"style":2977},[167],[32,3045,3032],{"className":3046},[172],") enquanto o grau 13 acerta em ",[32,3049,3051,3065],{"className":3050},[35],[32,3052,3054],{"className":3053},[39],[41,3055,3056],{"xmlns":43},[45,3057,3058,3063],{},[48,3059,3060],{},[89,3061,3062],{},"0.03",[152,3064,3062],{"encoding":154},[32,3066,3068],{"className":3067,"ariaHidden":66},[159],[32,3069,3071,3074],{"className":3070},[163],[32,3072],{"className":3073,"style":2977},[167],[32,3075,3062],{"className":3076},[172],", quase perfeito. Só que em ",[32,3079,3081,3099],{"className":3080},[35],[32,3082,3084],{"className":3083},[39],[41,3085,3086],{"xmlns":43},[45,3087,3088,3096],{},[48,3089,3090,3092,3094],{},[54,3091,77],{},[64,3093,83],{},[89,3095,2923],{},[152,3097,3098],{"encoding":154},"x=30",[32,3100,3102,3120],{"className":3101,"ariaHidden":66},[159],[32,3103,3105,3108,3111,3114,3117],{"className":3104},[163],[32,3106],{"className":3107,"style":868},[167],[32,3109,77],{"className":3110},[172,176],[32,3112],{"className":3113,"style":255},[254],[32,3115,83],{"className":3116},[259],[32,3118],{"className":3119,"style":255},[254],[32,3121,3123,3126],{"className":3122},[163],[32,3124],{"className":3125,"style":2977},[167],[32,3127,2923],{"className":3128},[172],", o grau 3 errou \"só\" por ",[32,3131,3133,3150],{"className":3132},[35],[32,3134,3136],{"className":3135},[39],[41,3137,3138],{"xmlns":43},[45,3139,3140,3147],{},[48,3141,3142,3144],{},[64,3143,132],{},[89,3145,3146],{},"31",[152,3148,3149],{"encoding":154},"-31",[32,3151,3153],{"className":3152,"ariaHidden":66},[159],[32,3154,3156,3159,3162],{"className":3155},[163],[32,3157],{"className":3158,"style":972},[167],[32,3160,132],{"className":3161},[172],[32,3163,3146],{"className":3164},[172]," (ruim, mas crescendo devagar), e o grau 13 já está em ",[32,3167,3169,3183],{"className":3168},[35],[32,3170,3172],{"className":3171},[39],[41,3173,3174],{"xmlns":43},[45,3175,3176,3181],{},[48,3177,3178],{},[89,3179,3180],{},"86",[152,3182,3180],{"encoding":154},[32,3184,3186],{"className":3185,"ariaHidden":66},[159],[32,3187,3189,3192],{"className":3188},[163],[32,3190],{"className":3191,"style":2977},[167],[32,3193,3180],{"className":3194},[172],", um valor absurdo pra uma função que nunca sai de ",[32,3197,3199,3225],{"className":3198},[35],[32,3200,3202],{"className":3201},[39],[41,3203,3204],{"xmlns":43},[45,3205,3206,3222],{},[48,3207,3208,3211,3213,3215,3217,3219],{},[64,3209,3210],{"stretchy":73},"[",[64,3212,132],{},[89,3214,107],{},[64,3216,67],{"separator":66},[89,3218,107],{},[64,3220,3221],{"stretchy":73},"]",[152,3223,3224],{"encoding":154},"[-1,1]",[32,3226,3228],{"className":3227,"ariaHidden":66},[159],[32,3229,3231,3234,3237,3240,3243,3246,3249,3252],{"className":3230},[163],[32,3232],{"className":3233,"style":2536},[167],[32,3235,3210],{"className":3236},[243],[32,3238,132],{"className":3239},[172],[32,3241,107],{"className":3242},[172],[32,3244,67],{"className":3245},[222],[32,3247],{"className":3248,"style":654},[254],[32,3250,107],{"className":3251},[172],[32,3253,3221],{"className":3254},[250],". Regra prática que eu levo comigo: nunca confio em previsão polinomial fora do intervalo de treino, principalmente quanto maior o grau, porque o desastre não é imediato, é traiçoeiro.",[22,3257,3259],{"id":3258},"fechando","Fechando",[1873,3261,3262,3272],{},[1876,3263,3264],{},[1879,3265,3266,3269],{},[1882,3267,3268],{"align":1884},"O que eu já sabia",[1882,3270,3271],{"align":1884},"O que esse post resolveu",[1972,3273,3274,3282,3290],{},[1879,3275,3276,3279],{},[1977,3277,3278],{"align":1884},"Regressão linear só ajusta reta",[1977,3280,3281],{"align":1884},"Criando features novas (potências, logs, razões), a mesma regressão ajusta qualquer curva",[1879,3283,3284,3287],{},[1977,3285,3286],{"align":1884},"Mais parâmetros ajustam melhor o que já foi visto",[1977,3288,3289],{"align":1884},"Isso é quase um teorema, e é exatamente por isso que erro de treino não serve pra escolher modelo",[1879,3291,3292,3295],{},[1977,3293,3294],{"align":1884},"Vale de custo é convexo",[1977,3296,3297],{"align":1884},"Convexo não impede overfitting: o problema não é a otimização, é o modelo decorar o ruído",[11,3299,3300],{},"Três ideias pra levar:",[3302,3303,3304,3311,3317],"ol",{},[3305,3306,3307,3310],"li",{},[610,3308,3309],{},"Engenharia de features não muda o algoritmo",", muda os dados que entram nele. A mesma regressão linear aprende qualquer curva se você der a ela a feature certa.",[3305,3312,3313,3316],{},[610,3314,3315],{},"Overfitting é sobre ruído, não sobre contagem de parâmetro",": um modelo flexível sem ruído pra ajustar generaliza bem, mesmo no limite. O perigo aparece quando existe ruído pra decorar.",[3305,3318,3319,3322],{},[610,3320,3321],{},"Extrapolação com polinômio de grau alto é traiçoeira",": pode parecer melhor que um grau baixo logo depois da borda dos dados, e ainda assim explodir muito mais forte um pouco mais além.",[11,3324,3325,3326,3329,3330,3334],{},"Ainda sobra uma pergunta: dá pra usar toda a flexibilidade de um grau alto ",[610,3327,3328],{},"sem"," pagar o preço do overfitting? Existe uma resposta com um botão contínuo em vez da escolha discreta de grau, chamada regularização, e ela é ",[2208,3331,3333],{"href":3332},"\u002Fplaylists\u002Fmachine-learning-specialization\u002Ffeature-engineering-pitfalls","o assunto do próximo post",".",[22,3336,3338],{"id":3337},"aplicação-prática","Aplicação prática",[11,3340,3341,3342,3346,3347,3350],{},"Mesmo dataset real de 50 casas dos posts anteriores. ",[2208,3343,3345],{"href":3344},"\u002Fplaylists\u002Fmachine-learning-specialization\u002Ffeature-scaling-pitfalls","No post bônus de normalização"," eu já tinha deixado a promessa: \"engenharia de features é o tema do próximo lab\". Cumprindo: criei a feature ",[1087,3348,3349],{},"tamanho_por_quarto = square_feet \u002F num_bedrooms"," e comparei o ajuste com e sem ela.",[1080,3352,3354],{"className":1082,"code":3353,"language":1084,"meta":1085,"style":1085},"tamanho_por_quarto = [s \u002F b for s, b in zip(square_feet, num_bedrooms)]\n\nrmse_sem = ajusta_avalia([square_feet, num_bedrooms, nota_localizacao, distancia_centro], preco)\nrmse_com = ajusta_avalia([square_feet, num_bedrooms, nota_localizacao, distancia_centro, tamanho_por_quarto], preco)\n",[1087,3355,3356,3361,3367,3373],{"__ignoreMap":1085},[32,3357,3358],{"class":1091,"line":1092},[32,3359,3360],{},"tamanho_por_quarto = [s \u002F b for s, b in zip(square_feet, num_bedrooms)]\n",[32,3362,3363],{"class":1091,"line":1098},[32,3364,3366],{"emptyLinePlaceholder":3365},true,"\n",[32,3368,3370],{"class":1091,"line":3369},3,[32,3371,3372],{},"rmse_sem = ajusta_avalia([square_feet, num_bedrooms, nota_localizacao, distancia_centro], preco)\n",[32,3374,3376],{"class":1091,"line":3375},4,[32,3377,3378],{},"rmse_com = ajusta_avalia([square_feet, num_bedrooms, nota_localizacao, distancia_centro, tamanho_por_quarto], preco)\n",[3380,3381,3382],"blockquote",{},[11,3383,3384,613,3387,3390,3391,3394],{},[610,3385,3386],{},"Saída:",[1087,3388,3389],{},"RMSE sem a feature nova: 67.25"," \u002F ",[1087,3392,3393],{},"RMSE com a feature nova: 65.13"," (em mil dólares)",[11,3396,3397,3398,3401,3402,3405,3406,3334],{},"Uma melhora real, mas modesta (cerca de 3%). Curioso: a correlação direta entre ",[1087,3399,3400],{},"tamanho_por_quarto"," e o preço é quase nula (0.0069, bem pertinho de zero), então se eu só olhasse a correlação isolada eu descartaria essa feature. Ela só ajuda quando entra ",[610,3403,3404],{},"junto"," com as outras, o mesmo tipo de efeito escondido que eu já vi com o coeficiente de quartos no ",[2208,3407,2464],{"href":2210},[3409,3410],"housing-feature-engineering-explorer",{},[3412,3413,3414],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1085,"searchDepth":1098,"depth":1098,"links":3416},[3417,3418,3419,3420,3421,3422,3427,3428],{"id":24,"depth":1098,"text":25},{"id":908,"depth":1098,"text":909},{"id":1265,"depth":1098,"text":1266},{"id":2219,"depth":1098,"text":2220},{"id":2468,"depth":1098,"text":2469},{"id":2731,"depth":1098,"text":2732,"children":3423},[3424,3425,3426],{"id":2747,"depth":3369,"text":2748},{"id":2853,"depth":3369,"text":2854},{"id":2879,"depth":3369,"text":2880},{"id":3258,"depth":1098,"text":3259},{"id":3337,"depth":1098,"text":3338},null,"2026-08-19","Como fazer a mesma regressão linear de sempre ajustar curvas, criando features novas em vez de trocar de algoritmo, e por que isso me obrigou a encarar de vez o overfitting.","md",{},8,"\u002Fpt\u002Fplaylists\u002Fmachine-learning-specialization\u002Fw2-lab04-feature-engineering","machine-learning-specialization",{"title":6,"description":3431},"published","pt\u002Fplaylists\u002Fmachine-learning-specialization\u002Fw2-lab04-feature-engineering",[3441,3442,3443],"engenharia-de-features","regressao-polinomial","overfitting","sqnxKae-PE8HWa_b644EiDGvFgMAf4qC_d9tyo19VeM",1787338983868]