Scikit-learn: рдХреНрд░реЙрд╕_рд╡рд▓_рд╕реНрдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░ MSE рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рд╕рд┐рддре░ 2013  ┬╖  58рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: scikit-learn/scikit-learn

Sklearn.cross_validation.cross_val_score рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдореАрди рд╕реНрдХреНрд╡рд╛рдпрд░ рддреНрд░реБрдЯрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рд░реНрдгрдп рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рддрд╛рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рд╣рд╛рдЗрдкрд░рдкрд░рдореЗрдЯрд░реНрд╕ рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрддрдордХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдпрд╣ рд╕реАрдзреЗ cross_val_score рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдмреЗрд╣рдж рднреНрд░рд╛рдордХ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдорддрд▓рдм рд╕рдВрднрд╡рддрдГ рдирдХрд╛рд░рд╛рддреНрдордХ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ cross_val_score рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдпрд╛ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рдореАрдЯреНрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рд╕реНрдХреЗрд▓реЗрд░рди рд╕реЛрд░реНрд╕ рдХреЛрдб рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рд╛рдЗрди рдлрд╝реНрд▓рд┐рдк рд╣реЛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ sc_er.py рдореЗрдВ make_scorer рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ cross_val_score рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ cross_val_score рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

API Bug Documentation

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╢рд╛рдпрдж рдиреАрд▓рдо рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛

рд╕рднреА 58 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

greater_is_better : boolean, default=True

Whether score_func is a score function (default), meaning high is good, 
or a loss function, meaning low is good. In the latter case, the scorer 
object will sign-flip the outcome of the score_func.

http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make/scod.html рдореЗрдВ
? (рд╕рд┐рд░реНрдл рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП)

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ cross_val_score рдбреЙрдХреНрд╕ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдордиреЗ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрдм рд╕реНрдХреЛрд░рд░ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╣реБрдд рд╣реА рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╣реИ:

>>> import numpy as np
>>> from sklearn.datasets import load_boston
>>> from sklearn.linear_model import RidgeCV
>>> from sklearn.cross_validation import cross_val_score

>>> boston = load_boston()
>>> np.mean(cross_val_score(RidgeCV(), boston.data, boston.target, scoring='mean_squared_error'))
-154.53681864311497

/ cc @larsmans

BTW рдореИрдВ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдБ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рд▓реЗрдЦрди рдореБрджреНрджрд╛ рд╣реИред рдпрд╣ cross_val_score рдЬреЛ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ GridSearchCV(*params).fit(X, y).best_score_ рднреА рд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛ рдПрдкреАрдЖрдИ рдмрд╣реБрдд рднреНрд░рд╛рдордХ рд╣реИред

рдореИрдВ рдпрд╣ рднреА рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдмрд┐рдирд╛ рд╕реНрд╡рд┐рдЪ рдХрд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдордПрд╕рдИ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред

рд╕реНрдХреЛрд░рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд╕ greater_is_better рдлреНрд▓реИрдЧ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрдм рднреА рд╕реНрдХреЛрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдЗрди рдЗрди рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ GridSearchCV ред

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рдпреЛрдЬреНрдп рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ @ogrisel рдХреЗ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЙрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдорд╛рди рд▓реМрдЯрд╛рдПрдВ рдЬреЛ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИрдХ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреЛрдИ рдХрд╕реНрдЯрдо рд╕реНрдХреЛрд░рд░ рдХреЛ mse рдЬреИрд╕реЗ рдирд╛рдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╡реЗ рдирд╛рдордХрд░рдг рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд╛рдо рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдХреЛрд░реЗрдЯрд░ рдореЗрдВ рд╕реНрдХреЛрд░рд░ рдХреЛ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ?

рд╕реНрдХреЛрд░рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ_рдЗрд╕_рдмреЗрдЯрд░ рдлреНрд▓реИрдЧ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрдм рднреА рд╕реНрдХреЛрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рд╕рд╛рдЗрди рдЗрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ GridSearchCV рдореЗрдВред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╕реНрдХреЛрд░рд░реНрд╕ рдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдерд╛, 0.13 рдФрд░ 0.14 рд░рд┐рд▓реАрдЬ рдХреЗ рдмреАрдЪ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдФрд░ рдЗрд╕рдиреЗ рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛ рджрд┐рдпрд╛ред рдЗрд╕рдиреЗ рдХреЛрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рднреА рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ greater_is_better рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реНрдХреЛрд░рд░ рдХреЛрдб рдореЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рдереА, рдХреЗрд╡рд▓ рдЧреНрд░рд┐рдб рдЦреЛрдЬ рдХреЛрдб рдХреЗ рдмреАрдЪ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдПред рдПрдХ рд╡рд┐рд╢реЗрд╖ Scorer рд╡рд░реНрдЧ рдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо рдЕрдВрдХреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ _maximized_ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ score_is_loss ["auto", True, False] рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрдХреЛрд░ рдХреЗ _display_ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЕрдиреБрдорд╛рдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдереА рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЯреНрд░реЗрди рд╕реЗ рдЙрддрд░рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ "рдкреНрд░рджрд░реНрд╢рди" рд╕реЗ рдЬреЛ рдорддрд▓рдм рдерд╛ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ cross_val_score рд╕реЗ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреЛрд░рд░ рд╕рд░рд▓ рдФрд░ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рдХрддрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдмрд┐рд▓реНрдЯ-рдЗрди рдФрд░ рдХрд╕реНрдЯрдо рд╕реНрдХреЛрд░рд░реНрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рд╖рдорддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред

рдкрд┐рдВрдЧ @GaelVaroquaux

рдореБрдЭреЗ рд╕реНрдХреЛрд░_рдЖрдИрдПрд╕_рд▓реЙрд╕ рд╕реЙрд▓реНрдпреВрд╢рди, рдпрд╛ рдЙрд╕ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд╕рдВрдж рд╣реИ .. рд╕реНрдХреЛрд░рд┐рдВрдЧ рдирд╛рдо рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдкрд░рд┐рд╡рд░реНрддрди рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐

рдирд┐рд╖реНрдХрд░реНрд╖ рдХреНрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдХрд┐рд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? :)

@tdomhan @jaquesgrobler @larsmans рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ r2 рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ? рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ r2 рд╕реНрдХреЛрд░ GridSearchCV рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП, ElasticNet , Lasso рдФрд░ Ridge рд▓рд┐рдП рднреА рдЬреНрдпрд╛рджрд╛рддрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИрдВред

R рд╕рдХрд╛рд░рд╛рддреНрдордХ рдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдореЙрдбрд▓ рдмрд╣реБрдд рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИред

IIRC, @GaelVaroquaux greater_is_better=False рд╣реЛрдиреЗ рдкрд░ рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдерд╛ред

r2 рдПрдХ рд╕реНрдХреЛрд░ рдлрдВрдХреНрд╢рди рд╣реИ (рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмреЗрд╣рддрд░ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рдЖрдкрдХрд╛ рдореЙрдбрд▓ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде 0 рд╕реЗ рднреА рдмрджрддрд░ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдХреНрдпрд╛ рд╣реИ? рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, cross_val_score рдПрдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдЙрдкрдХрд░рдг рд╣реИ, рди рдХрд┐ рдПрдХ рдореЙрдбрд▓ рдЪрдпрдиред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдореВрд▓ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреАрдЖрд░ # 2759 рдореЗрдВ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЬреЛ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЪрд╛рд▓ рдХреЛ рд╕рд╛рдЗрди рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд▓рд┐рдк рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЧреНрд░рд┐рдб рдЦреЛрдЬ рдХреЗ рджреМрд░рд╛рди рд╕реНрдХреЛрд░рд░ рдкрд░ greater_is_better рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдХреНрдпрд╛ рд╣реИ? рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, cross_val_score рд╣реИ
рдПрдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдЙрдкрдХрд░рдг, рдПрдХ рдореЙрдбрд▓ рдЪрдпрди рдПрдХ рдирд╣реАрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП
рдореВрд▓ рдореВрд▓реНрдпред

рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реНрд░реЛрдд рд╣реИред

рдореБрдЭреЗ рдмрд╕ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ "mse" рдХреЛ "negated_mse" рдирд╛рдо рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрдХреЛрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреЛрдИ рдХрд╕реНрдЯрдо рд╕реНрдХреЛрд░рд░ рдХреЛ mse рдЬреИрд╕реЗ рдирд╛рдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╡реЗ рдирд╛рдордХрд░рдг рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд╛рдо рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдХреЛрд░реЗрдЯрд░ рдореЗрдВ рд╕реНрдХреЛрд░рд░ рдХреЛ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ @ogrisel рдирд╛рдо рдорд┐рд▓рд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рдерд╛, рдмрд╕ рдореВрд▓ рдореАрдЯреНрд░рд┐рдХ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕рд╣реА рд╕рдордЭреЗрдВ @ogrisel

рдореБрдЭреЗ рдмрд╕ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрдХреЛрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ "mse" рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "negated_mse" рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ unintuitive рд╣реИ рдЕрдЧрд░ рдЖрдк scikit- рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрд╕ рддрд░рд╣ рдореЛрдбрд╝рдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ unintuitive рд╣реИ рдЕрдЧрд░ рдЖрдк scikit- рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЗрд╕ рддрд░рд╣ рдореЛрдбрд╝рдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдПрдХ рд╣реИ
рдбрд┐рдЬрд╛рдЗрди рдХреА рд╕рдорд╕реНрдпрд╛ред

рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВред рдордиреБрд╖реНрдп рдмрд╣реБрдд рдХреБрдЫ рдкреВрд░реНрд╡ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ рдФрд░
рд╕рдВрджрд░реНрднред рд╡реЗ рд╕рднреА рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдЗрд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ
рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреА рддрд░рд╣ рдЦрд░реАрджрд╛рд░реА-рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рд╣реИ
рдЙрди рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд▓рд┐рдЦрддреЗ рд╣реИрдВ
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреЛрдбред

рдЖрдкрдХреЗ рдорди рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ?

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ GridSearchCV рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреНрд░реЙрд╕-рд╡реЗрд▓рд┐рдбреЗрд╢рди рд╕реНрдХреЛрд░ рдореВрд▓ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╕рд╛рдЗрди рдлрд╝реНрд▓рд┐рдк рдХреЗ рд╕рд╛рде рдирд╣реАрдВ)ред

AFAIK, рд╕рд╛рдЗрди рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдЧреНрд░рд┐рдб рдЦреЛрдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рд▓реЗрдХрд┐рди рдкреНрд░рдпреЛрдЬреНрдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

рдЖрдкрдХреЗ рдорди рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ?

рдЦреИрд░, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП
рдпрд╣ рд╡рд┐рдкрд░реАрдд рд╣реИред

AFAIK, рд╕рд╛рдЗрди рдлреНрд▓рд┐рдк рдХрд░рддреЗ рд╣реБрдП рдЧреНрд░рд┐рдб рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓реЗрдХрд┐рди рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рдерд╛
рдкреНрд░рдпреЛрдЬреНрдпред

рдпрд╣ рдЧреНрд░рд┐рдб рдЦреЛрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ: рд╕реНрдХреЛрд░
рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдЬрд╛рдирдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рдпреЛрдЬреНрдп рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╛ рдХреЛрдб рдХреЛ
рдЙрдирдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдкреВрд░реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдлреИрд▓ рдЬрд╛рдПрдЧрд╛ред рд╡рд╣рд╛рдБ рд╣реИ
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХреЛрдбред

рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдИ рднреА "рдирдХрд╛рд░рд╛рддреНрдордХ MSE" рдХреА рд╕рд╛рдЬрд┐рд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рд╡рд╛рдкрд╕ рд╕рдВрдХреЗрдд рдлреНрд▓рд┐рдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдИ-рдореАрдЯреНрд░рд┐рдХ рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рд░рд┐рдкреЛрд░реНрдЯ (PR # 2759) рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдореАрдЯреНрд░рд┐рдХ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдФрд░ рд╕рд╣рдЬ рдкрд░рд┐рдгрд╛рдоред

рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдИ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛
"рдирдХрд╛рд░рд╛рддреНрдордХ MSE" рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдЙрдирдХреЗ рдореЗрдВ рд╕рдВрдХреЗрдд рдлреНрд▓рд┐рдк рдХрд░рдирд╛ рдкрдбрд╝реЗ
рдХреЛрдбред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреБрдирд┐рдпрд╛ рдХрд╛ рдЕрдВрдд рдирд╣реАрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреЗрдкрд░ рдкрдврд╝рддреЗ рд╕рдордп рдпрд╛
рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдХрд░ рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдЬрдм рдЧреНрд░рд╛рдл рдирд╣реАрдВ рд╣реИ
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛, рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рдФрд░ рдорд╛рдирд╕рд┐рдХ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдвреАрд▓рд╛
рдЖрдВрдХрдбрд╝рд╛ рдмрдбрд╝рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдмреЗрд╣рддрд░ рд╣реИред

рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдИ-рдореАрдЯреНрд░рд┐рдХ рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП
рд░рд┐рдкреЛрд░реНрдЯ (PR # 2759), рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдореАрдЯреНрд░рд┐рдХ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпреЛрдВред рдпрджрд┐ рдЖрдк рд╕рд┐рд░реНрдл рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рд╣рдореЗрд╢рд╛ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдпрд╣ рдмрдирд╛рддрд╛ рд╣реИ
рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╕рд╣рд┐рдд рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рд╣реИред

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдФрд░
рд╕рд╣рдЬ рдкрд░рд┐рдгрд╛рдоред

рдЬреЛрдЦрд┐рдо рдореЗрдВ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ
рдПрд╡рдВ рд╡рд┐рдХрд╛рд╕ред Scikit-learn рд╡рдЬрди рдЙрдард╛ рд░рд╣рд╛ рд╣реИред

рдЕрдЧрд░ рдЖрдк рд╕рд┐рд░реНрдл рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рд╣рдореЗрд╢рд╛ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ

рдХрд┐ рдЙрд╕рдиреЗ рдХреНрдпрд╛ рдХрд╣рд╛ :)

рдЕрдзрд┐рдХ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cross_val_score рдХрд╛ рдЙрддреНрдкрд╛рджрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдо рдЖрдкрдХреЗ рддрд░реНрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ sklearn.metrics рдореЗрдВ рд╕рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ "рдмрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ" рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд┐ рдЙрд╕рдиреЗ рдХреНрдпрд╛ рдХрд╣рд╛ :)

рдЕрдЪреНрдЫрд╛ рд╣реИ!

рдЕрдзрд┐рдХ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ
cross_val_score рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рд╣рдо рдЕрдЧрд░
рдЕрдкрдиреЗ рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ, sklearn.metrics рдореЗрдВ рд╕рднреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ "рдмрдбрд╝рд╛" рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдмреЗрд╣рддрд░ рд╣реИ"ред

рдорд╛рдирд╛ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ: рдпрд╣ рдкреЙрдк рдЕрдк рд╣реЛрдЧрд╛
рд▓реЛрдЧреЛрдВ рдХреА рдирдЬрд░реЛрдВ рдореЗрдВред

рдЕрдзрд┐рдХ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cross_val_score рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред

рдФрд░ рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ scoring рдЕрдзрд┐рдХ рд░рд╣рд╕реНрдпрдордп рд▓рдЧрддрд╛ рд╣реИред

рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп 0.16.1 рдореЗрдВ рдЖрдЬ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдЯреЗ рдЧрдПред рдЬрдмрдХрд┐ рд╕реНрдХреЛрд░ рдХрд╛ рд╕рдВрдХреЗрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рд▓рд┐рдП рдЕрдм рдФрд░ рдлрд╝реНрд▓рд┐рдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЕрднреА рднреА рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд▓рд┐рдП рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рднреНрд░рдо рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, LinearRegression.score () рд╕реНрдХреЛрд░ рдХрд╛ рдПрдХ рдЧреИрд░-рдлрд╝реНрд▓рд┐рдк рд╕рдВрд╕реНрдХрд░рдг рджреЗрддрд╛ рд╣реИред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рднреА рд╕рдВрдЧрдд рдмрдирд╛рдПрдВ рдФрд░ рд░реИрдЦрд┐рдХ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рд╕рд╛рдЗрди-рдлрд╝реНрд▓рд┐рдк рдХрд┐рдП рдЧрдП рд╕реНрдХреЛрд░ рдХреЛ рднреА рд▓реМрдЯрд╛рдПрдВред

рдЙрджрд╛рд╣рд░рдг:

from sklearn import linear_model
from sklearn.naive_bayes import GaussianNB
from sklearn import cross_validation
from sklearn import datasets
iris = datasets.load_iris()
nb = GaussianNB()
scores = cross_validation.cross_val_score(nb, iris.data, iris.target)
print("NB score:\t  %0.3f" % scores.mean() )

iris_reg_data = iris.data[:,:3]
iris_reg_target = iris.data[:,3]
lr = linear_model.LinearRegression()
scores = cross_validation.cross_val_score(lr, iris_reg_data, iris_reg_target)
print("LR score:\t %0.3f" % scores.mean() )

lrf = lr.fit(iris_reg_data, iris_reg_target)
score = lrf.score(iris_reg_data, iris_reg_target)
print("LR.score():\t  %0.3f" % score )

рдпрд╣ рджреЗрддрд╛ рд╣реИ:

NB score:     0.934    # sign is not flipped
LR score:    -0.755    # sign is flipped
LR.score():   0.938    # sign is not flipped

рдХреНрд░реЙрд╕-рд╕рддреНрдпрд╛рдкрди рдореЙрдбрд▓ рдХреЗ рд╕рднреА рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдзрд┐рдХ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЕрдм рднреА рдЗрд╕ рдлреИрд╕рд▓реЗ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдкреНрд░рд╕реНрддрд╛рд╡рдХ @GaelVaroquaux рдереЗ рдФрд░ рд╢рд╛рдпрдж @mblondel [рдореБрдЭреЗ рдпрд╛рдж рдерд╛ рдХрд┐ рдЖрдк рд╕реНрдХреЛрд░рд░ рдХреЛрдб рдХреЛ рдкреБрдирдГрдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рдереЗ]ред

рдУрд╣, рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рд╕рднреА рдЪрд░реНрдЪрд╛ рдКрдкрд░ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ mse рдФрд░ r2 рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рдЗрди рдХреЛ рдлреНрд▓рд┐рдк рдХрд░рдирд╛ рдФрд░ рднреА рдХрдо рд╕рд╣рдЬ рд╣реИ: - /

@Huitzilo GaussianNB рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреЛрд░рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред LinearRegression рдПрдХ regressor рд╣реИ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреЛрд░рд░ рдХреЗ рд░реВрдк рдореЗрдВ r2 рд╕реНрдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рд╕реНрдХреЛрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ r2 рд╕реНрдХреЛрд░ _can_ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдИрд░рд┐рд╕ рдПрдХ рдмрд╣реБрдХреЛрд╢рд┐рдХреАрдп рдбреЗрдЯрд╛рд╕реЗрдЯ рд╣реИред рдЗрд╕рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдЖрдк рдПрдХ рдкреНрд░рддрд┐рдЧрд╛рдореА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╕рд╣реА рд╣реИ, рдореИрдВ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, r2 рдлрд╝реНрд▓рд┐рдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ ... рдХреЗрд╡рд▓ mse рд╣реЛрдЧрд╛ред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ negmse рдЪреАрдЬрд╝ рдХреЗ рдирд╛рдо рдкрд░ рд╣реЛ?

@mblondel рдмреЗрд╢рдХ рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдореИрдВ рдмрд╕ рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдердкреНрдкрдбрд╝ рдорд╛рд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЖрдИрд░рд┐рд╕ рдбреЗрдЯрд╛ рдкрд░ рдЕрдкрдиреЗ рдЕрддрд┐ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рджреВрд╕рд░реЛрдВ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛ # 4 рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреА 2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди, рдпрд╣ рдирдХрд╛рд░рд╛рддреНрдордХ R2 рдирд╣реАрдВ рдерд╛ред рдпрд╣рд╛рдБ рдХреЛрдИ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИред рдареАрдХред рдореЗрд░реА рдЧрд▓рддреАред

рдлрд┐рд░ рднреА, рд╕рд╛рдЗрди рдХреЛ MSE рдореЗрдВ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдореБрдЭреЗ cross_val_score ред

рд╢рд╛рдпрдж рдпрд╣ рд╕рд┐рд░реНрдл рдореБрдЭреЗ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдЕрд╕рдВрдЧрддрддрд╛ рдмрд╣реБрдд рднреНрд░рд╛рдордХ рд▓рдЧрддреА рд╣реИ (рдЬреЛ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдорд┐рд▓реА)ред MSE рдХреЛ рд╕рд╛рдЗрди-рдлрд╝реНрд▓рд┐рдк рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди R2 рдирд╣реАрдВ?

рд╢рд╛рдпрдж рдпрд╣ рд╕рд┐рд░реНрдл рдореБрдЭреЗ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдЕрд╕рдВрдЧрддрддрд╛ рдмрд╣реБрдд рднреНрд░рд╛рдордХ рд▓рдЧрддреА рд╣реИ (рдЬреЛ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдорд┐рд▓реА)ред MSE рдХреЛ рд╕рд╛рдЗрди-рдлрд╝реНрд▓рд┐рдк рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди R2 рдирд╣реАрдВ?

рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреЛрд░ рдХрд╛ рд╢рдмреНрджрд╛рд░реНрде рдмреЗрд╣рддрд░ рд╣реИред рд╣рд╛рдИ рдПрдордПрд╕рдИ рдЦрд░рд╛рдм рд╣реИред

рд╢рд╛рдпрдж рдиреАрд▓рдо рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛

@amueller рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рд╕реНрдХреЛрд░рд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдирд╛рдо рдкрд░ рд╕рд╛рдЗрди рдлрд╝реНрд▓рд┐рдкрд┐рдВрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ [рез] рдкрд░ рдкреНрд░рд▓реЗрдЦрди рднреА рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдХреИрд╕реЗ рдлрд╝реНрд▓рд┐рдк рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдХреЗрд╡рд▓ 3.1.1.1 рдХреЗ рддрд╣рдд рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреА, рд▓реЗрдХрд┐рди рдкрд╛рда рдХреЛ рдирд╣реАрдВ рдкрдврд╝рд╛ (рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ "рдмрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ" рд╕рд┐рджреНрдзрд╛рдВрдд)ред IMHO, 3.1.1.1 рдХреЗ рддрд╣рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ mse, рдорд╛рдзреНрдпрд┐рдХрд╛ рдФрд░ рдФрд╕рдд рдирд┐рд░рдкреЗрдХреНрд╖ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рдЙрдирдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реБрдП, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛ред

[рез] http://scikit-learn.org/stable/modules/model_evaluation.html#scoring- рдкреИрд░рд╛рдореАрдЯрд░

рдореИрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдпрд╛ рд╣реВрдБ:

from sklearn.cross_validation import cross_val_score
model = LinearRegression()
scores = cross_val_score(model, X, target, cv=2, scoring='r2')
scores

рдХрд╛ рдкрд░рд┐рдгрд╛рдо

array([-0.17026282, -2.21315179])

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕рдорд╛рди рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП

model = LinearRegression()
model.fit(X, target)
prediction = model.predict(X)
print r2_score(target, prediction)

рдПрдХ рдЙрдЪрд┐рдд рдореВрд▓реНрдп рдореЗрдВ рдкрд░рд┐рдгрд╛рдо

0.353035789318

рд░реИрдЦрд┐рдХ рдкреНрд░рддрд┐рдЧрдорди рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП AFAIK (рдЕрд╡рд░реЛрдзрди рдХреЗ рд╕рд╛рде) рдХреЛрдИ R ^ 2> 1 рдпрд╛ R ^ 2 <0 рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реАрд╡реА рдкрд░рд┐рдгрд╛рдо рдПрдХ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдП рдЧрдП рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде R ^ 2 рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЧрд▓рдд рд╣реВрдВ?

r2 рдирдХрд╛рд░рд╛рддреНрдордХ (рдЦрд░рд╛рдм рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ 1 рд╕реЗ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред

рдЖрдк рд╢рд╛рдпрдж рдУрд╡рд░рдлрд┐рдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рдпрддреНрди:

from sklearn.cross_validation import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, target, test_size=0.2, random_state=0)
model = LinearRegression()
model.fit(X_train, y_train)
pred_train = model.predict(X_train)
print("train r2: %f" % r2_score(y_train, pred_train))

pred_test = model.predict(X_test)
print("test r2: %f" % r2_score(y_test, pred_test))

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ random_state рдкреВрд░реНрдгрд╛рдВрдХ рдмреАрдЬ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рд╢рд╛рдпрдж рдиреАрд▓рдо рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛

+1 'negative_mse' рдХреЗ рд▓рд┐рдП (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рддрд╛ рд╣реИ)ред

рдХреНрдпрд╛ рд╡рд╣ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЕрдиреНрдп рд╕реНрдХреЛрд░ рдмреЗрд╣рддрд░ рдереЗ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ?

рд╡рд╣рд╛рдВ:

  • log_loss
  • mean_absolute_error
  • median_absolute_error

doc/modules/model_evaluation.rst , рдпрд╣ рдЙрди рд╕рднреА рдХреЛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░ hinge_loss рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ?

рдЙрди рд╕рднреА рдиреБрдХрд╕рд╛рдиреЛрдВ рдореЗрдВ neg_ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдирд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред

рдПрдХ рд╡рд┐рдЪрд╛рд░ рдореВрд▓ рдЕрдВрдХ (рдмрд┐рдирд╛ рд╕рд╛рдЗрди рдлреНрд▓рд┐рдк рдХреЗ) рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ ndarray рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рдЬреЛ ndarray рдХреЛ best() , arg_best() , best_sorted() рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ

рдХрд╛рдЬ рд╣рд╛рдирд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдХреЛрд░рд░ рдирд╣реАрдВ рд╣реИ (рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрднреА рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ)ред

рд╕реНрдХреЛрд░рд░ рдПрдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕рд░рдгреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдлреНрд▓реЛрдЯ рджреЗрддрд╛ рд╣реИ, рд╣реИ рдирд╛?
рд╣рдо рдПрдХ рд╕реНрдХреЛрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо ">" рд╣реИ рд▓реЗрдХрд┐рди рдлреНрд▓реЛрдЯ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред
рдкрд┐рдЫрд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдХреЛрд░рд░ рдХреЛ рдПрдХ рдмреВрд▓ "рд▓реЛрдЕрд░_рдЗрд╕_рдмреЗрдЯреНрдЯрд░" рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕реЗ рддрдм рдЧреНрд░рд┐рдбрд╕рд░реНрдЪ рд╕реАрд╡реА рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

cross_val_score рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреЛрд░ cross_val_score рдЖрдорддреМрд░ рдкрд░ рдЫрд╛рдВрдЯреЗ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдФрд╕рддрдиред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ sorted рдкрджреНрдзрддрд┐ рдХреЛ _BaseScorer рдЬреЛрдбрд╝рдирд╛ рд╣реИред

my_scorer = make_scorer(my_metric, greater_is_better=False)
scores = my_scorer.sorted(scores)  # takes into account my_scorer._sign
best = scores[0]

cross_val_score рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреЛрд░рд░ рдПрдХ рдлреНрд▓реЛрдЯ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ cross_val_score рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реНрдХ рд░рдЦрдирд╛ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк GridSearchCV рдФрд░ рдЕрдиреНрдп рд╕рднреА CV рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдЖрдкрдХреЛ рдПрдХ argsort рд╡рд┐рдзрд┐ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ GridSearchCV рдореЗрдВ рдЖрдк рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реНрдХреЛрд░ рдФрд░ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╕реВрдЪрдХрд╛рдВрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

"рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рд╕реЗ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдзрди рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдиреБрдорд╛рди рдХреИрд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдП, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ рд╕реНрдХрд┐рдХрд┐рдЯ-рд▓рд░реНрди рджреНрд╡рд╛рд░рд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорд╛рдирд┐рдд рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднрд╛рд░рд┐рдд рдФрд╕рдд рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ"?

IIRC рд╣рдордиреЗ рд╕реНрдкреНрд░рд┐рдВрдЯ (рдкрд┐рдЫрд▓реА рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ!) рдореЗрдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдФрд░ neg_mse (рдпрд╛ рдпрд╣ neg-mse ) рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рд╕рднреА рд╕реНрдХреЛрд░рд░ / рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЦрд╛рд▓реА рдХрд░ рджрд┐рдпрд╛, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдордп рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдЖрдо рд╕рд╣рдорддрд┐ рд╣реИ? рд╣рдореЗрдВ 0.18 рд╕реЗ рдкрд╣рд▓реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкрд┐рдВрдЧ @GaelVaroquaux @agramfort @jnothman @ogrisel @raghavrv

рд╣рд╛рдБ рд╣рдо neg_mse AFAIK рдкрд░ рд╕рд╣рдордд рд╣реБрдП

рдпрд╣ neg_mse

рд╣рдореЗрдВ рднреА рдЬрд░реВрд░рдд рд╣реИ:

  • neg_log_loss
  • neg_mean_absolute_error
  • neg_median_absolute_error

рдореЙрдбрд▓ = рдЕрдиреБрдХреНрд░рдорд┐рдХ ()
keras.layers.Flatten ()
model.add (Dense (11, input_dim = 3, kernel_initializer = keras.initializers.he_normal (рдмреАрдЬ = 2))
рдХрд░реНрдиреЗрд▓_рдЕрдЧреНрд░реЗрдЯрд░ = regularizers.l2 (2)))
keras.layers.LeakyReLU (рдЕрд▓реНрдлрд╛ = 0.1)
model.add (Dense (8, kernel_initializer = keras.initializers.he_normal (рдмреАрдЬ = 2 рдЕрдВрдХ))
keras.layers.LeakyReLU (рдЕрд▓реНрдлрд╛ = 0.1)
model.add (Dense (4, kernel_initializer = keras.initializers.he_normal (рдмреАрдЬ = 2 рдЕрдВрдХ))
keras.layers.LeakyReLU (рдЕрд▓реНрдлрд╛ = 0.1)
model.add (Dense (1, kernel_initializer = keras.initializers.he_normal (рдмреАрдЬ = 2 рдЕрдВрдХ))
keras.layers.LeakyReLU (рдЕрд▓реНрдлрд╛ = 0.2)
adag = RMSprop (lr = 0.0002)
model.compile (рдиреБрдХрд╕рд╛рди = losses.mean_squared_error,
рдЕрдиреБрдХреВрд▓рдХ = рдПрдбреАрдПрдЬреА
)
рдЗрддрд┐рд╣рд╛рд╕ = рдореЙрдбрд▓.рдлрд┐рдЯ (X_train, Y_train, рдпреБрдЧреЛрдВ = 2000,
рдмреИрдЪ_рд╕рд╛рдЗрдЬ = 20, рдлреЗрд░рдмрджрд▓ = рд╕рдЪ)

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рдкрд╛рд░ рдХрд░реЗрдВ? рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдХреНрд░реЙрд╕ рд╡реИрд░рд┐рдлрд┐рдХреЗрд╢рди рддрд░реАрдХрд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПред

@shreyassks рдпрд╣ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реВрдВрдЧрд╛: https://keras.io/scikit-learn-api ред рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ scikit-learn рдЕрдиреБрдорд╛рдирдХ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ рдлрд┐рд░ w / model_selection.cross_val_score

рд╣рд╛рдБред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдБ! рдпрд╣ Brier_score_loss рдХреЗ рд╕рд╛рде рднреА рд╣реБрдЖ, рдпрд╣ Brier_score_loss рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ GridSearchCV рд╕реЗ рдЖрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рднреНрд░рд╛рдордХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдирдХрд╛рд░рд╛рддреНрдордХ Brier_score_loss рджреЗрддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рдпрд╣ рдмреЗрд╣рддрд░ рдЙрддреНрдкрд╛рджрди рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ рдХреБрдЫ, рдХреНрдпреЛрдВрдХрд┐ Brier_score_loss рдПрдХ рдиреБрдХрд╕рд╛рди (рдХрдо рдмреЗрд╣рддрд░) рд╣реИ, рд╕реНрдХреЛрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдпрд╣рд╛рдВ рдЗрд╕реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдлреНрд▓рд┐рдк рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ cross_val_score рдХреЛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдкреВрд░реНрдг рдореВрд▓реНрдп рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдЬреНрдЮрд╛рди рдореЗрдВ, cross_val_score рдореЗрдВ MSE (рдорддрд▓рдм рдЪреБрдХрддрд╛ рддреНрд░реБрдЯрд┐) рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдирдХрд╛рд░рд╛рддреНрдордХ рдЪрд┐рдиреНрд╣ (-) рдХрд╛ рдорд╣рддреНрд╡ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рдЪрд▓реЛ рд╕реНрдХреЗрд▓реЗрд░ рдХреЗ рдЕрджреНрдпрддрди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдЧрдорди usecase рдХреЗ рд▓рд┐рдП:
model_score = cross_val_score (рдореЙрдбрд▓, df_input, df_target, рд╕реНрдХреЛрд░рд┐рдВрдЧ = 'negative_mean_squared_error', cv = 3)
рдореБрдЭреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдорд╛рди рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:

SVR:
[-6.20938025 -1.397376 -1.94519]
-3.183982080147279

рд░реЗрдЦреАрдп рдкреНрд░рддрд┐рдЧрдорди:
[-5.94898085 -9.30931808 -1.15760676]
-5.4719685646934275

рд▓реИрд╕реЛ:
[-7.22363814 -10.47734135 -2.20807684]
-6.6363521107522345

рдХрдЯрдХ:
[-5.95990385 -4.17946756 -1.36885809]
-3.8360764993832004

рддреЛ рдХреМрди рд╕рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ?
рдПрд╕рд╡реАрдЖрд░?

рдкреНрд░рддрд┐рдЧрдорди usecase рдХреЗ рд▓рд┐рдП:
рдЬрдм рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ
(1) рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде "cross_val_score" = 'negative_mean_squared_error'
рддрдерд╛
(2) рдЙрд╕реА рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЬрдм рдореИрдВ "GridSearchCV" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ 'best_score_' рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ

рдкреНрд░рддрд┐рдЧрдорди рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдмреЗрд╣рддрд░ рд╣реИ?

  • рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде "cross_val_score" = 'negative_mean_squared_error'
    (рдпрд╛)
  • "GridSearchCV" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ 'best_score_' рдЬрд╛рдВрдЪреЗрдВ

@pritishban
рдЖрдк рдПрдХ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╢реНрди рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред рдореБрджреНрджрд╛ рдЯреНрд░реИрдХрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмрдЧ рдФрд░ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

rth picture rth  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rebeccaroisin picture rebeccaroisin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ben519 picture ben519  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yinruiqing picture yinruiqing  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

celiafish picture celiafish  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ