Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将训练损失作为γ;_Python_Scikit Learn - Fatal编程技术网

Python 如何将训练损失作为γ;

Python 如何将训练损失作为γ;,python,scikit-learn,Python,Scikit Learn,[我是一名统计人员,但我不太擅长编码。这可能是一个简单的for循环和绘图问题] 对于不同的γ(学习率=0.1,0.3,0.5,0.7,1),如何绘制以估计量(或1到150)为x轴,以训练损失为y轴的图。我喜欢在一个图上绘制不同γ的折线图。这样做比较容易 from sklearn.datasets import make_blobs from sklearn.metrics import zero_one_loss from sklearn.model_selection import train

[我是一名统计人员,但我不太擅长编码。这可能是一个简单的for循环和绘图问题]

对于不同的γ(学习率=0.1,0.3,0.5,0.7,1),如何绘制以估计量(或1到150)为x轴,以训练损失为y轴的图。我喜欢在一个图上绘制不同γ的折线图。这样做比较容易

from sklearn.datasets import make_blobs
from sklearn.metrics import zero_one_loss
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import GradientBoostingRegressor

X_train, y_train = make_blobs(n_samples=1000, n_features=10, centers=3,
random_state=10, cluster_std=5)


breg = GradientBoostingRegressor(learning_rate=0.1,
n_estimators=150, random_state=100)
breg.fit(X_train,y_train)

对于γ或学习率=0.1,我可以检查breg.train_分数,如下所示:

阵列([0.57468338,0.49988198,0.43293686,0.38219534,0.33580473, 0.29832827, 0.26675631, 0.24067659, 0.21842987, 0.19817057, 0.18040607, 0.16585845, 0.15375498, 0.14213091, 0.1326827 , 0.12492904, 0.11802082, 0.11265069, 0.10724528, 0.10237506, 0.09825622, 0.0948534 , 0.09180083, 0.08919955, 0.08660985, 0.08427062, 0.08218433, 0.08010646, 0.07845166, 0.07646058, 0.07511399, 0.07348535, 0.07191978, 0.07057382, 0.0694041 , 0.06827032, 0.06751911, 0.06636306, 0.06553243, 0.06453646, 0.06382421, 0.06310264, 0.06255564, 0.06169868, 0.06106456, 0.06020758, 0.05956437, 0.0589683 , 0.05857613, 0.05835434, 0.05788804, 0.05734811, 0.05695127, 0.05617195, 0.05577267, 0.05535058, 0.05438471, 0.05415762, 0.05395474, 0.05359835, 0.05338581, 0.05261187, 0.05212596, 0.05177005, 0.05148665, 0.05125861, 0.05067917, 0.05050313, 0.04994986, 0.04934108, 0.04886436, 0.04844108, 0.04796545, 0.04787594, 0.04736417, 0.0469984 , 0.0463386 , 0.04610686, 0.04586156, 0.04555303, 0.04522064, 0.04500386, 0.04447497, 0.04422516, 0.04414786, 0.04367328, 0.04340406, 0.04290195, 0.04273739, 0.04259202, 0.04241596, 0.04182698, 0.04145753, 0.0410822 , 0.04101794, 0.04061812, 0.04032768, 0.04006762, 0.03997287, 0.03981082, 0.03954574, 0.03949362, 0.03925316, 0.03879255, 0.03865009, 0.03833753, 0.03799245, 0.0377798 , 0.03766262, 0.03746877, 0.03684285, 0.03676621, 0.03646639, 0.0361836 , 0.03606436, 0.03594994, 0.03590734, 0.03543761, 0.03537628, 0.03513024, 0.03492127, 0.03465343, 0.03448113, 0.03434481, 0.03430889, 0.03394142, 0.03390877, 0.03385245, 0.03361713, 0.03348751, 0.0333572 , 0.0331197 , 0.03288531, 0.03259427, 0.03234941, 0.03214568, 0.03187251, 0.03154897, 0.03129557, 0.03078963, 0.03065767, 0.03024594, 0.0300378 , 0.02959993, 0.02947694, 0.02914165,0.02910925,0.02903385,0.028969,0.02879665])

现在,我怎样才能得到所有γ(学习率=0.1,0.3,0.5,0.7,1)的曲线图,其中X轴的B=150,Y轴的培训损失。差不多


非常感谢。

就我个人而言,我不认为这样做有什么意义,因为你知道图表的样子。在树数相同的情况下,学习率越高,训练损失减少的幅度越大。理论上,通过设置较高的学习率和大量的树,您可以获得所需的训练损失和较低的训练成本。我认为更重要的是要有一个验证数据集,并同时监控培训损失和验证损失,以防止在培训损失不断减少的情况下出现过度拟合现象。

选择一个您选择的绘图库并阅读其教程。嗨,Kavin,我只需要比较一下不同的学习率,看看轮数和学习率之间有什么关系。谢谢