专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

了解离群值以及如何使用Python中的PyOD检测离群值_python

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 3:42:14       共计:3577 浏览

了解离群值以及如何使用Python中的PyOD检测离群值?

具体包括的算法如下:

Model 1 Angle-based Outlier Detector (ABOD)

Model 2 Cluster-based Local Outlier Factor (CBLOF)

Model 3 Feature Bagging

Model 4 Histogram-base Outlier Detection (HBOS)

Model 5 Isolation Forest

Model 6 K Nearest Neighbors (KNN)

Model 7 Average KNN

Model 8 Median KNN

Model 9 Local Outlier Factor (LOF)

Model 10 Minimum Covariance Determinant (MCD)

Model 11 One-class SVM (OCSVM)

Model 12 Principal Component Analysis (PCA)

这些算法主要都是无监督的方式来实现的异常离群点值检测的方法。

同时也提供了对所有算法的比较:

其核心代码如下:

for i, (clf_name, clf) in enumerate(classifiers.items()):

print()

print(i + 1, 'fitting', clf_name)

# fit the data and tag outliers

clf.fit(X)

scores_pred = clf.decision_function(X) * -1

y_pred = clf.predict(X)

threshold = stats.scoreatpercentile(scores_pred,

100 * outliers_fraction)

n_errors = (y_pred != ground_truth).sum()

# plot the levels lines and the points

Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()]) * -1

Z = Z.reshape(xx.shape)

subplot = plt.subplot(3, 4, i + 1)

subplot.contourf(xx, yy, Z, levels=np.linspace(Z.min(), threshold, 7),

cmap=plt.cm.Blues_r)

a = subplot.contour(xx, yy, Z, levels=[threshold],

linewidths=2, colors='red')

subplot.contourf(xx, yy, Z, levels=[threshold, Z.max()],

colors='orange')

b = subplot.scatter(X[:-n_outliers, 0], X[:-n_outliers, 1], c='white',

s=20, edgecolor='k')

c = subplot.scatter(X[-n_outliers:, 0], X[-n_outliers:, 1], c='black',

s=20, edgecolor='k')

subplot.axis('tight')

subplot.legend(

[a.collections[0], b, c],

['learned decision function', 'true inliers', 'true outliers'],

prop=matplotlib.font_manager.FontProperties(size=10),

loc='lower right')

subplot.set_xlabel("%d. %s (errors: %d)" % (i + 1, clf_name, n_errors))

subplot.set_xlim((-7, 7))

subplot.set_ylim((-7, 7))

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:直接请求一个post接口的数据怎么写_python | ·下一条:从零学习python_python

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有