如何在python中提高大数据程序的速度

时间:2018-10-30 12:10:25

标签: python python-3.x machine-learning stanford-nlp

我正在尝试计算预测概率。我写了一个正在计算的程序,但是速度非常慢,并且需要花费大量时间处理大型数据集。

目标是通过使用LinearSVCOneVsRestClassifier来计算SVM模型中的每个预测概率,但会得到误差

AttributeError: 'LinearSVC' object has no attribute 'predict_proba'

由于上述错误,我在下面尝试过

代码

from sklearn import svm

model_1 = svm.SVC(kernel='linear', probability=True)

from sklearn.preprocessing import LabelEncoder

X_1 = df["Property Address"]
lb = LabelEncoder()
X_2 = lb.fit_transform(X_1)

y_1 = df["Location_Name"]
y_2 = lb.fit_transform(y_1)

test_1 = test["Property Address"]
lb = LabelEncoder()
test_1 = lb.fit_transform(test_1)

X_2= X_2.reshape(-1, 1)
y_2= y_2.reshape(-1, 1)
test_1 = test_1.reshape(-1, 1)

model_1.fit(X_2, y_2)

results = model_1.predict_proba(test_1)[0]

# gets a dictionary of {'class_name': probability}
prob_per_class_dictionary = dict(zip(model.classes_, results))

还有其他方法可以完成同一任务吗?请建议

2 个答案:

答案 0 :(得分:0)

如果需要使用predict_proba方法,则可以使用sklearns CalibratedClassifierCV

或者您可以使用Logistic Regression

如果您的问题与速度有关,请尝试考虑使用LinearSVC中的sklearn.svm而不是SVC(kernel='linear')。更快。

答案 1 :(得分:0)

如另一个答案所建议,LinearSVCSVC(kernel='linear')快。

关于概率,SVC没有predict_proba()。相反,您必须将其probability超参数设置为TrueLink

提示:SVM是小型数据集的首选,因此更喜欢使用其他算法来处理大型数据集。