python 手码实现朴素贝叶斯二分类无框架

系统 1668 0

数据集:https://archive.ics.uci.edu/ml/datasets/Adult

python 手码实现朴素贝叶斯二分类无框架_第1张图片

这个数据集是字符数据集,你需要自己进行清洗数据转换数据之类的,好在python的字符串操作特别简单,好处理。特征取了学位情况、工作职业性质、工作单位之类的。

朴素贝叶斯:https://www.bilibili.com/video/av36338359?from=search&seid=1177086802297258225

 

这个的数据集是预测一个人的年薪是否能超过50k美元/年。

具体的数据特征请看下网站的解释:

由于是2分类,所以思路非常简单。实际上只需要求出一类的概率即可。

下面代码中的ConvertFeature是来转换字符型的数据到数字类型的数据的,但是我在main函数里面直接用了数字型的,所以实际上没有用到。

注意要改一下数据集的路径。

            
              import torch
import torch.nn.modules
import torch.nn
import numpy as np
from torch.autograd import Variable #torch的基本变量
import torch.nn.functional as F #里面有很多torch的函数
import matplotlib.pyplot as plt


class solution:
    def __init__(self):
        self.RawData=[]
        self.Data=[]
        self.GetClass={}

        self.NUMOFFEATURE=0
        self.NUMOFDATA=0
    def LoadData(self,PATH):
        with open(PATH,'r') as f:
            for line in f:
                self.RawData.append([thing.strip() for thing in line.split(',')])
        self.RawData=self.RawData[:-1]
        self.NUMOFDATA=len(self.RawData)

    def ShowRawData(self):
        for item in self.RawData:
            print(item)

    def WashData(self):
        attribute=len(self.RawData[0])-1
        #print("attribute: {}".format(attribute))

        index=0
        while index
              
                P2: return 1#大于50k
        elif P1
                
              
            
          

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论