sklearn手册(持续更新ing...)

本文介绍了sklearn库在分类、聚类和预处理中的应用,包括KNN、SVM、逻辑回归算法,KMeans聚类,以及异常检测的LOF方法。还涉及了文本特征提取的词袋模型和TF-IDF模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

诸神缄默不语-个人CSDN博文目录

本文是一个随时使用sklearn时可供参考的手册。我有使用sklearn的基础,且准备后期直接用sklearn官方的教程文档参考撰写系统性学习sklearn包使用方法的sklearn用户教程一文,因此本文就不介绍基础了。

sklearn官网:scikit-learn: machine learning in Python — scikit-learn 0.16.1 documentation

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)

1.3 逻辑回归

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()

model.fit(train_vector, train['label'])

test['label'] = model.predict(test_vector)

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 - 知乎
大概来说就是把那种跟其他点都很疏远的点视为异常点。

5. 预处理

5.1 文本特征提取

  1. 词袋模型
    from sklearn.feature_extraction.text import CountVectorizer
    
    corpus  #由字符串组成的列表
    vector = CountVectorizer().fit(corpus)
    train_vector = vector.transform(corpus)
    
  2. TF-IDF模型
    from sklearn.feature_extraction.text import TfidfVectorizer
    
    tfidf=TfidfVectorizer(max_features=500)
    corpus  #有字符串组成的列表
    sp_tfidf=tfidf.fit_transform(corpus)  #返回稀疏矩阵,每一行是语料中对应文档的表示向量
    

6. 其他

  1. 过滤警告信息
from warnings import simplefilter
from sklearn.exceptions import ConvergenceWarning
simplefilter("ignore", category=ConvergenceWarning)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值