teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

追記

2019/06/19 12:45

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ランダムフォレストの場合、パラメータを変えなくても、サンプル数を増やせばモデルの複雑性が上がるということはありえます。データの細かい分布がわかるようになりますし、増えた情報を保持させるために木の各枝が深くなるからです(`max_depth`は最大の深さを制限するだけですので、`max_depth`に達しない枝が実際にはたくさん存在します。サンプル数が増えるとそういう枝が減り、`max_depth`に達した枝が増えます)。
4
4
 
5
- 全体で8GBということは木1つあたり40MBほど使っていることになる訳ですが、決定木は最大で1(2^0)+2+4+8+16+32+...+524288(2^19)=1048575の中間ノードを保持しないといけなくなります(木の深さの計算方法の絡みで厳密な数字が間違っている可能性はありますが、概数ではこんなものです。また、あくまでも「最大」の数字で、もっと効率よく保持できれば当然その分だけ減ります。今回くらいデータ量が多いと、ほぼこれくらい要ると思いますが)。そしたらノード1つで数byte~数十byteくらいの感覚なので、まあそんなもんじゃね? ということです。
5
+ 全体で8GBということは木1つあたり40MBほど使っていることになる訳ですが、決定木は最大で1(2^0)+2+4+8+16+32+...+524288(2^19)=1048575の中間ノードを保持しないといけなくなります(木の深さの計算方法の絡みで厳密な数字が間違っている可能性はありますが、概数ではこんなものです。また、あくまでも「最大」の数字で、もっと効率よく保持できれば、あるいは逆に効率が悪くてどこかの枝に偏ってその枝が最大深さに達すれば、当然その分だけ減ります。今回くらいデータ量が多いと、ほぼこれくらい要ると思いますが)。そしたらノード1つで数byte~数十byteくらいの感覚なので、まあそんなもんじゃね? ということです。
6
6
 
7
7
  ---
8
8
 

5

追記

2019/06/19 12:45

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ランダムフォレストの場合、パラメータを変えなくても、サンプル数を増やせばモデルの複雑性が上がるということはありえます。データの細かい分布がわかるようになりますし、増えた情報を保持させるために木の各枝が深くなるからです(`max_depth`は最大の深さを制限するだけですので、`max_depth`に達しない枝が実際にはたくさん存在します。サンプル数が増えるとそういう枝が減り、`max_depth`に達した枝が増えます)。
4
4
 
5
- 全体で8GBということは木1つあたり40MBほど使っていることになる訳ですが、決定木は最大で1(2^0)+2+4+8+16+32+...+524288(2^19)=1048575の中間ノードを保持しないといけなくなります。そしたらノード1つで数byte~数十byteくらいの感覚なので、まあそんなもんじゃね? ということです。
5
+ 全体で8GBということは木1つあたり40MBほど使っていることになる訳ですが、決定木は最大で1(2^0)+2+4+8+16+32+...+524288(2^19)=1048575の中間ノードを保持しないといけなくなります(木の深さの計算方法の絡みで厳密な数字が間違っている可能性はありますが、概数ではこんなものですまた、あくまでも「最大」の数字で、もっと効率よく保持できれば当然の分だけ減ります。今回くらいデータ量が多いと、ほぼこれくらい要ると思いますが)。そしたらノード1つで数byte~数十byteくらいの感覚なので、まあそんなもんじゃね? ということです。
6
6
 
7
7
  ---
8
8
 

4

追記

2019/06/19 12:30

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -10,4 +10,4 @@
10
10
 
11
11
  https://joblib.readthedocs.io/en/latest/generated/joblib.dump.html
12
12
 
13
- 別途joblibを入れてもいいですし、実はsklearnの中に入っていて`from sklearn.externals import joblib`でimportすることも可能です。
13
+ 別途joblibを入れてもいいですし、実はsklearnの中に入っていて(バンドルされていて)`from sklearn.externals import joblib`でimportすることも可能です。

3

追記

2019/06/19 07:31

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -8,4 +8,6 @@
8
8
 
9
9
  こういうケースではjoblib.dumpが良いかもしれません。圧縮して書き出すことが可能です。これでたぶん1/10くらいに減るでしょう。
10
10
 
11
- https://joblib.readthedocs.io/en/latest/generated/joblib.dump.html
11
+ https://joblib.readthedocs.io/en/latest/generated/joblib.dump.html
12
+
13
+ 別途joblibを入れてもいいですし、実はsklearnの中に入っていて`from sklearn.externals import joblib`でimportすることも可能です。

2

追記

2019/06/19 07:30

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  アルゴリズム的には、データそのものを内部に保持する必要はないはずです。実装を見ていないので、もしかしたら保持してしまう実装になっているかもしれませんけど(基本的には考えづらい)。
2
2
 
3
- ランダムフォレストの場合、パラメータを変えなくても、サンプル数を増やせばモデルの複雑性が上がるということはありえます。データの細かい分布がわかるようになりますし、増えた情報を保持させるために木の深さが深くなるからです(`max_depth`は最大の深さを制限するだけですので、`max_depth`に達しない枝が実際にはたくさん存在します。サンプル数が増えるとそういう枝が減り、`max_depth`に達した枝が増えます)。
3
+ ランダムフォレストの場合、パラメータを変えなくても、サンプル数を増やせばモデルの複雑性が上がるということはありえます。データの細かい分布がわかるようになりますし、増えた情報を保持させるために木の各枝が深くなるからです(`max_depth`は最大の深さを制限するだけですので、`max_depth`に達しない枝が実際にはたくさん存在します。サンプル数が増えるとそういう枝が減り、`max_depth`に達した枝が増えます)。
4
4
 
5
5
  全体で8GBということは木1つあたり40MBほど使っていることになる訳ですが、決定木は最大で1(2^0)+2+4+8+16+32+...+524288(2^19)=1048575の中間ノードを保持しないといけなくなります。そしたらノード1つで数byte~数十byteくらいの感覚なので、まあそんなもんじゃね? ということです。
6
6
 

1

追記

2019/06/19 07:27

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ランダムフォレストの場合、パラメータを変えなくても、サンプル数を増やせばモデルの複雑性が上がるということはありえます。データの細かい分布がわかるようになりますし、増えた情報を保持させるために木の深さが深くなるからです(`max_depth`は最大の深さを制限するだけですので、`max_depth`に達しない枝が実際にはたくさん存在します。サンプル数が増えるとそういう枝が減り、`max_depth`に達した枝が増えます)。
4
4
 
5
- 全体で8GBということは木1つあたり40MBほど使っていることになる訳ですが、決定木は最大で1(2^0)+2+4+8+16+32+...+524288(2^19)=1048575の中間ノードを保持しないといけなくなります。そしたらノード1つで数十byteくらいの感覚なので、まあそんなもんじゃね? ということです。
5
+ 全体で8GBということは木1つあたり40MBほど使っていることになる訳ですが、決定木は最大で1(2^0)+2+4+8+16+32+...+524288(2^19)=1048575の中間ノードを保持しないといけなくなります。そしたらノード1つで数byte~数十byteくらいの感覚なので、まあそんなもんじゃね? ということです。
6
6
 
7
7
  ---
8
8