美文网首页
【挖掘模型】: Python-朴素贝叶斯分类

【挖掘模型】: Python-朴素贝叶斯分类

作者: dataheart | 来源:发表于2017-05-22 10:48 被阅读221次
    Paste_Image.png

    利用贝叶斯定理中概率统计知识,对离散型的数据进行分类的算法

    # 优点  算法易于实现和部署,执行效率和准确度高
    # 缺点  适合处理离散型的数据,不适合处理连续型的数据
    # 贝叶斯定理  P(A|B)= P(A∩B)/P(B) = (P(B|A)*P(A))/P(B)
    # 例子:
        # 症状      职业         疾病
        # 打喷嚏    护士         感冒
        # 打喷嚏    农夫         过敏
        # 头痛      建筑工人     脑震荡
        # 头痛      建筑工人     感冒
        # 打喷嚏    教师         感冒
        # 头痛      教师        脑震荡
      # 现在来了第七个病人,是一个打喷嚏的建筑工人,他患那种疾病的概率最高?
      # P(感冒|打喷嚏 * 建筑工人) = P(打喷嚏 * 建筑工人)*P(感冒)/P(打喷嚏 * 建筑工人)
      # 假设打喷嚏 和  建筑工人是独立的
      # P(感冒|打喷嚏 * 建筑工人) = P (打喷嚏|感冒)* P(建筑工人|感冒) *P(感冒)/ P(打喷嚏)*P(建筑工人)
      # = 0.66 * 0.33 * 0.5/0.33*0.5
      # P(过敏|打喷嚏 * 建筑工人) = 0
      # P(脑震荡|打喷嚏 * 建筑工人) = 0
    
    import numpy;
    import pandas;
    
    data = pandas.read_csv("F:\\python 数据挖掘分析实战\\Data\\data (3).csv");
    
    fData = data[
        ["ParentIncome", 'IQ', "Gender", "ParentEncouragement"]
    ].to_dict('records')
    
    tData = data["CollegePlans"]
    
    from sklearn.feature_extraction import DictVectorizer
    
    dictVectorizer = DictVectorizer()
    
    pData = dictVectorizer.fit_transform(
        fData
    ).toarray()
    
    pData = pData[:, [1, 2, 3, 5]]
    
    #随机重排序
    permutation = numpy.random.permutation(data.shape[0])
    pData = pData[permutation]
    tData = tData[permutation]
    
    #高斯贝叶斯
    from sklearn.naive_bayes import GaussianNB
    GNBModel = GaussianNB()
    
    GNBModel.fit(pData[:6000], tData[:6000])
    GNBModel.score(pData[6000:], tData[6000:])
    
    #多项朴素贝叶斯
    from sklearn.naive_bayes import MultinomialNB
    MNBModel = MultinomialNB()
    
    MNBModel.fit(pData[:6000], tData[:6000])
    MNBModel.score(pData[6000:], tData[6000:])
    
    #伯努利贝叶斯
    from sklearn.naive_bayes import BernoulliNB
    BNBModel = BernoulliNB()
    
    BNBModel.fit(pData[:6000], tData[:6000])
    BNBModel.score(pData[6000:], tData[6000:])
    

    参考文献
    作者A:ken

    相关文章

      网友评论

          本文标题:【挖掘模型】: Python-朴素贝叶斯分类

          本文链接:https://www.haomeiwen.com/subject/qusbxxtx.html