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

How to improve speed of the program for large data in python

我正在尝试计算预测概率。我写了一个正在计算的程序,但速度很慢,而且要花很多时间处理大型数据集。

目的是用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))

同样的任务还有其他方法吗?请推荐

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

或者您可以使用 Logistic Regression

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

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

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

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