• 大小: 1.65MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-02
  • 语言: 其他
  • 标签: 机器学习  KNN算法  

资源简介

这是我发表的第一篇论文《一种基于层次分析法的改进KNN算法》的代码文档。这里面包含了AHP-KNN算法、FCD-KNN算法和论文实验代码,以及相关论文。

资源截图

代码片段和文件信息

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2017/6/1 19:28
# @Author  : Dai PuWei
# @Site    : 计通303实验室
# @File    : FCD_KNN.py
# @Software: PyCharm Community Edition

import numpy as np
import operator

class AHP_KNN:
    def __init__(selftrain_datatrain_labelweight):
        “““
        这是AHP_KNN算法的构造函数
        :param train_data: 训练数据集
        :param train_label: 训练数据集标签
        :param weight: 属性权重
        “““
        self.Train_data = train_data
        self.Train_label = train_label
        self.Weight = weight

    def predict(selftest_datak):
        “““
        这是AHP-KNN算法中测试一组数据的函数
        :param test_data: 测试数据
        :param k: 邻居数
        “““
        # 计算测试数据与训练数据之间的欧氏距离
        dataSetSize = np.shape(self.Train_data)[0]
        diffMat = np.tile(test_data (dataSetSize 1)) - self.Train_data
        sqDiffMat = diffMat ** 2
        sqDiffMat = sqDiffMat*self.Weight
        sqDistances = sqDiffMat.sum(axis=1)
        distances = sqDistances ** 0.5

        # 对分类标签进行统计,找出对测试数据最合适的K个分类
        sortedDistIndicies = distances.argsort()
        classCount = {}
        for i in range(k):
            voteIlabel = self.Train_label[sortedDistIndicies[i]]
            classCount[voteIlabel] = classCount.get(voteIlabel 0) + 1
        sortedClassCount = sorted(classCount.items() key=operator.itemgetter(1) reverse=True)
        return sortedClassCount[0][0]

    def Test(selfTest_datak):
        “““
        这是AHP-KNN算法的测试函数
        :param test_data: 测试数据集
        :param test_label: 测试数据集标签
        :param k: 邻居数
        “““
        result = []         #存储预测结果
        size = np.shape(Test_data)[0]
        for i in range(size):
            result.append(self.predict(Test_data[i]k))
        result = np.array(result)
        return  result

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-14 15:44  一种基于层次分析法的改进KNN算法\
     目录           0  2018-08-14 15:44  一种基于层次分析法的改进KNN算法\.idea\
     文件         185  2018-08-13 13:54  一种基于层次分析法的改进KNN算法\.idea\misc.xml
     文件         342  2018-08-13 13:53  一种基于层次分析法的改进KNN算法\.idea\modules.xml
     文件       20088  2018-08-14 15:44  一种基于层次分析法的改进KNN算法\.idea\workspace.xml
     文件         455  2018-08-13 13:54  一种基于层次分析法的改进KNN算法\.idea\一种基于层次分析法的改进KNN算法.iml
     目录           0  2018-08-14 15:53  一种基于层次分析法的改进KNN算法\AHP_KNN\
     文件        2091  2018-08-13 14:13  一种基于层次分析法的改进KNN算法\AHP_KNN\AHP_KNN.py
     文件         304  2018-08-13 13:54  一种基于层次分析法的改进KNN算法\AHP_KNN\__init__.py
     目录           0  2018-08-14 15:44  一种基于层次分析法的改进KNN算法\AHP_KNN\__pycache__\
     文件        1878  2018-08-13 15:57  一种基于层次分析法的改进KNN算法\AHP_KNN\__pycache__\AHP_KNN.cpython-36.pyc
     文件        5433  2018-08-14 15:50  一种基于层次分析法的改进KNN算法\AHP_KNN\实验.py
     目录           0  2018-08-14 15:45  一种基于层次分析法的改进KNN算法\FCD_KNN\
     文件        4322  2018-08-13 14:05  一种基于层次分析法的改进KNN算法\FCD_KNN\FCD_KNN.py
     文件         304  2018-08-13 13:54  一种基于层次分析法的改进KNN算法\FCD_KNN\__init__.py
     目录           0  2018-08-14 15:44  一种基于层次分析法的改进KNN算法\FCD_KNN\__pycache__\
     文件        3222  2018-08-13 14:08  一种基于层次分析法的改进KNN算法\FCD_KNN\__pycache__\FCD_KNN.cpython-36.pyc
     文件         317  2018-08-13 15:57  一种基于层次分析法的改进KNN算法\FCD_KNN\__pycache__\__init__.cpython-36.pyc
     目录           0  2018-08-14 15:45  一种基于层次分析法的改进KNN算法\KNN\
     文件        1785  2018-08-13 14:05  一种基于层次分析法的改进KNN算法\KNN\KNN.py
     文件         304  2018-08-13 13:53  一种基于层次分析法的改进KNN算法\KNN\__init__.py
     目录           0  2018-08-14 15:44  一种基于层次分析法的改进KNN算法\KNN\__pycache__\
     文件        1615  2018-08-13 15:57  一种基于层次分析法的改进KNN算法\KNN\__pycache__\KNN.cpython-36.pyc
     文件         313  2018-08-13 15:57  一种基于层次分析法的改进KNN算法\KNN\__pycache__\__init__.cpython-36.pyc
     目录           0  2018-08-14 15:46  一种基于层次分析法的改进KNN算法\论文\
     文件     1559345  2018-08-13 11:32  一种基于层次分析法的改进KNN算法\论文\一种基于层次分析法的改进KNN算法.pdf
     文件      287684  2018-08-13 12:20  一种基于层次分析法的改进KNN算法\论文\基于属性值相关距离的KNN算法的改进研究.pdf

评论

共有 条评论