intellij idea安装 process ionic3 后台管理模板 后台界面 matlab读取dat文件 matlab停止运行命令 string转16进制 js数组截取前5个 svn安装后右键不显示 kubernetes视频教程 mysql学习 python的range python的array java接口 javase教程 java函数 java如何使用 java抛出自定义异常 linux目录 海鸥浏览器 kms神龙 复制到剪贴板 sim卡注册失败 给视频加字幕的软件 pr视频加速 ps扭曲变形 js转数字 mtu设置多少最好 一键换肤大师 deepcopy 粉碎文件工具 ps怎么磨皮祛痘 gif动画制作工具 熊猫关键词 js压缩图片 超级好友 pandas中文手册 分解机耐久度 xinput
当前位置: 首页 > 学习教程  > 编程语言

数据挖掘-数据分类 python实现

2021/2/13 16:28:59 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

数据挖掘-数据分类 python实现 利用KNN实现性别判定 # -*-coding:utf-8-*-"""Author: ThinkgamerDesc:代码4-5 利用KNN算法实现性别预测 """import numpy as npclass KNN:def __init__(self, k):# k为最近邻个数self.K k# 准备数据def createD…

数据挖掘-数据分类 python实现

在这里插入图片描述
利用KNN实现性别判定

# -*-coding:utf-8-*-

"""
    Author: Thinkgamer
    Desc:
        代码4-5 利用KNN算法实现性别预测
"""

import numpy as np

class KNN:
    def __init__(self, k):
        # k为最近邻个数
        self.K = k

    # 准备数据
    def createData(self):
        features = np.array([[180, 76], [158, 43], [176, 78], [161, 49]])
        labels = ["男", "女", "男", "女"]
        return features, labels

    # 数据进行Min-Max标准化
    def Normalization(self, data):
        maxs = np.max(data, axis=0)
        mins = np.min(data, axis=0)
        new_data = (data - mins) / (maxs - mins)
        return new_data, maxs, mins

    # 计算k近邻
    def classify(self, one, data, labels):
        # 计算新样本与数据集中每个样本之间的距离,这里距离采用的欧式距离计算方法
        differenceData = data - one
        squareData = (differenceData ** 2).sum(axis=1)
        distance = squareData ** 0.5
        sortDistanceIndex = distance.argsort()
        # 统计K近邻的label
        labelCount = dict()
        for i in range(self.K):
            label = labels[sortDistanceIndex[i]]
            labelCount.setdefault(label, 0)
            labelCount[label] += 1
        # 计算结果
        sortLabelCount = sorted(labelCount.items(), key=lambda x: x[1], reverse=True)
        print(sortLabelCount)
        return sortLabelCount[0][0]


if __name__ == "__main__":
    # 初始化类对象
    knn = KNN(3)
    # 创建数据集
    features, labels = knn.createData()
    # 数据集标准化
    new_data, maxs, mins = knn.Normalization(features)
    # 新数据的标准化
    one = np.array([176, 76])
    new_one = (one - mins) / (maxs - mins)
    # 计算新数据的性别
    result = knn.classify(new_one, new_data, labels)
    print("数据 {} 的预测性别为 : {}".format(one, result))

结果

[('男', 2), ('女', 1)]
数据 [176  76] 的预测性别为 :

本文链接: http://www.dtmao.cc/news_show_700034.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?