背景
用随机森林来实现房价预测,期间遇到一些坑。
正文
问题:RandomForestClassifier创建的随机森林模型,训练函数fit()的时候,内存报错。
报错:MemoryError: could not allocate 613351424 bytes
因为根据提示,现在n_estimators参数现在从10变成100。也就是说,你需要更大的内存来跑这个模型。
FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.
很不幸,我的个人电脑明显带不动,捣鼓了半天原来是这个参数的原因。
解决办法: 指定n_estimators参数。
RandomForestClassifier(n_eatimators = 10)
更新
上述报错,除了是n_estimators参数的原因之外,还有可能是你的python版本的问题,我修改了n_estimators参数,还是会报错。
经过分析,原来是我使用的是32位的python3.7版本,我干脆换成64位的python3.7版本。完美解决问题!
当然了,在开发过程中,我还遇到了很多问题。比如我后台开发使用的是Java语言,用servlet+JDBC。我要让我的模型生成一个mppl文件跨平台让java来使用。其中要配置Maven、调用jpmml模型,当然,结果是失败了。弄了几天没弄出来,那么我很暴躁,我干脆不用java了,自学python+Django来开发后台。如果使用python的导出pkl模型的话,一方面模型比较小,而pmml一般比pkl格式大。另一方面,都是python写的,不用切换语言。
程序员,其实就是那么一回事~