每当我使用拟合模型时计算机都会冻结
Computer freezing whenever I use fitted model summary
我正在为一个学校项目做逻辑回归。在我训练数据并尝试执行拟合模型摘要后,具体来说
fitted_model = linear_regression.fit()
只是 运行s 和 运行s 和 运行s,以至于浏览器冻结。我已经让它 运行 二十多分钟了。在我看来,数据并没有那么大,因为它只有 10,000 行数据(同样,我是一名学生,所以如果我错了请纠正我)。也就是说,我在许多列上使用了 getdummies,目前有 18,000 列。但是,我看到了这个帖子,如果我没看错的话,它应该 运行 还可以 (How many features can scikit-learn handle?)
]
在我从头开始之前有什么建议吗?
下面是更多代码,希望对您有所帮助。
from sklearn.linear_model import LogisticRegression
logreg=LogisticRegression()
logreg.fit(X_train, y_train)
y_hat_train=logreg.predict(X_train)
y_hat_test = logreg.predict(X_test)
from sklearn.metrics import classification_report
print(classification_report(y_test,y_hat_test))
import statsmodels.api as sm
import statsmodels.formula.api as smf
Xc = sm.add_constant(X_train)
linear_regression = sm.OLS(y_train,Xc)
fitted_model = linear_regression.fit()
fitted_model.summary()
尝试减少您拥有的样本数量,看看您拥有的代码是否仍在运行,以及需要多少时间。把它放在你的代码片段之前应该可以工作:
n_train = 100
n_test = 10
X_train = X_train[:n_train]
y_train = y_train[:n_train]
X_test = X_test[:n_test]
y_test = y_test[:n_test]
附带说明一下,听起来您的数据太多了。根据每个数据点的特征数量,10000 个数据点 >20 分钟是合理的。如果每个数据点有 1 个特征,那么您只有 10000 个数字,这并不多;但是如果每个点有 1000 个特征,那么你就有 10000*1000 个数据点——这完全是另外一回事了。
我正在为一个学校项目做逻辑回归。在我训练数据并尝试执行拟合模型摘要后,具体来说
fitted_model = linear_regression.fit()
只是 运行s 和 运行s 和 运行s,以至于浏览器冻结。我已经让它 运行 二十多分钟了。在我看来,数据并没有那么大,因为它只有 10,000 行数据(同样,我是一名学生,所以如果我错了请纠正我)。也就是说,我在许多列上使用了 getdummies,目前有 18,000 列。但是,我看到了这个帖子,如果我没看错的话,它应该 运行 还可以 (How many features can scikit-learn handle?) ] 在我从头开始之前有什么建议吗?
下面是更多代码,希望对您有所帮助。
from sklearn.linear_model import LogisticRegression
logreg=LogisticRegression()
logreg.fit(X_train, y_train)
y_hat_train=logreg.predict(X_train)
y_hat_test = logreg.predict(X_test)
from sklearn.metrics import classification_report
print(classification_report(y_test,y_hat_test))
import statsmodels.api as sm
import statsmodels.formula.api as smf
Xc = sm.add_constant(X_train)
linear_regression = sm.OLS(y_train,Xc)
fitted_model = linear_regression.fit()
fitted_model.summary()
尝试减少您拥有的样本数量,看看您拥有的代码是否仍在运行,以及需要多少时间。把它放在你的代码片段之前应该可以工作:
n_train = 100
n_test = 10
X_train = X_train[:n_train]
y_train = y_train[:n_train]
X_test = X_test[:n_test]
y_test = y_test[:n_test]
附带说明一下,听起来您的数据太多了。根据每个数据点的特征数量,10000 个数据点 >20 分钟是合理的。如果每个数据点有 1 个特征,那么您只有 10000 个数字,这并不多;但是如果每个点有 1000 个特征,那么你就有 10000*1000 个数据点——这完全是另外一回事了。