【发布时间】:2021-10-01 11:48:03
【问题描述】:
我的记忆力有限,训练这个模型需要太多时间:
import sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
clf = RandomForestClassifier(n_estimators=10)
print("Created Random Forest classifier\n")
data = pd.read_csv("House_2_ALL.csv")
print("Finished reading data\n")
data.drop("UnixTimeStamp",1)
predict = "Aggregate_Power"
print("Dropped UnixTimeStamp\n")
X = np.array(data.drop([predict],1))
Y = np.array(data[predict])
print("Created numpy Arrays\n")
X_train, X_test, Y_train, Y_test = sklearn.model_selection.train_test_split(X, Y, test_size = 0.1)
print("Assigned Testing/Training Variables\n")
clf.fit(X_train, Y_train)
print("Fit model\n")
print("Attempting to predict\n")
print(clf.predict(X_test))
当我运行这个程序时,我的电脑提示它内存不足,我需要退出一些应用程序。 有关如何更好地管理内存的任何想法,或者是减小训练数据集大小的唯一解决方案?
我了解到程序运行平稳,直到它到达“clf.fit(X_train, Y_train)”行,所以我不知道这是否是 pandas 的内存饥饿数据框架或 sklearn 的问题。
【问题讨论】:
-
你可以做一些事情:(1)通过随机选择行来减少训练集的大小,假设你有一个随机选择的数据集,(2)降低你的浮点值的精度(如果有的话),尝试 FP32 或 FP16。
标签: python memory scikit-learn out-of-memory random-forest