Skip to content

Commit 95d69be

Browse files
author
Github Actions
committed
Matthias Feurer: Add sparse support for Auto-sklearn 2.0 (#1245)
1 parent 776f035 commit 95d69be

File tree

68 files changed

+1454
-2127
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1454
-2127
lines changed
Binary file not shown.
Binary file not shown.
550 Bytes
Loading
-23.4 KB
Loading
-5.37 KB
Loading
351 Bytes
Loading
-869 Bytes
Loading
-2.06 KB
Loading

development/_modules/autosklearn/experimental/askl2.html

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ <h1>Source code for autosklearn.experimental.askl2</h1><div class="highlight"><p
119119
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Any</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Union</span>
120120

121121
<span class="kn">import</span> <span class="nn">dask.distributed</span>
122+
<span class="kn">import</span> <span class="nn">scipy.sparse</span>
122123

123124
<span class="kn">from</span> <span class="nn">ConfigSpace</span> <span class="kn">import</span> <span class="n">Configuration</span>
124125
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
@@ -205,9 +206,14 @@ <h1>Source code for autosklearn.experimental.askl2</h1><div class="highlight"><p
205206

206207
<span class="n">scenario</span> <span class="o">=</span> <span class="n">Scenario</span><span class="p">(</span><span class="n">scenario_dict</span><span class="p">)</span>
207208

208-
<span class="n">initial_configurations</span> <span class="o">=</span> <span class="p">[</span>
209-
<span class="n">Configuration</span><span class="p">(</span><span class="n">configuration_space</span><span class="o">=</span><span class="n">scenario</span><span class="o">.</span><span class="n">cs</span><span class="p">,</span> <span class="n">values</span><span class="o">=</span><span class="n">member</span><span class="p">)</span>
210-
<span class="k">for</span> <span class="n">member</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">portfolio</span><span class="o">.</span><span class="n">values</span><span class="p">()]</span>
209+
<span class="n">initial_configurations</span> <span class="o">=</span> <span class="p">[]</span>
210+
<span class="k">for</span> <span class="n">member</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">portfolio</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
211+
<span class="k">try</span><span class="p">:</span>
212+
<span class="n">initial_configurations</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
213+
<span class="n">Configuration</span><span class="p">(</span><span class="n">configuration_space</span><span class="o">=</span><span class="n">scenario</span><span class="o">.</span><span class="n">cs</span><span class="p">,</span> <span class="n">values</span><span class="o">=</span><span class="n">member</span><span class="p">)</span>
214+
<span class="p">)</span>
215+
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
216+
<span class="k">pass</span>
211217

212218
<span class="n">rh2EPM</span> <span class="o">=</span> <span class="n">RunHistory2EPM4LogCost</span>
213219
<span class="k">return</span> <span class="n">SMAC4AC</span><span class="p">(</span>
@@ -247,9 +253,15 @@ <h1>Source code for autosklearn.experimental.askl2</h1><div class="highlight"><p
247253
<span class="kn">from</span> <span class="nn">smac.scenario.scenario</span> <span class="kn">import</span> <span class="n">Scenario</span>
248254

249255
<span class="n">scenario</span> <span class="o">=</span> <span class="n">Scenario</span><span class="p">(</span><span class="n">scenario_dict</span><span class="p">)</span>
250-
<span class="n">initial_configurations</span> <span class="o">=</span> <span class="p">[</span>
251-
<span class="n">Configuration</span><span class="p">(</span><span class="n">configuration_space</span><span class="o">=</span><span class="n">scenario</span><span class="o">.</span><span class="n">cs</span><span class="p">,</span> <span class="n">values</span><span class="o">=</span><span class="n">member</span><span class="p">)</span>
252-
<span class="k">for</span> <span class="n">member</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">portfolio</span><span class="o">.</span><span class="n">values</span><span class="p">()]</span>
256+
257+
<span class="n">initial_configurations</span> <span class="o">=</span> <span class="p">[]</span>
258+
<span class="k">for</span> <span class="n">member</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">portfolio</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
259+
<span class="k">try</span><span class="p">:</span>
260+
<span class="n">initial_configurations</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
261+
<span class="n">Configuration</span><span class="p">(</span><span class="n">configuration_space</span><span class="o">=</span><span class="n">scenario</span><span class="o">.</span><span class="n">cs</span><span class="p">,</span> <span class="n">values</span><span class="o">=</span><span class="n">member</span><span class="p">)</span>
262+
<span class="p">)</span>
263+
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
264+
<span class="k">pass</span>
253265

254266
<span class="n">rh2EPM</span> <span class="o">=</span> <span class="n">RunHistory2EPM4LogCost</span>
255267
<span class="n">ta_kwargs</span><span class="p">[</span><span class="s1">&#39;budget_type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">budget_type</span>
@@ -454,6 +466,25 @@ <h1>Source code for autosklearn.experimental.askl2</h1><div class="highlight"><p
454466
<span class="n">feat_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
455467
<span class="n">dataset_name</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
456468

469+
<span class="c1"># TODO</span>
470+
<span class="c1"># regularly check https://github.com/scikit-learn/scikit-learn/issues/15336 whether</span>
471+
<span class="c1"># histogram gradient boosting in scikit-learn finally support sparse data</span>
472+
<span class="n">is_sparse</span> <span class="o">=</span> <span class="n">scipy</span><span class="o">.</span><span class="n">sparse</span><span class="o">.</span><span class="n">issparse</span><span class="p">(</span><span class="n">X</span><span class="p">)</span>
473+
<span class="k">if</span> <span class="n">is_sparse</span><span class="p">:</span>
474+
<span class="n">include_estimators</span> <span class="o">=</span> <span class="p">[</span>
475+
<span class="s1">&#39;extra_trees&#39;</span><span class="p">,</span> <span class="s1">&#39;passive_aggressive&#39;</span><span class="p">,</span> <span class="s1">&#39;random_forest&#39;</span><span class="p">,</span> <span class="s1">&#39;sgd&#39;</span><span class="p">,</span> <span class="s1">&#39;mlp&#39;</span><span class="p">,</span>
476+
<span class="p">]</span>
477+
<span class="k">else</span><span class="p">:</span>
478+
<span class="n">include_estimators</span> <span class="o">=</span> <span class="p">[</span>
479+
<span class="s1">&#39;extra_trees&#39;</span><span class="p">,</span>
480+
<span class="s1">&#39;passive_aggressive&#39;</span><span class="p">,</span>
481+
<span class="s1">&#39;random_forest&#39;</span><span class="p">,</span>
482+
<span class="s1">&#39;sgd&#39;</span><span class="p">,</span>
483+
<span class="s1">&#39;gradient_boosting&#39;</span><span class="p">,</span>
484+
<span class="s1">&#39;mlp&#39;</span><span class="p">,</span>
485+
<span class="p">]</span>
486+
<span class="bp">self</span><span class="o">.</span><span class="n">include</span><span class="p">[</span><span class="s1">&#39;classifier&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">include_estimators</span>
487+
457488
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">metric</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
458489
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">y</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">y</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
459490
<span class="bp">self</span><span class="o">.</span><span class="n">metric</span> <span class="o">=</span> <span class="n">accuracy</span>

0 commit comments

Comments
 (0)