Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
22
MODELEREGRESJILINIOWEJ
MATLAB
a=regress(d,X)
Python
fromsklearn.linear_modelimport
LinearRegression
regression=LinearRegression()
regression.fit(X,d)
WprzypadkuMatlabafunkcjazwracawektorazawierającyrozwiązaniepro-
blemuregresji,natomiastwprzypadkuPythonaobiektzmodelemregresji.
Korzystaniezfunkcjiimplementującejregresjękrzepkąodbywasiępodobnie,
atypowepostaciwywołaniato
MATLAB
a=robustfit(d,X)
lub
[a,stats]=robustt(d,X,wfun,tune)
Python
fromsklearn.linear_modelimport
SGDRegressor
regression=SGDRegressor()
regression.fit(X,d,loss=’huber’)
Wdrugiejpostaciwywołaniawfunoznaczarodzajzastosowanejfunkcjiwagi,
atunejestparametremużytymprzyokreślaniubłędówdlaposzczególnychob-
serwacji.Matlabzawierażnedefinicjefunkcjiwagi,międzyinnymiHubera,
Cauchy’ego,logistyczną,bikwadratową.
Wynikiregresjiliniowejuzyskaneprzyużyciurobustfitsązdecydowanie
mniejwrażliwenawystępowaniewartościodstającychniżprzyużyciufunkcjire-
gress.ModelHuberRegresorjestrozszerzeniemmodeluSGDRegressorizwraca
dodatkowotablicęzinformacją,czydanyprzykładzostałzakwalifikowanyjako
odstający,czyniewpoluHuberRegresor.outliers.
Przykładporównującywynikizastosowaniaobufunkcjidladanychzawie-
rającychdwiewartościodstającezaimplementowanyjestwponiższychliniach
programu
MATLAB
%Przykładzastosowaniaobu
%funkcjiregresjiliniowej
x=(1:10)’;
d=5-3*x+5*randn(10,1);
d(3)=50;d(10)=100;
bls=regress(d,[ones(10,1)x])
brob=robustfit(x,d)
holdon
plot(x,brob(1)+brob(2)*x,’r-’,...
x,bls(1)+bls(2)*x,’m:’)
legend(’robustfit’,’regress’)
plot(x,d,’o’)
Python
fromsklearn.linear_modelimport(
regression=SGDRegressor()
regression.fit(X,d,loss=’huber’)
#lub
regression=SGDRegressor(
regression.fit(X,d)
SGDRegressor)
loss=loss_fun)