【发布时间】:2016-10-23 21:12:27
【问题描述】:
我有一个包含 100,000 行、125 个特征和连续输出的数据集。我在 2013 macbook pro 上运行 numpy、pandas 和 sklearn,内存为 16gb。仅使用 10,000 行和 5 个特征进行训练,当我尝试使用 sklearn RandomForestClassifier 仅预测测试集中的 1,000 行时,ipython 内核死亡。我是否应该只用 10,000 x 5 进行训练和 1,000 x 5 进行预测来达到这个限制?
import pandas as pd
import numpy as np
import sklearn as sk
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import SelectKBest
df = pd.read_csv('train.csv')
df2 = pd.read_csv('test.csv')
cat = df.iloc[:,:117]
cont = df.iloc[:,117:df.shape[1]-1]
y = df.iloc[:,df.shape[1]-1]
cat2 = df2.iloc[:,:117]
cont2 = df2.iloc[:,117:df2.shape[1]]
cont_new = SelectKBest(k=5).fit_transform(cont,y)
test = cont2.iloc[:,[6,7,10,12,13]]
rf = RandomForestClassifier(n_jobs=-1,n_estimators=100,max_depth=20)
y = np.asarray(y,dtype="|S6")
rf.fit(cont_new[:10000], y[:10000])
predictions = rf.predict(test[:5000])
print(predictions)
【问题讨论】:
-
死前会报错吗?分享错误。还要仔细检查采样数据是否有问题。
-
在您的 Mac 上打开活动监视器 - 运行时是否使用过多的 RAM?
-
我会尝试在 ipython 内核之外运行它并了解是否存在故障。
-
错误信息是“内核似乎已经死机。它将自动重启。”它在控制台的脚本中运行,但仍然需要永远只有 10,000 x 5 个预测。
-
显示代码或其他一切都在猜测。
标签: python scikit-learn