Data mining study the matlab tutorial, khai phá dữ liệu số
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỆN TỬ VIỄN THÔNG
Báo cáo:
Data mining: Study the Matlab tutorial
and statistics toolbox in Matlab
Giáo viên hướng dẫn: Dr Đỗ Văn Tuấn
Thành viên nhóm:
2. Nguyễn Kim Đính 6.Nguyễn Duy Trình
3. Nguyễn Thanh Hải 7.Nguyễn Thị Yến B
Hà Nội, 5/2014
Trang 2
LỜI MỞ ĐẦU
Khoảng hơn một thập kỷ trở lại đây, lượng thông tin được lưu trữ trên các thiết bị điện
tử (đĩa cứng, CD-ROM, băng từ, v.v.) không ngừng tăng lên Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Người ta ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo đó số lượng cũng như kích cỡ của các cơ sở dữ liệu (CSDL) cũng tăng lên một cách nhanh chóng Nói một cách hình ảnh là chúng ta đang “ngập” trong
dữ liệu nhưng lại “đói” tri thức Câu hỏi đặt ra là liệu chúng ta có thể khai thác được gì từ những “núi” dữ liệu tưởng chừng như “bỏ đi” ấy không ?
“Necessity is the mother of invention” - Data Mining ra đời như một hướng giải quyết hữu hiệu cho câu hỏi vừa đặt ra ở trên Khá nhiều định nghĩa về Data Mining và sẽ được đề cập ở phần sau, tuy nhiên có thể tạm hiểu rằng Data Mining như là một công nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho dữ liệu được tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào đó
Có rất nhiều công cụ để khai thác dữ liệu hiệu quả, trong khuôn khổ hạn hẹp của bài báo cáo này, chúng tôi xin giới thiệu chương trình MATLAB, một phần mềm hữu ích trong khai thác dữ liệu nói riêng và trong tính toán nói chung, có ứng dụng rất phổ biến trong nhiềulĩnh vực đời sống
Trang 3Mục lục:
Hình 1 MATLAB Desktop……….………6
Hình 2: Dữ liệu từ internet……… ……….8
Hình 3: Quá trình KDD (Knowleadge Discovery in Database)… ………9
Hình 4: Mô phỏng trên Matlab……….………
……….12
Hình 5: Nhiệt độ của 3 thành phố trong 1 tháng………… ……… 12
Hình 6: Đồ thị đường……… ……… 13
Hình 7: Biểu đồ chấm điểm dữ liệu x, y ban đầu và đường hồi quy tìm được………17
Hình 8: đồ thị bậc nhất hồi quy mức xăng tiêu thụ so với vận tốc và biểu đồ điểm dữ liệu ban đầu……… 18
Hình 9: Kiến trúc tổng quát của mạng noron……… ……….19
Hình 10: Quá trình xử lý thông tin của một ANN……… …… 19
Hình 11:Kết quả của ví dụ……… ……… 22
Một số từ viết tắt:
MATLAB :Matrix Laboratory
KDD :Knowleadge Discovery in Database
ANN: Artificial Neural Network
Trang 4
I.CƠ BẢN VỀ MATLAB
1.GIỚI THIỆU CHUNG VỀ MALAB:
MATLAB (Matrix Laboratory) là một môi trường tính toán số và lập trình, chưa kể đến các module tính toán có sẵn được đưa vào như Simulink,thuật toán logic, PDE tool được thiết kế bởi công ty MathWorks MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liênkết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác Các công cụ lập trình MATLAB với thư viện các chương trình con giúp thực hiện được các lệnh, các bài toán một cách nhanh chóng Đó như là một cơ sở để giải quyết gần như chính xác các bài toán dùng phương pháp số để giải MATLAB như một người trợ lý đắc lực cho các công trình sư, như một người phụ việc giúp giải tay những bước tính mà phải thực hiện đi thực hiện lại hàng nghìn hàng vạn lần với hàng nghìn hàng vạn sự thay đổi biến số, với hàng nghìn hàng vạn yêu cầu của khách hàng MATLAB giúp đơn giản hóa việc giải quyết
Trang 5các bài toán tính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống như C, C++, và Fortran.
MATLAB được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tínhtoán sinh học Với hàng triệu kĩ sư và nhà khoa học làm việc trong môi trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB là ngôn ngữ của tính toán khoa học
2 MÔI TRƯỜNG LÀM VIỆC CỦA MATLAB
2.1 MATLAB gồm 5 phần chính:
• Development Environment: là một bộ các công cụ giúp ta sử dụng các hàm và tập tin của MATLAB Nó bao gồm: MATLAB desktop, Command Window, a command history, an editor, debugger, browsers for viewing help, the workspace, files, the search path
• MATLAB Mathematical Function Library: tập hợp các hàm tóan học như sum, sine,
số học, v.v
• MATLAB Language (scritp): ngôn ngữ lập trình bậc cao
• Graphics: các công cụ giúp hiễn thị dữ liệu dưới dạng đồ thị Ngòai ra nó còn cho phép xây dựng giao diện đồ họa
• MATLAB Application Program Interface (API): bộ thư viện cho phép ta sử dụng các hức năng tính tóan của MATLAB trong chương trình C hay FORTRAN
2.2 Giao diện
• Command Window: Đây là cửa sổ làm việc chính của MATLAB Tại đây ta thực hiệntòan bộ việc nhập dữ liệu và xuất kết quả tính tóan Dấu nháy >> báo hiệu chương trình sẵn sàng cho việc nhập dữ liệu Ta kết thúc việc nhập dữ liệu bằng cách nhấn phím Enter MATLAB sẽ thực thi dòng lệnh mà ta nhập vào Command Window và trả kết quả trong Command Window
• Command History: Lưu lại tất cả các lệnh mà ta đã nhập vào trong Command
Window Ta có thể xem lại tất cả các lậnh bằng cách dùng scroll bar, hay thực hiện lạilệnh đó bằng cách nhấp kép lên dòng lệnh Ngòai ra ta còn có thể cut, paste, delete các lệnh
• Workspace browser: trong MATLAB các dữ liệu được lưu trong biến Workspace browser liệt kê tất cả các biến mà ta đang sử dụng trong MATLAB Nó cung cấp thông tin về kích thước, loại dữ liệu Ta có thể truy cập trực tiếp vào dữ liệu bằng cách nhấn kép vào biến để hiễn thị Array editor
• Launch pad: cho phép người dùng truy cập nhanh vào các bộ Toolbox, phần Help
Trang 6Editor: dùng để sọan thảo và debug các M-file của MATLAB.
• Current Directory Browser: xem các file trong thư mục hiện hành
Hình 1 MATLAB Desktop
2.3 Một số thao tác cơ bản trong MATLAB
Trong MATLAB, thanh trình đơn thay đổi tùy theo cửa sổ mà ta lựa chọn Tuy vậy cáctrình đơn File, Desktop, Window, Help có mặt hầu hết trong các thanh trình đơn
Trình đơn File:
• New: tạo một đối tượng mới (biến, m-file, figure, model, GUI)
• Open: mở một file theo định dạng của MATLAB (*.m, *.mat, *.mdl)
• Import data…: nhập dữ liệu từ các file khác vào MATLAB
• Save workspace…: lưu các biến trong MATLAB vào file *.mat
• Set path: khai báo các đường dẫn của các thư mục chứa các m-file
• Preferences: thay đổi các định dạng về font, font size, color cũng như các tùy chọncho Editor, Command Window v.v
• Page Setup: định dạng trang in
• Print: in
Trình đơn Desktop:
• Desktop layout: sắp xếp các cửa sổ trong giao diện
• Save layout: lưu cách sắp xếp cửa sổ
Trang 7Trình đơn Window dùng để kích họat (activate) cửa sổ.
Nút Start cung cấp shortcut tới các công cụ trong MATLAB
II TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU - DATA MINING
Hình 2: Dữ liệu từ internet
Trang 8Khai phá dữ liệu là một bước trong bảy bước của quá trình KDD (Knowleadge Discovery
in Database) và KDD được xem như 7 quá trình khác nhau theo thứ tự sau:
• Làm sạch dữ liệu (data cleaning & preprocessing): Loại bỏ nhiễu và các dữ liệu khôngcần thiết
• Tích hợp dữ liệu: (data integration): quá trình hợp nhất dữ liệu thành những kho dữ liệu (data warehouses & data marts) sau khi đã làm sạch và tiền xử lý (data cleaning
Hình 3: Tiến trình KDD (Knowleadge Discovery in Database)
2.Ứng dụng của Data mining
Ứng dụng của nó rất đa dạng và rộng tới, từ marketing, chống gian lận, giảm giá thành sản xuất, tăng doanh thu, phân tích hành vi sử dung người dùng internet để target đúng nhu cầu, đúng đối tượng hay ứng dụng hỗ trợ ra quyết định, nghiên cứu khoa học đến việc chống khủng bố v.v…
Trang 9Như đã trình bày ở trên, pham vi ứng dụng của data mining rất rộng, bao phủ hầu hết các lĩnh vực Tuy vậy có thể tóm lược lại phạm vi ứng dụng của data ming trong các bài toán yêu cầu có cần có các chức năng/nghiệp vụ sau:
• Tự động hóa việc dự doán các xu thế và hành vi sẽ diễn ra trong tương lai: Data mining
tự động hóa quá trình tìm kiếm và trích xuất các tập thông tin có mối quan hệ hoặc tương quan trong một tập dữ liệu cực lớn Những vấn đề/câu hỏi đặt ra với các cách truyền thống đòi hỏi một quá trình rất phức tạp và tốn kém cả về tài chính và thời gian để giải đáp thì giờ có thể trả lời một cách nhanh chóng trong khi giá thành là thấp nhất Một ví dụđơn giản trong quảng cáo online là quá trình targeting, khi một người dùng click vào một banner quảng cáo bán giầy dành cho nữ giới, thì khả năng người đó là nữ và họ đang quan tâm đến đôi giầy đó, khi hệ thống nhận diện được điều này thì có thể target thêm cáckiểu dáng giầy khác nhau, kích cỡ khác nhau, giá thành khác nhau với mục tiêu là người dùng sẽ kết thúc quá trình là mua một đôi giày, ngoài ra bởi vì hệ thống nhận diện người dùng là phụ nữ nên nó có thể quảng cáo thêm các sản phẩm khác như mỹ phẩm, quần áo v.v
• Tự động hóa việc khám phá/nhận diện ra những tập thông tin quá khứ mà hệ thống không/chưa biết: Công cụ data mining trong quá trình phân tích dữ liệu sẽ nhận diện ra
nhưng tập thông tin/dữ liệu không có hoặc bị ẩn bởi những mối liên hệ mà được xác định trước Ví dụ như trong việc bán hàng, có những sản phẩm không có mối liên hệ gì với nhau, nhưng lại hay bán được cùng nhau, từ đó đưa ra cơ chế recommendation Hay cơ chế nhận diện giao dịch gian lận trong thanh toán điện tử dựa vào việc phân tích các giao dịch bất thường…
• Ngày nay, các công nghệ data mining được ứng dụng rộng rãi trong các công ty lấy kháchhàng làm trung tâm như truyền thông, tài chính, marketing, bán hàng, các nghành công nghiệp sản xuất v.v… Nó cho phép các công ty xác định được các mối quan hệ giữa các yếu tố nội tại như giá thành, mẫu mã, cách thức quảng cáo, thậm chí là kỹ năng của nhân viên công ty… các yếu tố bên ngoài như đối thủ cạnh tranh, chính sách kinh tế hay nhu cầu thị trường v.v Và nó còn hỗ trợ việc xác định được sự tác động của các chính sách khuyến mại, giảm giá, độ hài lòng của khách hàng và lợi nhuận của doanh nghiệp…
• Vài công nghệ và kỹ thuật data mining thường áp dụng như: thống kê (statistical), phân loại (classering), máy học (machine learning), mạng nơ ron (neural network) sẽ được trình bày chi tiết ở phần nội dung phía sau về cơ bản:
• Mạng trí tuệ nhân tạo-mạng nơ ron (Artificial neural networks): Đây là mô hình mà hệ
thống có thể tự học thông qua đào tạo với tập dữ liệu ban đầu, từ đó suy đoán ra các tập kết quả từ tập dữ liệu mà nó khai thác
Trang 10• Decisions Trees: Một tập các decisions biểu diễn dưới dạng cây, các decisions này tạo ra
các luật cho việc phân loại tập dữ liệu được hiểu là, nếu tập thông tin A thõa mãn các luật
B thì quyết định C
• Giải thuật di truyền (Generic Algorithms): Kỹ thuật này sử dụng trong các quá trình phối
hợp, biến đổi, chọn lọc tự nhiên kế thừa từ khái niệm tiến hóa
• Nearest neighbor method: Đây là kỹ thuật phân loại từng bản ghi/thông tin trong tập dữ
liệu dựa trên sự kết hợp của k records có độ giống nhau nhất trong tập dữ liệu quá khứ
• Rule induction: Kỹ thuật bóc tác dữ liệu dựa trên nguyên tắc Nếu-Thì từ các tập dữ liệu
thống kê
• Thuật Toán K-Means: K-Means là thuật toán rất quan trọng và được sử dụng phổ biến
trong kỹ thuật phân cụm Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, K nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm (centroid ) là nhỏ nhất
III CÁC HÀM THỐNG KÊ CƠ BẢN
1 Độ lệch chuẩn: Std(x)
1.1 Khái niệm độ lệch chuẩn:
Độ lệch chuẩn, hay độ lệch tiêu chuẩn (Standard Deviation) là một đại lượng thống kê
mô tả dùng để đo mức độ phân tán của một tập dữ liệu đã được lập thành bảng tần số Có thể tính ra độ lệch chuẩn bằng cách lấy căn bậc hai của phương sai Khi hai tập dữ liệu có cùng giá trị trung bình cộng, tập nào có độ lệch chuẩn lớn hơn là tập có dữ liệu biến thiên nhiều hơn
1.2 Ý nghĩa của độ lệch chuẩn:
Độ lệch chuẩn đo tính biến động của giá mang tính thống kê Nó cho thấy sự chênh lệch về giá trị của từng thời điểm so với giá trung bình
2 Phương sai: var(x)
Trang 112.3 Ứng dụng thực tế:
-Đặc trưng cho sai số của thiết bị,chi tiết gia công so với kích thước tiêu chuẩn
-Phương đặc trưng cho mức độ rủi do của các quyết định
3 Các hàm khác
-Normplot(X): vẽ đồ thị phân bố Normal cho mỗi cột dữ liệu trong X.
-Diff(x): tính độ chênh lệch giữa các phần tử.
-Mean(x) : tính giá trị trung bình.
-Plot(x,y): vẽ biểu đồ đường.
-Bar(x,y) : vẽ biểu đồ cột.
Hình 4: Mô phỏng trên Matlab
4 Ví Dụ Về Phân Tích Dữ Liệu
Bài toán: Phân tích dữ liệu của 3 thành phố trong 1 tháng(31 ngày).
Nhiệt độ ban ngày của 3 thành phố (tính theo độ C) tính trong 1 tháng (31 ngày) được ghi lại và gán cho 1 biến temps
Trang 12Hình 5: Nhiệt độ của 3 thành phố trong 1 tháng
Mỗi hàng chứa nhiệt độ của 1 ngày và 1 cột chứa nhiệt độ của 1 thành phố trong tháng.-Vẽ đồ thị đường:
D =1:31; số ngày của tháng
plot(d,temps); vẽ đồ thị đường
xlabel('Day of month'); gán nhãn cho trục x
ylabel('Celsius'); gán nhãn cho trục y
title('Daily High Tempratures in three Cities'); đặt tên cho biểu đồ
legrend(‘city1’,’city2’,’city3’); đặt tên cho các đường trong biểu đồ
Hình 6 : Đồ thị đường
Trang 13-Tính nhiệt độ trung bình của từng thành phố:
-Tìm sự chênh lệch nhiệt độ của mỗi thành phố so với giá trị trung bình:
tdev = temps - avg_temp(ones(31,1),:)
tdev =[0.0323 -0.2258 -1.8710;3.0323 0.7742 2.1290;0.0323 -3.2258 -0.8710; 2.0323 -0.2258 3.1290;0.0323 -2.2258 2.1290;-0.9677 0.7742 -0.8710;3.0323 0.7742 -4.8710; -3.9677 1.7742 0.1290;7.0323 -1.2258 -1.871; 0.0323 -1.2258
-1.8710; 2.0323 1.7742 -0.8710;-0.9677 -0.2258 -2.8710; -2.9677 -1.2258 3.1290; -3.9677 -0.2258 -0.8710, 3.0323 -0.2258 -1.8710; -3.9677 0.7742 0.1290; -1.9677 -1.2258 -2.8710; 0.0323 -1.2258 2.1290; -2.9677 -0.2258 -0.8710; 0.0323 -0.2258 1.1290; 0.0323 -0.2258 0.1290;-1.9677 0.7742 -2.8710;1.0323 3.7742 -1.8710; -2.9677 1.7742 0.1290; -1.9677 -2.2258 2.1290; 2.0323 -1.2258 1.1290; 0.0323 -3.2258
2.1290; 1.0323 -1.225 -1.8710; 3.0323 1.7742 3.1290;1.0323 2.7742 4.1290;0.0323 3.7742 2.1290]
-Tìm ra nhiệt độ lớn nhất của mỗi thành phố trong tháng đó:
Trang 14Phân tích hồi qui không chỉ là trùng khớp đường cong (lựa chọn một đường cong mà vừa khớp nhất với một tập điểm dữ liệu); nó còn phải trùng khớp với một mô hình với các thành phần ngẫu nhiên và xác định (deterministic and stochastic components) Thành phần xác định được gọi là bộ dự đoán (predictor) và thành phần ngẫu nhiên được gọi là phần sai
số (error term)
Dạng đơn giản nhất của một mô hình hồi qui chứa một biến phụ thuộc (còn gọi là "biến đầu ra," "biến nội sinh," "biến được thuyết minh", hay "biến-Y") và một biến độc lập đơn (còn gọi là "hệ số," "biến ngoại sinh", "biến thuyết minh", hay "biến-X")
Hồi qui thường được xếp vào loại bài toán tối ưu vì chúng ta nỗ lực để tìm kiếm một giải pháp để cho sai số và phần dư là tốt nhất
2.Tính hồi quy trong Matlab
Trong Matlab ta sử dụng hàm Polyfit để tính hồi quy Cú pháp: Polyfit(x,y,n)
Trong đó: x và y là giá trị của đại lượng cần xây dựng hàm hồi quy và n là bậc của đa thức hồi quy
Kết quả là ta nhận được một đa thức bậc n thể hiện mối quan hệ giữa 2 biến x và y cho trước