本文是一个随时使用sklearn时可供参考的手册。我有使用sklearn的基础,且准备后期直接用sklearn官方的教程文档参考撰写系统性学习sklearn包使用方法的sklearn用户教程一文,因此本文就不介绍基础了。
sklearn官网:scikit-learn: machine learning in Python — scikit-learn 0.16.1 documentation
最近更新时间:2023.3.27
最早更新时间:2023.3.6
1. 分类
1.1 KNN
from sklearn.neighbors import KNeighborsClassifier
neigh=KNeighborsClassifier()
neigh.fit(x,y)
#测试
result=neigh.predict(test_x)
KNeighborsClassifier入参:
- n_neighbors:KNN的N
1.2 SVM
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
y=np.array([0,1,1,2,2,2])
clf=make_pipeline(StandardScaler(),SVC())
clf.fit(X,y)
predict_result=clf.predict(np.array([[2, 3], [2, 5], [5, 5]]))
print(predict_result)
2. 聚类
2.1 KMeans
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html
from sklearn.cluster import KMeans
kmeans=KMeans() #新建KMeans对象,并传入参数
kmeans.fit(case_feature) #进行训练
kmeans.labels_ #K均值对象的所有训练集的标签
KMeans()
方法的入参:
- n_cluster:簇数
- init:初始化质心的方法。可以用字符串(初始化的算法)或者矩阵(初始化的质心)作为输入。
- n_init:用多少个不同的随机种子重新运行K均值聚类算法。
需要注意的是,n_cluster和n_init如果一起用的话,n_cluster会覆盖n_init,也就是强制n_init=
,K均值聚类就只会运行一次(K均值嘛,如果质心确定了,那后面的也就固定了……这是原理部分本文就不讲了)
会报这个警告:
(本知识点的参考资料:python - k-means with selected initial centers - Stack Overflow)
3. 指标
3.1 常用分类指标
from sklearn.metrics import accuracy_score,precision_score,recall_score,f1_score
#y是标签,result是预测结果(经predict之后的数值输出)
#值得一提的是,单标签和多标签都能实现。单标签就各自只要一列数据就行
print(accuracy_score(y,result))
print(precision_score(y,result,average='macro'))
print(recall_score(y,result,average='macro'))
print(f1_score(y,result,average='macro'))
4. 异常检测
4.1 local outlier factor (LOF)
https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.LocalOutlierFactor.html
原理讲解:机器学习-异常检测算法(二):Local Outlier Factor - 知乎
大概来说就是把那种跟其他点都很疏远的点视为异常点。
扫描二维码关注公众号,回复:
14935106 查看本文章