Repository: probabl-ai/skore

Issue:
Add a parameter `scoring_names` to `EstimatorReport.report_metrics` to overwrite the default name
Currently there is no way to overwrite the names of score in `report_metrics` and it could annyoing when you pass your own score because they are inferred from the function names.

Instead we should provide a way to pass a list of strings to start that should overwrite the score of the columns in the resulting dataframe.

Discussion:
github-actions[bot]: <!-- Pytest Coverage Comment: display-backend-coverage -->
<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/README.md"><img alt="Coverage" src="https://img.shields.io/badge/Coverage-93%25-brightgreen.svg" /></a><details><summary>Coverage Report for backend </summary><table><tr><th>File</th><th>Stmts</th><th>Miss</th><th>Cover</th><th>Missing</th></tr><tbody><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/__init__.py">\_\_init\_\_.py</a></td><td>12</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/__main__.py">\_\_main\_\_.py</a></td><td>8</td><td>1</td><td>80%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/__main__.py#L19">19</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/exceptions.py">exceptions.py</a></td><td>3</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/cli</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/__init__.py">\_\_init\_\_.py</a></td><td>5</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/cli.py">cli.py</a></td><td>33</td><td>3</td><td>85%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/cli.py#L104">104</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/cli.py#L111">111</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/cli.py#L117">117</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/color_format.py">color_format.py</a></td><td>43</td><td>3</td><td>90%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/color_format.py#L35-L>40">35&ndash;>40</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/color_format.py#L41-L43">41&ndash;43</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/launch_dashboard.py">launch_dashboard.py</a></td><td>26</td><td>15</td><td>39%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/launch_dashboard.py#L36-L57">36&ndash;57</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/quickstart_command.py">quickstart_command.py</a></td><td>14</td><td>7</td><td>50%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/cli/quickstart_command.py#L37-L51">37&ndash;51</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/item</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/__init__.py">\_\_init\_\_.py</a></td><td>21</td><td>1</td><td>91%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/__init__.py#L46">46</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/cross_validation_item.py">cross_validation_item.py</a></td><td>137</td><td>10</td><td>93%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/cross_validation_item.py#L27-L42">27&ndash;42</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/cross_validation_item.py#L373">373</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item.py">item.py</a></td><td>42</td><td>13</td><td>69%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item.py#L91">91</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item.py#L94">94</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item.py#L98-L118">98&ndash;118</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item_repository.py">item_repository.py</a></td><td>61</td><td>5</td><td>91%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item_repository.py#L12-L13">12&ndash;13</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item_repository.py#L209-L210">209&ndash;210</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/item_repository.py#L231">231</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/media_item.py">media_item.py</a></td><td>70</td><td>4</td><td>94%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/media_item.py#L15-L18">15&ndash;18</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/numpy_array_item.py">numpy_array_item.py</a></td><td>25</td><td>1</td><td>93%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/numpy_array_item.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/pandas_dataframe_item.py">pandas_dataframe_item.py</a></td><td>34</td><td>1</td><td>95%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/pandas_dataframe_item.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/pandas_series_item.py">pandas_series_item.py</a></td><td>34</td><td>1</td><td>95%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/pandas_series_item.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/polars_dataframe_item.py">polars_dataframe_item.py</a></td><td>32</td><td>1</td><td>94%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/polars_dataframe_item.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/polars_series_item.py">polars_series_item.py</a></td><td>27</td><td>1</td><td>94%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/polars_series_item.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/primitive_item.py">primitive_item.py</a></td><td>27</td><td>2</td><td>92%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/primitive_item.py#L13-L15">13&ndash;15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/sklearn_base_estimator_item.py">sklearn_base_estimator_item.py</a></td><td>33</td><td>1</td><td>95%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/sklearn_base_estimator_item.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/skrub_table_report_item.py">skrub_table_report_item.py</a></td><td>10</td><td>1</td><td>86%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/item/skrub_table_report_item.py#L11">11</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/persistence</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/persistence/__init__.py">\_\_init\_\_.py</a></td><td>0</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/persistence/abstract_storage.py">abstract_storage.py</a></td><td>22</td><td>1</td><td>95%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/persistence/abstract_storage.py#L130">130</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/persistence/disk_cache_storage.py">disk_cache_storage.py</a></td><td>33</td><td>1</td><td>95%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/persistence/disk_cache_storage.py#L44">44</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/persistence/in_memory_storage.py">in_memory_storage.py</a></td><td>20</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/project</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/__init__.py">\_\_init\_\_.py</a></td><td>3</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/create.py">create.py</a></td><td>52</td><td>8</td><td>88%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/create.py#L116-L122">116&ndash;122</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/create.py#L132-L133">132&ndash;133</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/create.py#L140-L141">140&ndash;141</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/load.py">load.py</a></td><td>23</td><td>3</td><td>89%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/load.py#L43-L45">43&ndash;45</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/open.py">open.py</a></td><td>14</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/project.py">project.py</a></td><td>68</td><td>3</td><td>94%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/project.py#L118">118</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/project.py#L152">152</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/project/project.py#L156">156</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/sklearn</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/__init__.py">\_\_init\_\_.py</a></td><td>4</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_base.py">_base.py</a></td><td>141</td><td>2</td><td>98%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_base.py#L175-L>180">175&ndash;>180</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_base.py#L191-L192">191&ndash;192</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/find_ml_task.py">find_ml_task.py</a></td><td>35</td><td>0</td><td>98%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/find_ml_task.py#L41-L>49">41&ndash;>49</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/types.py">types.py</a></td><td>2</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/sklearn/_estimator</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/__init__.py">\_\_init\_\_.py</a></td><td>10</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/metrics_accessor.py">metrics_accessor.py</a></td><td>261</td><td>3</td><td>98%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/metrics_accessor.py#L128-L137">128&ndash;137</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/metrics_accessor.py#L376-L>379">376&ndash;>379</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/metrics_accessor.py#L662-L>665">662&ndash;>665</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/report.py">report.py</a></td><td>109</td><td>0</td><td>98%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/report.py#L160-L>166">160&ndash;>166</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/report.py#L168-L>170">168&ndash;>170</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/utils.py">utils.py</a></td><td>11</td><td>11</td><td>0%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_estimator/utils.py#L1-L19">1&ndash;19</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/sklearn/_plot</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/__init__.py">\_\_init\_\_.py</a></td><td>4</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/precision_recall_curve.py">precision_recall_curve.py</a></td><td>126</td><td>2</td><td>97%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/precision_recall_curve.py#L200-L>203">200&ndash;>203</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/precision_recall_curve.py#L313-L314">313&ndash;314</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/prediction_error.py">prediction_error.py</a></td><td>75</td><td>0</td><td>99%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/prediction_error.py#L289-L>297">289&ndash;>297</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/roc_curve.py">roc_curve.py</a></td><td>95</td><td>3</td><td>94%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/roc_curve.py#L156">156</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/roc_curve.py#L167-L>170">167&ndash;>170</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/roc_curve.py#L223-L224">223&ndash;224</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/_plot/utils.py">utils.py</a></td><td>77</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/sklearn/cross_validation</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/__init__.py">\_\_init\_\_.py</a></td><td>2</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/cross_validation_helpers.py">cross_validation_helpers.py</a></td><td>47</td><td>4</td><td>90%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/cross_validation_helpers.py#L104-L>136">104&ndash;>136</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/cross_validation_helpers.py#L123-L126">123&ndash;126</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/cross_validation_reporter.py">cross_validation_reporter.py</a></td><td>35</td><td>1</td><td>95%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/cross_validation_reporter.py#L177">177</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/plots</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/plots/__init__.py">\_\_init\_\_.py</a></td><td>0</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/plots/compare_scores_plot.py">compare_scores_plot.py</a></td><td>29</td><td>1</td><td>92%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/plots/compare_scores_plot.py#L10">10</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/plots/compare_scores_plot.py#L45-L>48">45&ndash;>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/plots/timing_plot.py">timing_plot.py</a></td><td>29</td><td>1</td><td>94%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/cross_validation/plots/timing_plot.py#L10">10</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/sklearn/train_test_split</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/__init__.py">\_\_init\_\_.py</a></td><td>0</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/train_test_split.py">train_test_split.py</a></td><td>36</td><td>2</td><td>94%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/train_test_split.py#L16-L17">16&ndash;17</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/__init__.py">\_\_init\_\_.py</a></td><td>8</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/high_class_imbalance_too_few_examples_warning.py">high_class_imbalance_too_few_examples_warning.py</a></td><td>17</td><td>3</td><td>78%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/high_class_imbalance_too_few_examples_warning.py#L16-L18">16&ndash;18</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/high_class_imbalance_too_few_examples_warning.py#L80">80</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/high_class_imbalance_warning.py">high_class_imbalance_warning.py</a></td><td>18</td><td>2</td><td>88%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/high_class_imbalance_warning.py#L16-L18">16&ndash;18</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/random_state_unset_warning.py">random_state_unset_warning.py</a></td><td>11</td><td>1</td><td>87%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/random_state_unset_warning.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/shuffle_true_warning.py">shuffle_true_warning.py</a></td><td>9</td><td>0</td><td>91%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/shuffle_true_warning.py#L44-L>exit">44&ndash;>exit</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/stratify_is_set_warning.py">stratify_is_set_warning.py</a></td><td>11</td><td>1</td><td>87%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/stratify_is_set_warning.py#L15">15</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/time_based_column_warning.py">time_based_column_warning.py</a></td><td>22</td><td>1</td><td>89%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/time_based_column_warning.py#L17">17</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/time_based_column_warning.py#L69-L>exit">69&ndash;>exit</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/train_test_split_warning.py">train_test_split_warning.py</a></td><td>5</td><td>1</td><td>80%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/sklearn/train_test_split/warning/train_test_split_warning.py#L21">21</a></td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/ui</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/ui/__init__.py">\_\_init\_\_.py</a></td><td>0</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/ui/app.py">app.py</a></td><td>25</td><td>5</td><td>71%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/ui/app.py#L24">24</a>, <a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/ui/app.py#L53-L58">53&ndash;58</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/ui/dependencies.py">dependencies.py</a></td><td>7</td><td>1</td><td>86%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/ui/dependencies.py#L12">12</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/ui/project_routes.py">project_routes.py</a></td><td>50</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/utils</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/utils/__init__.py">\_\_init\_\_.py</a></td><td>0</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/utils/_accessor.py">_accessor.py</a></td><td>7</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/utils/_logger.py">_logger.py</a></td><td>21</td><td>4</td><td>84%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/utils/_logger.py#L14-L18">14&ndash;18</a></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/utils/_show_versions.py">_show_versions.py</a></td><td>31</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td colspan="5"><b>venv/lib/python3.12/site-packages/skore/view</b></td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/view/__init__.py">\_\_init\_\_.py</a></td><td>0</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/view/view.py">view.py</a></td><td>5</td><td>0</td><td>100%</td><td>&nbsp;</td></tr><tr><td>&nbsp; &nbsp;<a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/view/view_repository.py">view_repository.py</a></td><td>16</td><td>2</td><td>83%</td><td><a href="https://github.com/probabl-ai/skore/blob/d7e3ee3ce4e194a77a4c5f6e08b574fd6709fbcf/venv/lib/python3.12/site-packages/skore/view/view_repository.py#L8-L9">8&ndash;9</a></td></tr><tr><td><b>TOTAL</b></td><td><b>2323</b></td><td><b>138</b></td><td><b>93%</b></td><td>&nbsp;</td></tr></tbody></table></details>

| Tests | Skipped | Failures | Errors | Time |
| ----- | ------- | -------- | -------- | ------------------ |
| 421 | 3 :zzz: | 0 :x: | 0 :fire: | 49.640s :stopwatch: |


Patch:
diff --git a/skore/src/skore/sklearn/_estimator/metrics_accessor.py b/skore/src/skore/sklearn/_estimator/metrics_accessor.py
index 0c2841b..934fc4f 100644
--- a/skore/src/skore/sklearn/_estimator/metrics_accessor.py
+++ b/skore/src/skore/sklearn/_estimator/metrics_accessor.py
@@ -52,6 +52,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         X=None,
         y=None,
         scoring=None,
+        scoring_names=None,
         pos_label=None,
         scoring_kwargs=None,
     ):
@@ -83,6 +84,10 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             same parameter name with different values), you can use scikit-learn scorers
             as provided by :func:`sklearn.metrics.make_scorer`.
 
+        scoring_names : list of str, default=None
+            Used to overwrite the default scoring names in the report. It should be of
+            the same length as the `scoring` parameter.
+
         pos_label : int, float, bool or str, default=None
             The positive class.
 
@@ -126,6 +131,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         else:
             data_source_hash = None
 
+        scoring_was_none = scoring is None
         if scoring is None:
             # Equivalent to _get_scorers_to_add
             if self._parent._ml_task == "binary-classification":
@@ -139,9 +145,26 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             else:
                 scoring = ["_r2", "_rmse"]
 
-        scores = []
+        if scoring_names is not None and len(scoring_names) != len(scoring):
+            if scoring_was_none:
+                # we raise a better error message since we decide the default scores
+                raise ValueError(
+                    "The `scoring_names` parameter should be of the same length as "
+                    "the `scoring` parameter. In your case, `scoring` was set to None "
+                    f"and you are using our default scores that are {len(scoring)}. "
+                    "The list is the following: {scoring}."
+                )
+            else:
+                raise ValueError(
+                    "The `scoring_names` parameter should be of the same length as "
+                    f"the `scoring` parameter. Got {len(scoring_names)} names for "
+                    f"{len(scoring)} scoring functions."
+                )
+        elif scoring_names is None:
+            scoring_names = [None] * len(scoring)
 
-        for metric in scoring:
+        scores = []
+        for metric_name, metric in zip(scoring_names, scoring):
             # NOTE: we have to check specifically for `_BaseScorer` first because this
             # is also a callable but it has a special private API that we can leverage
             if isinstance(metric, _BaseScorer):
@@ -210,6 +233,8 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
                     f"Invalid type of metric: {type(metric)} for {metric!r}"
                 )
 
+            if metric_name is not None:
+                metrics_kwargs["metric_name"] = metric_name
             scores.append(
                 metric_fn(
                     data_source=data_source,
@@ -387,13 +412,26 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         """
         return self._accuracy(data_source=data_source, data_source_hash=None, X=X, y=y)
 
-    def _accuracy(self, *, data_source="test", data_source_hash=None, X=None, y=None):
+    def _accuracy(
+        self,
+        *,
+        data_source="test",
+        data_source_hash=None,
+        X=None,
+        y=None,
+        metric_name=None,
+    ):
         """Private interface of `accuracy` to be able to pass `data_source_hash`.
 
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
+        if metric_name is None:
+            metric_name = f"Accuracy {self._SCORE_OR_LOSS_ICONS['accuracy']}"
+
         return self._compute_metric_scores(
             metrics.accuracy_score,
             X=X,
@@ -401,7 +439,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source=data_source,
             data_source_hash=data_source_hash,
             response_method="predict",
-            metric_name=f"Accuracy {self._SCORE_OR_LOSS_ICONS['accuracy']}",
+            metric_name=metric_name,
         )
 
     @available_if(
@@ -501,6 +539,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         data_source_hash=None,
         X=None,
         y=None,
+        metric_name=None,
         average=None,
         pos_label=None,
     ):
@@ -509,12 +548,17 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
         if self._parent._ml_task == "binary-classification" and pos_label is not None:
             # if `pos_label` is specified by our user, then we can safely report only
             # the statistics of the positive class
             average = "binary"
 
+        if metric_name is None:
+            metric_name = f"Precision {self._SCORE_OR_LOSS_ICONS['precision']}"
+
         return self._compute_metric_scores(
             metrics.precision_score,
             X=X,
@@ -523,7 +567,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source_hash=data_source_hash,
             response_method="predict",
             pos_label=pos_label,
-            metric_name=f"Precision {self._SCORE_OR_LOSS_ICONS['precision']}",
+            metric_name=metric_name,
             average=average,
         )
 
@@ -625,6 +669,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         data_source_hash=None,
         X=None,
         y=None,
+        metric_name=None,
         average=None,
         pos_label=None,
     ):
@@ -633,12 +678,17 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
         if self._parent._ml_task == "binary-classification" and pos_label is not None:
             # if `pos_label` is specified by our user, then we can safely report only
             # the statistics of the positive class
             average = "binary"
 
+        if metric_name is None:
+            metric_name = f"Recall {self._SCORE_OR_LOSS_ICONS['recall']}"
+
         return self._compute_metric_scores(
             metrics.recall_score,
             X=X,
@@ -647,7 +697,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source_hash=data_source_hash,
             response_method="predict",
             pos_label=pos_label,
-            metric_name=f"Recall {self._SCORE_OR_LOSS_ICONS['recall']}",
+            metric_name=metric_name,
             average=average,
         )
 
@@ -708,18 +758,29 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         )
 
     def _brier_score(
-        self, *, data_source="test", data_source_hash=None, X=None, y=None
+        self,
+        *,
+        data_source="test",
+        data_source_hash=None,
+        X=None,
+        y=None,
+        metric_name=None,
     ):
         """Private interface of `brier_score` to be able to pass `data_source_hash`.
 
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
         # The Brier score in scikit-learn request `pos_label` to ensure that the
         # integral encoding of `y_true` corresponds to the probabilities of the
         # `pos_label`. Since we get the predictions with `get_response_method`, we
         # can pass any `pos_label`, they will lead to the same result.
+        if metric_name is None:
+            metric_name = f"Brier score {self._SCORE_OR_LOSS_ICONS['brier_score']}"
+
         return self._compute_metric_scores(
             metrics.brier_score_loss,
             X=X,
@@ -727,7 +788,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source=data_source,
             data_source_hash=data_source_hash,
             response_method="predict_proba",
-            metric_name=f"Brier score {self._SCORE_OR_LOSS_ICONS['brier_score']}",
+            metric_name=metric_name,
             pos_label=self._parent._estimator.classes_[-1],
         )
 
@@ -834,6 +895,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         data_source_hash=None,
         X=None,
         y=None,
+        metric_name=None,
         average=None,
         multi_class="ovr",
     ):
@@ -842,7 +904,12 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
+        if metric_name is None:
+            metric_name = f"ROC AUC {self._SCORE_OR_LOSS_ICONS['roc_auc']}"
+
         return self._compute_metric_scores(
             metrics.roc_auc_score,
             X=X,
@@ -850,7 +917,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source=data_source,
             data_source_hash=data_source_hash,
             response_method=["predict_proba", "decision_function"],
-            metric_name=f"ROC AUC {self._SCORE_OR_LOSS_ICONS['roc_auc']}",
+            metric_name=metric_name,
             average=average,
             multi_class=multi_class,
         )
@@ -913,13 +980,19 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         data_source_hash=None,
         X=None,
         y=None,
+        metric_name=None,
     ):
         """Private interface of `log_loss` to be able to pass `data_source_hash`.
 
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
+        if metric_name is None:
+            metric_name = f"Log loss {self._SCORE_OR_LOSS_ICONS['log_loss']}"
+
         return self._compute_metric_scores(
             metrics.log_loss,
             X=X,
@@ -927,7 +1000,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source=data_source,
             data_source_hash=data_source_hash,
             response_method="predict_proba",
-            metric_name=f"Log loss {self._SCORE_OR_LOSS_ICONS['log_loss']}",
+            metric_name=metric_name,
         )
 
     @available_if(_check_supported_ml_task(supported_ml_tasks=["regression"]))
@@ -1002,6 +1075,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         data_source_hash=None,
         X=None,
         y=None,
+        metric_name=None,
         multioutput="raw_values",
     ):
         """Private interface of `r2` to be able to pass `data_source_hash`.
@@ -1009,7 +1083,12 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
+        if metric_name is None:
+            metric_name = f"R² {self._SCORE_OR_LOSS_ICONS['r2']}"
+
         return self._compute_metric_scores(
             metrics.r2_score,
             X=X,
@@ -1017,7 +1096,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source=data_source,
             data_source_hash=data_source_hash,
             response_method="predict",
-            metric_name=f"R² {self._SCORE_OR_LOSS_ICONS['r2']}",
+            metric_name=metric_name,
             multioutput=multioutput,
         )
 
@@ -1093,6 +1172,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         data_source_hash=None,
         X=None,
         y=None,
+        metric_name=None,
         multioutput="raw_values",
     ):
         """Private interface of `rmse` to be able to pass `data_source_hash`.
@@ -1100,7 +1180,12 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
         `data_source_hash` is either an `int` when we already computed the hash
         and are able to pass it around or `None` and thus trigger its computation
         in the underlying process.
+
+        `metric_name` allows to overwrite the default name of the metric in the report.
         """
+        if metric_name is None:
+            metric_name = f"RMSE {self._SCORE_OR_LOSS_ICONS['rmse']}"
+
         return self._compute_metric_scores(
             metrics.root_mean_squared_error,
             X=X,
@@ -1108,7 +1193,7 @@ class _MetricsAccessor(_BaseAccessor, DirNamesMixin):
             data_source=data_source,
             data_source_hash=data_source_hash,
             response_method="predict",
-            metric_name=f"RMSE {self._SCORE_OR_LOSS_ICONS['rmse']}",
+            metric_name=metric_name,
             multioutput=multioutput,
         )
 


Test patch:
diff --git a/skore/tests/unit/sklearn/test_estimator.py b/skore/tests/unit/sklearn/test_estimator.py
index bd8336d..55adf53 100644
--- a/skore/tests/unit/sklearn/test_estimator.py
+++ b/skore/tests/unit/sklearn/test_estimator.py
@@ -694,6 +694,46 @@ def test_estimator_report_report_metrics_scoring_kwargs(
     assert result.columns.names == ["Metric", "Class label"]
 
 
+@pytest.mark.parametrize(
+    "fixture_name, scoring_names, expected_columns",
+    [
+        ("regression_data", ["R2", "RMSE"], ["R2", "RMSE"]),
+        (
+            "multiclass_classification_data",
+            ["Precision", "Recall", "ROC AUC", "Log Loss"],
+            [
+                "Precision",
+                "Precision",
+                "Precision",
+                "Recall",
+                "Recall",
+                "Recall",
+                "ROC AUC",
+                "ROC AUC",
+                "ROC AUC",
+                "Log Loss",
+            ],
+        ),
+    ],
+)
+def test_estimator_report_report_metrics_overwrite_scoring_names(
+    request, fixture_name, scoring_names, expected_columns
+):
+    """Test that we can overwrite the scoring names in report_metrics."""
+    estimator, X_test, y_test = request.getfixturevalue(fixture_name)
+    report = EstimatorReport(estimator, X_test=X_test, y_test=y_test)
+    result = report.metrics.report_metrics(scoring_names=scoring_names)
+    assert result.shape == (1, len(expected_columns))
+
+    # Get level 0 names if MultiIndex, otherwise get column names
+    result_columns = (
+        result.columns.get_level_values(0).tolist()
+        if isinstance(result.columns, pd.MultiIndex)
+        else result.columns.tolist()
+    )
+    assert result_columns == expected_columns
+
+
 def test_estimator_report_interaction_cache_metrics(regression_multioutput_data):
     """Check that the cache take into account the 'kwargs' of a metric."""
     estimator, X_test, y_test = regression_multioutput_data