Vlákno názorů k článku Balíček scikit-learn: modely provádějící regresní analýzu od Fík - Mi je trochu divné, že v posledním příkladě...

  • Článek je starý, nové názory již nelze přidávat.
  • 15. 8. 2024 22:33

    Fík
    Zlatý podporovatel

    Mi je trochu divné, že v posledním příkladě 18. to MSE prvně klesá asi do 13 a pak ale roste. Nemělo by to klesat stále?

    Vysvětlení: fituji stále stejná data, ale přidávám stupeň polynomu. Tedy v dalším kroku fituji o jednu proměnnou více a pokud ji položím 0, tak budu mít výsledek jako pro polynom o stupeň menší. Tedy polynom o stupeň vyšší musí mít menší, nebo při nejhorším stejné MSE.

  • 16. 8. 2024 12:37

    Fík
    Zlatý podporovatel

    No zakmitávat to jistě bude, ale chyba by i tak měla klesat nebo zůstávat stejná. Tím to není.

    Stejný program v Matlabu a klesá mi to do stupně 22, pak to roste.

    x = linspace(0, 10, 100);
    y = [0.5*rand(1,50),1+0.5*rand(1,50)];
    for i=1:30,
        p = polyfit(x,y,i);
        MSE=sum((polyval(p,x)-y).^2)/length(x)
    end;

    Ale od stupně 12 už to hlásí:

    Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the degree of the polynomial, or try centering and scaling as described in HELP POLYFIT.

    Takže chyba je v tom, že systém rovnic je špatně podmíněný (blízko singulárnímu) a ve výsledku se projeví velká chyba kvůli pevné přesnosti operací.

    Závěr - polynom od 12 už nemá cenu na tato vstupní data fitovat. Trochu divné je, že scikitu ta špatná podmíněnost nijak nevadí a jede prostě dál.