%22%22%22How%20to%20Resume%20Optimization%20from%20Prior%20Trials.%0A%0AReuse%20an%20Optuna%20study%20to%20continue%20optimization%20runs.%0A%22%22%22%0A%0A%23%20%2F%2F%2F%20script%0A%23%20requires-python%20%3D%20%22%3E%3D3.11%22%0A%23%20dependencies%20%3D%20%5B%0A%23%20%20%20%20%20%22optuna%22%2C%0A%23%20%20%20%20%20%22scikit-learn%22%2C%0A%23%20%20%20%20%20%22sklearn-optuna%22%2C%0A%23%20%5D%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.19.9%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20import%20optuna%0A%20%20%20%20from%20optuna.distributions%20import%20FloatDistribution%0A%20%20%20%20from%20sklearn.datasets%20import%20make_classification%0A%20%20%20%20from%20sklearn.linear_model%20import%20LogisticRegression%0A%0A%20%20%20%20from%20sklearn_optuna%20import%20OptunaSearchCV%0A%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20FloatDistribution%2C%0A%20%20%20%20%20%20%20%20LogisticRegression%2C%0A%20%20%20%20%20%20%20%20OptunaSearchCV%2C%0A%20%20%20%20%20%20%20%20make_classification%2C%0A%20%20%20%20%20%20%20%20optuna%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%22%22%22%0A%20%20%20%20%23%20How%20to%20Resume%20Optimization%20from%20Prior%20Trials%0A%0A%20%20%20%20This%20notebook%20shows%20how%20to%20create%20an%20Optuna%20study%20manually%0A%20%20%20%20and%20pass%20it%20to%20%60OptunaSearchCV%60%20to%20accumulate%20trials%20across%0A%20%20%20%20runs.%0A%0A%20%20%20%20**Prerequisites%3A**%20Familiarity%20with%20the%0A%20%20%20%20OptunaSearchCV%20quickstart%0A%20%20%20%20(%5BView%5D(%2Fexamples%2Fquickstart%2F)%20%C2%B7%20%5BOpen%20in%20marimo%5D(%2Fexamples%2Fquickstart%2Fedit%2F)).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(make_classification)%3A%0A%20%20%20%20%23%20Setup%20data%0A%20%20%20%20X%2C%20y%20%3D%20make_classification(n_samples%3D200%2C%20n_features%3D5%2C%20random_state%3D42)%0A%20%20%20%20return%20X%2C%20y%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%22%22%22%0A%20%20%20%20%23%23%201.%20Create%20a%20Study%0A%0A%20%20%20%20Create%20an%20Optuna%20study%20explicitly%20to%20control%20its%20name%2C%20direction%2C%0A%20%20%20%20and%20sampler.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(optuna)%3A%0A%20%20%20%20%23%20Create%20a%20persistent%20study%0A%20%20%20%20study%20%3D%20optuna.create_study(direction%3D%22maximize%22%2C%20study_name%3D%22my_study%22)%0A%20%20%20%20return%20(study%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%22%22%22%0A%20%20%20%20%23%23%202.%20Pass%20the%20Study%20to%20fit()%0A%0A%20%20%20%20Pass%20the%20existing%20study%20to%20%60OptunaSearchCV.fit()%60%20via%20the%0A%20%20%20%20%60study%3D%60%20parameter.%20New%20trials%20are%20appended%20to%20the%20study%0A%20%20%20%20instead%20of%20creating%20a%20new%20one.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(FloatDistribution%2C%20LogisticRegression%2C%20OptunaSearchCV%2C%20X%2C%20study%2C%20y)%3A%0A%20%20%20%20search%20%3D%20OptunaSearchCV(%0A%20%20%20%20%20%20%20%20LogisticRegression()%2C%0A%20%20%20%20%20%20%20%20%7B%22C%22%3A%20FloatDistribution(0.1%2C%2010.0)%7D%2C%0A%20%20%20%20%20%20%20%20n_trials%3D5%2C%0A%20%20%20%20)%0A%0A%20%20%20%20%23%20Pass%20the%20existing%20study%20to%20fit()%0A%20%20%20%20search.fit(X%2C%20y%2C%20study%3Dstudy)%0A%20%20%20%20return%20(search%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20search)%3A%0A%20%20%20%20mo.md(f%22%22%22%0A%20%20%20%20**Study%20name%3A**%20%7Bsearch.study_.study_name%7D%0A%0A%20%20%20%20**Total%20trials%3A**%20%7Blen(search.study_.trials)%7D%0A%0A%20%20%20%20**Best%20trial%20number%3A**%20%7Bsearch.study_.best_trial.number%7D%0A%0A%20%20%20%20**Best%20score%3A**%20%7Bsearch.study_.best_value%3A.3f%7D%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
99f9833eb2e2efe98e512858b805cc0b