zoukankan      html  css  js  c++  java
  • python实现朴素贝叶斯

        # -*- coding: utf-8 -*-
        
        import pandas as pd
        import numpy as np
        
        data = pd.read_csv(r'data.csv')
        
        train = data.ix[0:4000,:]
        Y = list(train.columns)[-1]
        C = list(train[Y].unique())
        test = data.iloc[601:611,0:6]
        Xtest = test.iloc[:,0:5]
    
        #当预测值为c的情况下的概率
        def XP(testline,c,trainpart):
            Xp = 1
            for index in testline.index:
                x = testline[index]
                xp = len(trainpart[trainpart[index]==x])/len(trainpart)
                print(len(trainpart[trainpart[index]==x]))
                Xp=Xp*xp
            print(Xp)
            return Xp
        
        #预测值为C的概率
        def YP(train,C,testline):
            p=[]
            for c in C:
                trainpart = train[train[Y]==c]
                Yp = XP(testline,c,trainpart)*(len(trainpart)/len(train))
                p.append(Yp)
            p = np.array(p)
            print(p)
            return C[p.argmax()]
    
        #每行记录的预测值
        def NB(train,Xtest,C):
            result=[]
            for i in Xtest.index:
                testline = Xtest.ix[i,:]
                result.append(YP(train,C,testline))
            return result
        
        result = NB(train,Xtest,C)
        
                
            
  • 相关阅读:
    滚动条去掉
    js 类继承extends
    html标签分类
    Freemarker模板引擎
    关于SpringMVC控制器的一点补充
    Maven的使用
    多层嵌套的json数据
    前后端数据交互之数据接口
    ES6浅谈之Promise
    ES6(阮一峰)学习总结
  • 原文地址:https://www.cnblogs.com/chenyaling/p/7239125.html
Copyright © 2011-2022 走看看