<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Optunaを使ったおいしいコーヒーの淹れ方探索 (2021年4月版) へのコメント	</title>
	<atom:link href="https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/</link>
	<description>shuの日々の勉強まとめ</description>
	<lastBuildDate>Wed, 09 Aug 2023 01:08:16 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>
		岡本 より		</title>
		<link>https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-551</link>

		<dc:creator><![CDATA[岡本]]></dc:creator>
		<pubDate>Wed, 09 Aug 2023 01:08:16 +0000</pubDate>
		<guid isPermaLink="false">https://www.mattari-benkyo-note.com/?p=44#comment-551</guid>

					<description><![CDATA[この記事面白いですねー
こんな風に分析につかうんですね。自分は淹れ方によりあまり味が左右されにくいフレンチプレスで淹れているので
なーんも考えてなかったですわ 毎日飲んでいるから、真似してみようかな]]></description>
			<content:encoded><![CDATA[<p>この記事面白いですねー<br />
こんな風に分析につかうんですね。自分は淹れ方によりあまり味が左右されにくいフレンチプレスで淹れているので<br />
なーんも考えてなかったですわ 毎日飲んでいるから、真似してみようかな</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		harrods227 より		</title>
		<link>https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-9</link>

		<dc:creator><![CDATA[harrods227]]></dc:creator>
		<pubDate>Tue, 27 Apr 2021 01:10:28 +0000</pubDate>
		<guid isPermaLink="false">https://www.mattari-benkyo-note.com/?p=44#comment-9</guid>

					<description><![CDATA[&lt;a href=&quot;https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-8&quot;&gt;Shuji Suzuki (shu)&lt;/a&gt; への返信。

shu様

ありがとうございました。
Optunaのissueでも聞いてみようと思います。]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-8">Shuji Suzuki (shu)</a> への返信。</p>
<p>shu様</p>
<p>ありがとうございました。<br />
Optunaのissueでも聞いてみようと思います。</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Shuji Suzuki (shu) より		</title>
		<link>https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-8</link>

		<dc:creator><![CDATA[Shuji Suzuki (shu)]]></dc:creator>
		<pubDate>Mon, 26 Apr 2021 11:12:55 +0000</pubDate>
		<guid isPermaLink="false">https://www.mattari-benkyo-note.com/?p=44#comment-8</guid>

					<description><![CDATA[&lt;a href=&quot;https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-6&quot;&gt;harrods227&lt;/a&gt; への返信。

以下のようにやればパラメータの提案自体はできます。

remaining = 100
x1 = trial.suggest_int(&quot;x1&quot;, 0, min([20, remaining]))
remaining -= x1
x2 = trial.suggest_int(&quot;x2&quot;, 0, min([20, remaining]))
remaining -= x2
...

ただ、30個もパラメータがあると、この方法では最後のほうの原料が0ばかりになってしまって、実際にやりたい最適化にはならない気がしています。

ここまでパラメータが多い場合どうするか、あまり私のほうに知見がないので、optunaを実際に開発している方達に聞いてみるとよいかと思います。
Githubのissueに投稿すれば、Optunaの開発メンバーは親切な方が多いので答えてくれると思います。

Optunaのissueはこちらです。
https://github.com/optuna/optuna/issues]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-6">harrods227</a> への返信。</p>
<p>以下のようにやればパラメータの提案自体はできます。</p>
<p>remaining = 100<br />
x1 = trial.suggest_int(&#8220;x1&#8221;, 0, min([20, remaining]))<br />
remaining -= x1<br />
x2 = trial.suggest_int(&#8220;x2&#8221;, 0, min([20, remaining]))<br />
remaining -= x2<br />
&#8230;</p>
<p>ただ、30個もパラメータがあると、この方法では最後のほうの原料が0ばかりになってしまって、実際にやりたい最適化にはならない気がしています。</p>
<p>ここまでパラメータが多い場合どうするか、あまり私のほうに知見がないので、optunaを実際に開発している方達に聞いてみるとよいかと思います。<br />
Githubのissueに投稿すれば、Optunaの開発メンバーは親切な方が多いので答えてくれると思います。</p>
<p>Optunaのissueはこちらです。<br />
<a href="https://github.com/optuna/optuna/issues" rel="nofollow ugc">https://github.com/optuna/optuna/issues</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		harrods227 より		</title>
		<link>https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-6</link>

		<dc:creator><![CDATA[harrods227]]></dc:creator>
		<pubDate>Mon, 26 Apr 2021 03:38:15 +0000</pubDate>
		<guid isPermaLink="false">https://www.mattari-benkyo-note.com/?p=44#comment-6</guid>

					<description><![CDATA[Shu様
丁寧な回答ありがとうございます。
とても勉強になります。

＞3変数以上であれば、動的にoptunaのsuggest_int()の範囲を変えて対応すると思います。

まさに実際は３変数以上なんです。
材料の原料が30種類あり、それぞれ体積含有率の範囲が異なります。

原料1：0~20%
原料2：0~20%
原料3：0~10%
原料4：0~10%
原料5：0~5%
原料6：0~5%
　　　・
　　　・
原料29：0~10%
原料30：0~10%

となっている場合に、原料１~原料30の合計が100％になるように、パラメータが提案される必要があります。
このような場合の方法（動的にoptunaのsuggest_int()の範囲を変えて対応する）をご教授頂けませんか？

以上、宜しくお願い致します。]]></description>
			<content:encoded><![CDATA[<p>Shu様<br />
丁寧な回答ありがとうございます。<br />
とても勉強になります。</p>
<p>＞3変数以上であれば、動的にoptunaのsuggest_int()の範囲を変えて対応すると思います。</p>
<p>まさに実際は３変数以上なんです。<br />
材料の原料が30種類あり、それぞれ体積含有率の範囲が異なります。</p>
<p>原料1：0~20%<br />
原料2：0~20%<br />
原料3：0~10%<br />
原料4：0~10%<br />
原料5：0~5%<br />
原料6：0~5%<br />
　　　・<br />
　　　・<br />
原料29：0~10%<br />
原料30：0~10%</p>
<p>となっている場合に、原料１~原料30の合計が100％になるように、パラメータが提案される必要があります。<br />
このような場合の方法（動的にoptunaのsuggest_int()の範囲を変えて対応する）をご教授頂けませんか？</p>
<p>以上、宜しくお願い致します。</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Shuji Suzuki (shu) より		</title>
		<link>https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-5</link>

		<dc:creator><![CDATA[Shuji Suzuki (shu)]]></dc:creator>
		<pubDate>Sun, 25 Apr 2021 01:25:49 +0000</pubDate>
		<guid isPermaLink="false">https://www.mattari-benkyo-note.com/?p=44#comment-5</guid>

					<description><![CDATA[&lt;a href=&quot;https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-4&quot;&gt;harrods227&lt;/a&gt; への返信。

コメントありがとうございます！

&gt; Q1
2変数の合計を制限したい場合であれば、以下のようにすればOKかと思います。3変数以上であれば、動的にoptunaのsuggest_int()の範囲を変えて対応するなどでいけると思います。
&lt;code&gt;
total_time = 230
new_params[&quot;蒸らし時間 (sec)&quot;] = trial.suggest_int(&quot;蒸らし時間 (sec)&quot;, 20, total_time)
new_params[&quot;抽出時間 (sec)&quot;] = total_time - new_params[&quot;蒸らし時間 (sec)&quot;]
&lt;/code&gt;

&gt; Q2 
CSVで出力したいのであれば、現状Pythonのdictになっているので、それをpandasのDataFrameにして、pandas の DataFrameの機能でcsvに出力させるのがコード量が少なくて楽かと思います。

こんな感じかと(コメント機能だとちゃんとインデントが指定できないので、適宜修正してください)
&lt;code&gt;
df_dict = {}
for k, v in new_params.items(): 
  df_dict[k] = [v]
pd.DataFrame(df_dict).to_csv(&quot;params.csv&quot;)
&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-4">harrods227</a> への返信。</p>
<p>コメントありがとうございます！</p>
<p>> Q1<br />
2変数の合計を制限したい場合であれば、以下のようにすればOKかと思います。3変数以上であれば、動的にoptunaのsuggest_int()の範囲を変えて対応するなどでいけると思います。<br />
<code><br />
total_time = 230<br />
new_params["蒸らし時間 (sec)"] = trial.suggest_int("蒸らし時間 (sec)", 20, total_time)<br />
new_params["抽出時間 (sec)"] = total_time - new_params["蒸らし時間 (sec)"]<br />
</code></p>
<p>> Q2<br />
CSVで出力したいのであれば、現状Pythonのdictになっているので、それをpandasのDataFrameにして、pandas の DataFrameの機能でcsvに出力させるのがコード量が少なくて楽かと思います。</p>
<p>こんな感じかと(コメント機能だとちゃんとインデントが指定できないので、適宜修正してください)<br />
<code><br />
df_dict = {}<br />
for k, v in new_params.items():<br />
  df_dict[k] = [v]<br />
pd.DataFrame(df_dict).to_csv("params.csv")<br />
</code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		harrods227 より		</title>
		<link>https://www.mattari-benkyo-note.com/2021/04/01/coffee-tuning-202104/#comment-4</link>

		<dc:creator><![CDATA[harrods227]]></dc:creator>
		<pubDate>Thu, 15 Apr 2021 14:42:56 +0000</pubDate>
		<guid isPermaLink="false">https://www.mattari-benkyo-note.com/?p=44#comment-4</guid>

					<description><![CDATA[とても参考になりました。
2つ質問させてください。ご教授頂けると嬉しいです。

Q1
Optunaで制約条件をかけるにはどうすれば良いですか？
例えば、蒸らし時間と抽出時間の合計が必ず230秒になるようにしたい場合です。

Q2
提案されたパラメータをcsvファイルに書き出すにはどうしたらいいですか？

以上、宜しくお願い致します。]]></description>
			<content:encoded><![CDATA[<p>とても参考になりました。<br />
2つ質問させてください。ご教授頂けると嬉しいです。</p>
<p>Q1<br />
Optunaで制約条件をかけるにはどうすれば良いですか？<br />
例えば、蒸らし時間と抽出時間の合計が必ず230秒になるようにしたい場合です。</p>
<p>Q2<br />
提案されたパラメータをcsvファイルに書き出すにはどうしたらいいですか？</p>
<p>以上、宜しくお願い致します。</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
