贝叶斯分类器python,实验一 贝叶斯分类器的python实现

题目描述

汽车评价数据集

共1728个数据,每个数据特征为6维,分为4类,类别标记为unacc,acc,good,V-good

四个类别标记分别表示汽车性价比等级(由低到高)

unacc:1210个

acc:384个

good:69个

V-good:65个

6个特征分别为:(6个属性)

1、buying (取值:v-high、high、med、low) 表示购买价格

2、maint (取值: v-high、high、med、low) 表示维修价格

3、door (取值:2、3、4、5-more) 车门数量

4、Persons (取值:2、4、more) 可容纳人数

5、Lug_boot (取值:small、med、big) 行李箱大小

Safety (取值:low、med、high) 安全系数

链接:http://archive.ics.uci.edu/ml/datasets/Car+Evaluation

实验完成要求:

1.仔细阅读并了解实验数据集;

2.使用任何一种熟悉的计算机语言(比如 C,Java或者MATLAB)实现朴素贝叶斯算法;

3.利用朴素贝叶斯算法在训练数据上学习分类器,训练数据的大小分别设置为:前100个数据,前200个数据,前500个数据,前700个数据。前1000个数据,前1350个数据;

4.利用测试数据对学习的分类器进行性能评估;

5.演示实验,提交代码,统计分析实验结果并上交实验报告;

开始做题

想要实现贝叶斯分类器,可以分为两个部分,一个是训练,另一部分是检验。

训练即将贝叶斯公式用代码语言描述,具体的贝叶斯公式这里就不赘述了

更艰难的是数据的分类,需要大量的重复性代码

其实绕来绕去就是一个统计+计算判断

代码实现

f72e4bf864da

运行结果

import csv

import random

#import pandas

#数据导入及分成两份

def loadcsv(name):

f = csv.reader(open(name,'r'))

dataset = list(f)

return dataset

def randDivision(dataset , trainSize):

copy = list(dataset)

train = []

while len(train)

index = random.randrange(len(copy))

train.append(copy.pop(index))

return [train, copy]

#初始化一些数据

data1 = [[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0],[0.0,0.0,0.0]]

dataunacc = [[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0],[0.0,0.0

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
朴素贝叶斯分类是一种常用的机学习算法,用于进行文本分类、垃圾邮件过滤等任务。在Python中,有多个包可以实现朴素贝叶斯分类,其中最常用的包是scikit-learn(sklearn)。 scikit-learn是一个功能强大的机学习库,提供了丰富的机学习算法实现,包括朴素贝叶斯分类。使用scikit-learn实现朴素贝叶斯分类的步骤如下: 1. 导入所需的库和模块: ```python from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB ``` 2. 准备数据集: ```python # 假设有两个类别的文本数据,分别为正面和负面 X_train = ['I love this movie', 'This movie is great', 'I hate this movie', 'This movie is terrible'] y_train = ['positive', 'positive', 'negative', 'negative'] ``` 3. 特征提取: ```python # 使用CountVectorizer将文本转换为特征向量 vectorizer = CountVectorizer() X_train_vec = vectorizer.fit_transform(X_train) ``` 4. 构建朴素贝叶斯分类模型并进行训练: ```python # 创建朴素贝叶斯分类对象 classifier = MultinomialNB() # 使用训练数据进行模型训练 classifier.fit(X_train_vec, y_train) ``` 5. 使用模型进行预测: ```python # 假设有一个新的文本需要进行分类 X_test = ['This movie is amazing'] # 将新文本转换为特征向量 X_test_vec = vectorizer.transform(X_test) # 使用训练好的模型进行预测 y_pred = classifier.predict(X_test_vec) print(y_pred) ``` 以上就是使用scikit-learn包实现朴素贝叶斯分类的基本步骤。你可以根据自己的需求和数据进行相应的调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值