ứng dụng phương pháp hồi quy bayes vào việc dự báo thời tiết - Pdf 24


LỜI CAM ĐOAN
Tôi xin cam đoan đề tài khoa học “Ứng dụng phương pháp hồi quy Bayes
vào việc dự báo thời tiết” này là công trình nghiên cứu của bản thân tôi. Các số
liệu và kết quả nghiên cứu trong luận văn này là trung thực, được trích dẫn từ các
tài liệu tham khảo như đã trình bày trong luận văn và đã được giáo viên hướng dẫn
khoa học thông qua nội dung và đồng ý cho ra bảo vệ trước hội đồng khoa học.
Người viết luận văn Nguyễn Thị Thu Hòa

MỤC LỤC

2.2.1. Bản đồ SyNốp 39

2.2.2. Bản đồ Faximin 40
2.3. Các nhân tố ảnh hưởng đến thời tiết 41
2.3.1. Nhiệt độ không khí trung bình 41
2.3.2. Độ ẩm không khí trung bình 41
2.3.3. Mây 42
2.3.4. Mưa 42
2.4. Cơ sở lý thuyết 43
2.4.1. Một số khái niệm cơ bản 43
2.4.2. Phát biểu định lý Bayes 46
2.4.3. Mạng Bayes (Bayesian Network) 46
2.4.4. Cách xây dựng mạng Bayes 48
2.4.5. Phân lớp Naive Bayes 49
Chương III. ỨNG DỤNG BAYESIAN ĐỂ XÂY DỰNG CHƯƠNG TRÌNH DỰ
BÁO THỜI TIẾT 52
3.1. Đặt vấn đề 52
3.2. Phân tích bài toán 52
3.3. Hệ thống chương trình 53
3.3.1. Dữ liệu thu thập 53
3.3.2. Giao diện chương trình 53
3.4. Một số kết quả dự báo thời tiết 56
3.5. So sánh kết quả dự đoán và kết quả thực tế 588
KẾT LUẬN 59
TÀI LIỆU THAM KHẢO
PHỤ LỤC


SLIQ: Superived Learning In Quest
SMTP: Simple Mail Transfer Protocol
SPRINT: Scalable PaRallelization INduction of decision Tree

SQL: Structure Query Language
Ti (Ci): Cirrus
TTXVN: Thông tấn xã Việt Nam
VB: Visual Basic
WML: Wireless Markup Language
XML: Extensible Markup Language DANH MỤC CÁC BẢNG
Bảng 1.1. Bảng dữ liệu về thời tiết 12
Bảng 2.1. Bảng xác suất đồng thời 44


Chương I. Tổng quan về khai phá dữ liệu: Giới thiệu tổng quan về quá trình khai
phá dữ liệu, kiến trúc của một hệ thống khai phá dữ liệu, nhiệm vụ chính, các
phương pháp khai phá dữ liệu và một số giải thuật khai phá dữ liệu.
Chương II. Giới thiệu chung về dự báo thời tiết và cơ sở lý thuyết để dự báo thời
tiết: Giới thiệu chung về dự báo thời tiết, các yếu tố ảnh hưởng đến thời tiết và các
phương pháp dự báo thời tiết; đồng thời giới thiệu về định lý Bayes, tổng quan về
mạng Bayes, cách xây dựng mạng Bayes và thuật toán phân lớp Naive Bayes.
Chương III. Ứng dụng mạng Bayes để xây dựng chương trình dự báo thời tiết.
2 Mặc dù đã hết sức nỗ lực, song do thời gian và kinh nghiệm nghiên cứu khoa
học còn hạn chế nên không thể tránh khỏi những thiếu sót. Em rất mong nhận được
sự góp ý của các thầy cô và bạn bè đồng nghiệp để hiểu biết của mình ngày một
hoàn thiện hơn.
Qua luận văn này em xin chân thành cảm ơn: TS. Hoàng Thị Lan Giao –
Khoa Công nghệ thông tin, trường Đại học Khoa học Huế đã tận tình giúp đỡ, động
viên, hướng dẫn em nghiên cứu và hoàn thành luận văn này. Em xin chân thành
cảm ơn các thầy cô giáo và các bạn trong khoa công nghệ thông tin đã có những
góp ý hữu ích trong quá trình thực hiện bản luận văn. Bên cạnh đó, em cũng vô
cùng cảm ơn sự giúp đỡ nhiệt tình và động viên khích lệ của người thân trong gia
đình em, bạn bè và đồng nghiệp trong suốt quá trình thực hiện luận văn.
Biên Hòa, tháng 9 năm 2013
Người viết luận văn Nguyễn Thị Thu Hòa

Kiến trúc của một hệ thống khai phá dữ liệu[13] có các thành phần như sau:

Nguồn[13]
Hình 1.1. Khám phá tri thức trong cơ sở dữ liệu điển hình
4 - Cơ sở dữ liệu, kho dữ liệu hoặc lưu trữ thông tin khác: Đây là một hay các
tập cơ sở dữ liệu, các kho dữ liệu, các trang tính hay các dạng khác của thông tin
được lưu trữ. Các kỹ thuật làm sạch dữ liệu và tích hợp dữ liệu có thể được thực
hiện.
- Máy chủ cơ sở dữ liệu (Database or Warehouse Server): Máy chủ có trách
nhiệm lấy những dữ liệu thích hợp dựa trên những yêu cầu khám phá của người
dùng.
- Cơ sở tri thức (Knowledge-base): Đây là miền tri thức dùng để tìm kiếm hay
đánh giá độ quan trọng của các mẫu kết quả thu được. Tri thức này có thể bao gồm
một sự phân cấp khái niệm dùng để tổ chức các thuộc tính hay các giá trị thuộc tính
ở các mức trừu tượng khác nhau.
- Máy khai phá dữ liệu (Data mining engine): Là một hệ thống khai phá dữ
liệu cần phải có một tập các modul chức năng để thực hiện công việc, chẳng hạn
như kết hợp, phân lớp, phân cụm.
- Modul đánh giá mẫu (Pattern evaluation): Bộ phận tương tác với các modul
khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đáng được quan tâm. Nó
có thể dùng các ngưỡng về độ quan tâm để lọc mẫu đã khám phá được. Cũng có thể
modul đánh giá mẫu được tích hợp vào modul khai phá dữ liệu, tùy theo cách cài
đặt của phương pháp khai phá dữ liệu được dùng.
- Giao diện đồ họa cho người dùng (Graphical user interface): Bộ phận này
cho phép người dùng giao tiếp với hệ thống khai phá dữ liệu. Thông qua giao diện
này người dùng tương tác với hệ thống bằng cách đặc tả một yêu cầu khai phá hay
một nhiệm vụ, cung cấp thông tin trợ giúp cho việc tìm kiếm và thực hiện khai phá

liệu, các bài toán dự báo – bao gồm cả việc phát hiện các suy diễn dựa trên cơ sở dữ
liệu hiện có. Tùy theo bài toán xác định được mà ta lựa chọn các phương pháp khai
phá dữ liệu cho phù hợp.
B
4
: Triển khai (deployment). Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ
các mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu
được có thể được trung bình trên tất cả các lần thực hiện. Các kết quả của quá trình
phát hiện tri thức có thể được đưa và ứng dụng vào các lĩnh vực khác nhau của đời
sống xã hội. Do các kết quả có thể là các dự đoán hoặc các mô tả nên chúng có thể
được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hóa quá trình này.

Nguồn[13]
Hình 1.2. Mô hình mô tả quá trình khai phá dữ liệu
6 Trong đó:
-Làm sạch dữ liệu:
Đối với giá trị thiếu, ta có thể thực hiện theo các phương pháp sau:
+ Bỏ qua các bộ: phương pháp này không phải lúc nào cũng hiệu quả trừ khi các bộ
có chứa một số thuộc tính không thực sự quan trọng.
+ Điền vào các giá trị thiếu bằng tay: phương pháp này thường tốn thời gian và có
thể không khả thi cho một tập dữ liệu nguồn lớn với nhiều giá trị bị thiếu.
+ Sử dụng các giá trị quy ước để điền vào cho giá trị thiếu: thay thế các giá trị thuộc
tính thiếu bởi cùng một hằng số quy ước. Tuy vậy điều này cũng có thể khiến cho
chương trình khai phá dữ liệu hiểu nhầm trong một số trường hợp và đưa ra các kết
luận không hợp lý.
+ Sử dụng các thuộc tính có nghĩa là để điền vào cho các giá trị thiếu.
+ Sử dụng các giá trị của các bộ cùng thể loại để thay thế cho giá trị thiếu.

các khái niệm ở mức cao hơn thông qua kiến trúc khái niệm.
+ Chuẩn hóa, trong đó các dữ liệu của thuộc tính được quy về các khoảng giá trị
nhỏ .
+ Xác định thêm thuộc tính, trong đó các thuộc tính mới sẽ được thêm vào nguồn
dữ liệu để giúp cho quá trình khai phá.
1.4. Chức năng khai phá dữ liệu
Các kỹ thuật khai phá dữ liệu thực hiện 2 chức năng chính:
- Chức năng mô tả: mô tả về các tính chất hoặc các đặc tính chung của dữ liệu
trong cơ sở dữ liệu, các kỹ thuật này gồm có: phân cụm (Clustering), tổng hợp
(Summarization), trực quan hóa (Visualization), phân tích sự phát triển và độ lệch
(Evolution and deviation analysis), phân tích luật kết hợp (Association rules),…
- Chức năng dự đoán: đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu
hiện thời, các kỹ thuật này gồm có: phân lớp (Classification), hồi quy (Regression),
cây quyết định (Decision tree),
1.4.1. Phân lớp (classification)
Là việc xác định một hàm ánh xạ từ một mẫu dữ liệu vào một trong số các
lớp đã được biết trước đó. Mục tiêu của thuật toán phân lớp là tìm ra mối quan hệ
nào đó giữa thuộc tính dự báo và thuộc tính phân lớp. Như thế quá trình phân lớp có
thể sử dụng mối quan hệ này để dự báo cho các mục mới. Các kiến thức được phát
hiện biểu diễn dưới dạng các luật theo cách sau: “Nếu các thuộc tính dự báo của
một mục thỏa mãn điều kiện của các tiền đề thì mục nằm trong lớp chỉ ra trong kết
luận.” 8 1.4.2. Hồi quy (regression)
Là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có
giá trị thực. Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là
với toàn bộ đối tượng không? Theo cách này, sai sót dữ liệu hay sai lệch so với giá
trị thông thường được phát hiện.
Vì những nhiệm vụ này yêu cầu số lượng và các dạng thông tin rất khác nhau
nên chúng thường ảnh hưởng đến việc thiết kế và chọn phương pháp khai phá dữ
liệu khác nhau. Ví dụ như phương pháp cây quyết định tạo ra được một mô tả phân
biệt được các mẫu giữa các lớp nhưng không có tính chất và đặc điểm của lớp.
1.5. Một số thuật toán khai phá dữ liệu
1.5.1. Phân lớp bằng cây quyết định
Phân lớp là một lĩnh vực rất quan trọng trong khai phá dữ liệu. Có nhiều giải
thuật để xây dựng cây quyết định như: ID3, C4.5, SLIQ, SPRINT,… Tại mỗi nút
việc phân chia có thể dựa trên Entropy (ID3, C4.5) hay là dựa trên số đo Gini
(SLIQ, SPRINT). Các giải thuật SLIQ, SPRINT sử dụng các tập tin trên đĩa cứng
nên có thể mở rộng cho các tập số liệu lớn. Các bước tiến hành phân lớp bao gồm:
xây dựng cây quyết định, tỉa cây và rút các luật. Việc phân lớp dựa trên cây quyết
định rất thích hợp cho việc khai phá dữ liệu vì cây quyết định có thể được xây dựng
khá nhanh. Độ phức tạp của giải thuật chủ yếu phụ thuộc vào giai đoạn tạo cây và
bằng O(m*n*logn) với n là số đối tượng (bản ghi) của dữ liệu và m là số các thuộc
tính. Một ưu điểm khác là cấu trúc của cây quyết định đơn giản và dễ hiểu. Ngoài ra
phân lớp dựa trên cây quyết định còn cho kết quả tương đương và nhiều khi tốt hơn
các phương pháp phân lớp khác, từ cây quyết định có thể dễ dàng rút ra các luật.
1.5.1.1. Xây dựng cây quyết định
a. Chọn thuộc tính để phân chia
Nếu thuộc tính chỉ có thể nhận một trong hai giá trị là đúng hoặc sai thì
chúng ta gọi là thuộc tính Boolean. Trường hợp thuộc tính có thể nhận giá trị từ một
tập các giá trị đã được phân loại cho trước, chúng ta gọi là thuộc tính category (phân
loại). Thuộc tính Boolean là một trường hợp đặc biệt của thuộc tính category. Nếu
thuộc tính có giá trị là một số thực thì chúng ta gọi là thuộc tính số.
Ví dụ: date {thứ hai, …, chủ nhật} là thuộc tính category


Entropy được định nghĩa như sau:
1 2 2
1
( , , , ) log ( )
m
m i i
i
I S S S p p




với p
i
là xác suất một mẫu tin bất kì thuộc lớp C
i
và được tính bằng s
i
/s
Giả sử thuộc tính A có n giá trị khác nhau {a
1
, a
2
, …, a
n
}. Thuộc tính A có
thể dùng để chia S thành n tập con {S
1
, S





G(A) càng nhỏ thì các tập con càng đồng nhất hơn (tức là tập trung vào một lớp nào
đó). Như vậy bằng việc phân nhánh theo thuộc tính A, chúng ta đã mã hóa được
một lượng thông tin là:
 
12
( ) , , , ( )
m
Gain A I s s s G A

Giải thuật ID3, C4.5 tính Gain(A) cho từng thuộc tính. Thuộc tính A nào mà
cho Gain(A) lớn nhất sẽ được chọn để phân nhánh tập S.
Thuộc tính số:
Chúng ta dùng phân chia nhị phân dạng
Av
, với v là số thực. Trước tiên
chúng ta sắp xếp các giá trị của thuộc tính A theo thứ tự từ nhỏ tới lớn (v
1
, v
2
, …,
v
n
). Có n – 1 điểm phân chia là điểm giữa của v
i
và v
i+1

information gain lớn nhất.
- Cho P và N là hai lớp và S là một tập dữ liệu có p phần tử lớp P và n phần tử lớp
N .
- Khối lượng thông tin cần thiết để quyết định một mẫu tùy ý có thuộc về lớp P hay
N hay không là:
22
( , ) ( , ) log log
p n p p n n
Info p n Entropy
p n p n p n p n p n p n
   
     

- Cho các tập {S
1
, S
2
, …, S
v
} là một phân hoạch trên tập S, khi sử dụng thuộc tính
A.
- Cho mỗi S
i
chứa p
i
mẫu lớp P và n
i
mẫu lớp N
- Entropy, hay thông tin mong muốn cần thiết để phân lớp các đối tượng trong tất cả
các cây con Si là:

Nóng
Cao
Nhẹ
Không
Nắng
Nóng
Cao
Mạnh
Không
Âm u
Nóng
Cao
Nhẹ

Mưa
Ấm áp
Cao
Nhẹ

Mưa
Mát
TB
Nhẹ

Mưa
Mát
TB
Mạnh
Không
Âm u

Nóng
TB
Nhẹ

Mưa
Ấm áp
Cao
Mạnh
Không
Từ bảng dữ liệu trên ta có:
• Lớp P: Chơi_tennis = “Có”
• Lớp N: Chơi_tennis = “Không”
• Thông tin cần thiết để phân lớp một mẫu được cho là:
13 22
9 9 5 5
( , ) (9,5) log log 0.940
14 14 14 14
Info p n Info    

+ Xét thuộc tính “Quang cảnh” ta có:
 “Quang cảnh” = “Nắng”:
22
2 3 2 2 3 3
([2,3]) ( , ) log ( ) log ( ) 0.971
5 5 5 5 5 5
Info entropy    


3 4 3 3 4 4
([3,4]) ( , ) log ( ) log ( ) 0.985
7 7 7 7 7 7
Info entropy    

 “Độ ẩm” = “TB”:
22
6 1 6 6 1 1
([6,1]) ( , ) log ( ) log ( ) 0.592
7 7 7 7 7 7
Info entropy    

7 7 7 7
( ) (3,4) (6,1) 0.985 0.592 0.789
14 14 14 14
Entropy Doam Info Info      

( ) (9,5) ( ) 0.940 0.789 0.151Gain Doam Info entropy Doam    

Tương tự cho các thuộc tính còn lại ta có:
( ) 0.246
( ) 0.151
( ) 0.048
( ) 0.029
Gain Quangcanh
Gain Doam
Gain Gio
Gain Nhietdo



xóa P ra khỏi tập_thuộc_tính;
với mỗi giá trị V của P
Begin
tạo một nhánh của cây gán nhãn V;
đặt vào phân_vùng V các quyết định trong tập_ví_dụ có
giá trị V tại thuộc tính P;
Không


Không
Cao
Mạnh
Nhẹ
Quang cảnh

Độ ẩm
Gió
Nắng
Mưa
TB

Âm u
15 gọi induce_tree(phân_vùng V, tập_thuộc_tính), gắn kết
quả vào nhánh V
end
end
end [13,15]
 Entropy(S) = 0  tập ví dụ S chỉ toàn ví dụ thuộc cùng một loại, hay S
là thuần nhất.
 Entropy(S) = 1  tập ví dụ S có các ví dụ thuộc các loại khác nhau với
độ pha trộn là cao nhất.
 0 < Entropy(S) < 1  tập ví dụ S có số lượng ví dụ thuộc các loại khác
nhau là không bằng nhau.
Để đơn giản ta xét trường hợp các ví dụ của S chỉ thuộc loại âm (-) hoặc
dương (+).
Cho trước:
• Tập S là tập dữ liệu rèn luyện, trong đó thuộc tính phân loại có hai giá trị,
giả sử là âm (-) và dương (+)
• p
+
là phần các ví dụ dương trong tập S.
• p
-
là phần các ví dụ âm trong tập S.
Khi đó, entropy đo độ pha trộn của tập S theo công thức sau:
Entropy(S) = -p
+
log
2
p
+
- p
-
log
2

Gain S A Entropy S Entropy S
S




Trong đó values(A) là tập hợp có thể có các giá trị của thuộc tính A, và S
V

tập con của S chứa các ví dụ có thuộc tính A mang giá trị v.
17 Trở lại ví dụ ban đầu, nếu không sử dụng Entropy để xác định độ thuần nhất
của ví dụ thì có thể xảy ra trường hợp cây quyết định có chiều cao lớn. Ta áp dụng
phương thức tính Entropy để xác định chắc chắn thuộc tính nào được chọn trong
quá trình tạo cây quyết định. Đầu tiên ta tính độ thuần nhất của tập dữ liệu:
Entropy(S) = - (9/14) log
2
(9/14) - (5/14) log
2
(5/14) = 0.940
Từ đó ta tính tiếp Gain cho từng thuộc tính để suy ra thuộc tính nào được
chọn làm nút gốc.

Ấm áp
) –
(4/14)×Entropy(S
Mát
)
= 0.940 – (4/14)(1) - (6/14)(- (4/6)log
2
(4/6) – (2/6)log
2
(2/6)) -
(4/14)(- (3/4)log
2
(3/4) – (1/4)log
2
(1/4)) = 0.029 Quang cảnh
Nắng
Âm u
Mưa
[2+, 3-]
[4+, 0-]
[3+, 2-]
Nhiệt độ
Nóng
Ấm áp
Mát
[2+, 2-]
[4+, 2-]

Gain(S, Độ ẩm) = Entropy(S) – (7/14)×Entropy(S
Cao
) – (7/14)×Entropy(S
TB
)
= 0.940 – (7/14)(- (3/7)log
2
(3/7) – (4/7)log
2
(4/7)) –
(7/14)(- (6/7)log
2
(6/7) – (1/7)log
2
(1/7)) = 0.151
Ta thấy Gain(S, Quang cảnh) là lớn nhất lấy thuộc tính quang cảnh làm nút
gốc
Gió
Mạnh
Nhẹ
[3+, 3-]


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status