1. Trang chủ
  2. » Tất cả

Máy học – naïve bayes hdth naivebayes

3 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Máy Học – Naïve Bayes
Trường học Đại Học Khoa Học Tự Nhiên
Chuyên ngành Công Nghệ Thông Tin
Thể loại Hướng Dẫn Thực Hành
Thành phố Hồ Chí Minh
Định dạng
Số trang 3
Dung lượng 675,87 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các hệ thống thông minh nhân tạo và ứng dụng Các hệ thống thông minh nhân tạo và ứng dụng Khoa CNTT, ĐH KHTN HCM 1 HƯỚNG DẪN THỰC HÀNH MÁY HỌC – NAÏVE BAYES 1 Các cấu trúc dữ liệu cần dùng Các cấu trú[.]

Trang 1

MÁY HỌC – NẠVE BAYES

1 Các cấu trúc dữ liệu cần dùng

Các cấu trúc dữ liệu cần sử dụng khi cài đặt thuật tốn Nạve Bayes để phân loại mẫu mới, bao gồm:

 Mẫu dữ liệu: mỗi mẫu tương ứng với một loại nấm trong dữ liệu

 Tập dữ liệu: bao gồm nhiều mẫu dữ liệu và số lượng mẫu trong mỗi lớp tương

ứng (ăn được hay cĩ độc

 Giá trị xác suất các thuộc tính cho từng lớp

 NaiveBayes: biểu diễn thuật tốn Nạve Bayes và lưu các giá trị thống kê cĩ được

từ dữ liệu

1.1 Mẫu dữ liệu – nấm

struct Mushroom{

char loaiNam;

char hinhDang;

char beMat;

char mauSac;

char vetTham;

char muiHuong;

char mauBaoTu;

char phanBo;

char moiTruong;

};

Để sử dụng cấu trúc trên, khai báo như sau:

Mushroom m;

1.2 Tập dữ liệu

struct TapDuLieu{

vector<Mushroom> duLieu;

int soLuongCoDoc;

int soLuongAnDuoc;

};

Để sử dụng cấu truc trên, khai báo như sau:

TapDuLieu d;

Giá trị xác suất cho các giá trị các thuộc tính cho từng lớp

Trang 2

struct XacSuatThuocTinh{

double xacSuatHinhDang[6];

double xacSuatBeMat[4];

double xacSuatMauSac[9];

double xacSuatVetTham[2];

double xacSuatMuiHuong[9];

double xacSuatBaoTu[9];

double xacSuatPhanBo[6];

double xacSuatMoiTruong[7];

};

NaiveBayes

struct NaiveBayes{

double xacSuatKhongDoc;

double xacSuatCoDoc;

XacSuatThuocTinh lopKhongDoc;

XacSuatThuocTinh lopCoDoc;

};

2 Cài đặt

2.1 Đọc thông tin từ tập tin đầu vào

void DocTapDuLieu(char* duongDan, TapDuLieu &d){

//1 Mở tập tin

ifstream f;

//2 Trong khi đọc chưa hết tập tin

while(!f.eof())

{

//2.1 Đọc dòng dữ liệu

f.getline( );

//2.2 Phân tách theo dấu phẩy, tạo nấm và thêm vào tập dữ liệu

}

}

Trang 3

Tập dữ liệu Mushroom cĩ 2 lớp là khơng cĩ đơc/ăn được (e) và cĩ độc (p) Để cài đặt thuật tốn Nạve Bayes, chúng ta cần cài đặt các phương thức sau:

2.2.1 Tính xác suất cho mỗi lớp

Xác suất này cho biết khả năng một loại nấm là cĩ độc hay khơng cĩ độc

Cơng thức tính (cĩ làm trơn theo Laplace):

𝑃(𝑒) = 𝑆ố 𝑛ấ𝑚 𝑘ℎơ𝑛𝑔 độ𝑐 + 1

𝑇ổ𝑛𝑔 𝑠ố 𝑛ấ𝑚 + 2 𝑃(𝑝) = 𝑆ố 𝑛ấ𝑚 𝑐ĩ độ𝑐 + 1

𝑇ổ𝑛𝑔 𝑠ố 𝑛ấ𝑚 + 2

double XacSuatKhơngDoc(const TapDuLieu &d){

double p = (d.soLuongAnDuoc + 1)/(d.duLieu.size()+2); }

Sinh viên tự viết cho xác suất cĩ độc

2.2.2 Tính xác suất cho các giá trị thuộc tính

Lặp cho mỗi lớp 𝐶,

Lặp cho mỗi thuộc tính 𝑥

Lặp với mỗi giá trị của thuộc tính 𝑥𝑘

Tính xác suất theo cơng thức sau

𝑚 = 𝑠ố 𝑚ẫ𝑢 𝑡ℎ𝑢ộ𝑐 𝑙ớ𝑝 𝐶, 𝑐ĩ 𝑔𝑖á 𝑡𝑟ị 𝑥 𝑡ạ𝑖 𝑡ℎ𝑢ộ𝑐 𝑡í𝑛ℎ 𝑝

𝑃(𝑥|𝐶) = 𝑚 + 1

𝑠ố 𝑚ẫ𝑢 𝑡ℎ𝑢ộ𝑐 𝑙ớ𝑝 𝐶 + 𝑘 Lưu giá trị vào đối tượng NaiveBayes, k là tổng số các khả năng cĩ thể của x

2.2.3 Phân loại cho nấm mới

Tính xác suất mẫu mới thuộc loại khơng độc theo cơng thức:

𝑃(𝐶 = 𝑒|𝑥) = 𝑃(𝐶 = 𝑒) ∏ 𝑃(𝑥𝑘|𝐶 = 𝑒)

𝑛

𝑘=1 Tính xác suất mẫu mới thuộc về loại cĩ độc theo cơng thức

𝑃(𝐶 = 𝑝|𝑥) = 𝑃(𝐶 = 𝑝) ∏ 𝑃(𝑥𝑘|𝐶 = 𝑝)

𝑛

𝑘=1 Nếu 𝑃(𝐶 = 𝑒|𝑥) > 𝑃(𝐶 = 𝑝|𝑥) thì nấm khơng cĩ độc

Ngược lại là cĩ độc

Ngày đăng: 25/03/2023, 08:39

w