sklearn 번역 노트: KNeighborsClassifier

3000 단어
오늘 기계 학습 knn의 실현을 위해sklearn이라는 모듈을 사용하고 싶지만 그 안의 함수를 몰라서 어쩔 수 없이 문서를 찾을 수 밖에 없습니다. 하지만 큰 영어가 나를 보면 짜증이 납니다. 못 본다는 것도 아니지만 저의 낮은 영어 수준으로는 정말 너무 힘들어요.다행히 이전 사람이 번역한 비교적 좋은 해석을 찾았다.추천해 드릴게요: 약서에서 온 한 작가: 애플을 먹으면서 코드를 써서 작가님의 공유에 감사하고 더 많은 분들께 도움이 되었으면 좋겠습니다.
sklearn 번역 노트: KNeighborsClassifier - 약서
 
오늘 이룬 코드도 공유해 주세요.
이 코드는python 중국어 텍스트 분류-상국님-CSDN 블로그(상국님)의 코드를 바탕으로 이루어진 것이다
상국님은 베일스 분류로 이루어진 분류 모델입니다. 제 실제 수요로 상국님의 마지막 분류기 모델인 NBAyesPredict.py가 수정되었습니다.sklearn을 사용했습니다.neighbors 이pycharm 자체 모듈의 구체적인 원본 코드는 다음과 같다.
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@version: python3.6
@author: XiangguoSun
@file:Neighbors.py
@time: 2019/6/20 16:12
@software: PyCharm
"""


from sklearn.neighbors import KNeighborsClassifier #   k    
from sklearn import metrics
from Tools import readbunchobj
import os

#      
path = os.getcwd()  #       
trainpath = os.path.join(path,"train_word_bag/tfdifspace.dat")
train_set = readbunchobj(trainpath)

#      
testpath = os.path.join(path,"test_word_bag/testspace.dat")
test_set = readbunchobj(testpath)

#      :           ,
clf=KNeighborsClassifier(n_neighbors=5,radius=1.0,algorithm='auto',leaf_size=30,
metric='minkowski',p=2,metric_params=None,n_jobs=1).fit(train_set.tdm, train_set.label)
"""
n_neighbors: int,     (    5)
algorithm(  ): {‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’},     (    'auto')
leaf_size(    ): int,     (    30)
p: integer,     (    2)
metric(  ): string or callable,     ‘minkowski’
metric_params(    ): dict,     (    None)
n_jobs: int,     (    1)
       ,          。   -1,        CPU    。
"""

#       
predicted = clf.predict(test_set.tdm)

"""
target_name:    list,              
label:    list,           。
filenames:    list,             。
contents:    list,       (          )
"""
for flabel, file_name, expct_cate in zip(test_set.label, test_set.filenames, predicted):
    if flabel != expct_cate:
        print(file_name, ":     :", flabel, " -->    :", expct_cate)

print("    !!!")

#       :

def metrics_result(actual, predict):
    print('  :{0:.3f}'.format(metrics.precision_score(actual, predict, average='weighted')))
    print('  :{0:0.3f}'.format(metrics.recall_score(actual, predict, average='weighted')))
    print('f1-score:{0:.3f}'.format(metrics.f1_score(actual, predict, average='weighted')))


metrics_result(test_set.label, predicted)

readbunchobj () 방법은 Tool에 있습니다.py파일, 재현하려면 상국님의 온전한 코드를 다운로드하고 수정하거나 연락 주세요. 수정된 Knn 코드와 훈련집 테스트 집합을 제공할 수 있습니다.

좋은 웹페이지 즐겨찾기