如何在 python 中提高大数据程序的速度
How to improve speed of the program for large data in python
我正在尝试计算预测概率。我写了一个正在计算的程序,但速度很慢,而且要花很多时间处理大型数据集。
目的是用LinearSVC
和OneVsRestClassifier
计算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')
。它更快。
正如另一个答案中所建议的,LinearSVC
比 SVC(kernel='linear')
快。
关于概率,SVC没有predict_proba()
。相反,您必须将其 probability
超参数设置为 True
。 Link
提示:SVM更适合小型数据集,因此更喜欢使用其他算法来处理大型数据集。
我正在尝试计算预测概率。我写了一个正在计算的程序,但速度很慢,而且要花很多时间处理大型数据集。
目的是用LinearSVC
和OneVsRestClassifier
计算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')
。它更快。
正如另一个答案中所建议的,LinearSVC
比 SVC(kernel='linear')
快。
关于概率,SVC没有predict_proba()
。相反,您必须将其 probability
超参数设置为 True
。 Link
提示:SVM更适合小型数据集,因此更喜欢使用其他算法来处理大型数据集。