我最近開始研究線性回歸的機器學習。我使用LinearRegression( lr) 來預測一些值。事實上,我的預測很糟糕,我被要求更改超引數以獲得更好的結果。
我使用以下命令來獲取超引數:
lr.get_params().keys()
lr.get_params()
并獲得了以下內容:
'copy_X': True,
'fit_intercept': True,
'n_jobs': None,
'normalize': False,
'positive': False}
和
dict_keys(['copy_X', 'fit_intercept', 'n_jobs', 'normalize', 'positive'])
現在,這就是問題開始出現的地方。我試圖找到使用該.set_params()函式的正確語法,但每個答案似乎都超出了我的理解范圍。
我嘗試分配位置引數,因為諸如lr.set_params('normalize'==True)回傳的命令
TypeError: set_params() takes 1 positional argument but 2 were given
并lr.set_params(some_params = {'normalize'})回傳
ValueError (`ValueError: Invalid parameter some_params for estimator LinearRegression(). Check the list of available parameters with estimator.get_params().keys().
有人可以簡單解釋一下這個函式是如何作業的嗎?
uj5u.com熱心網友回復:
正確的語法是set_params(**params)where paramsis 包含估算器引數的字典,請參閱scikit-learn 檔案。
from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg.get_params()
# {'copy_X': True,
# 'fit_intercept': True,
# 'n_jobs': None,
# 'normalize': False,
# 'positive': False}
reg.set_params(**{
'copy_X': False,
'fit_intercept': False,
'n_jobs': -1,
'normalize': True,
'positive': True
})
reg.get_params()
# {'copy_X': False,
# 'fit_intercept': False,
# 'n_jobs': -1,
# 'normalize': True,
# 'positive': True}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/351729.html
標籤:Python 机器学习 scikit 学习 线性回归 超参数
上一篇:根據名稱組合兩個元組串列
