Tải bản đầy đủ (.docx) (24 trang)

Data mining study the matlab tutorial, khai phá dữ liệu số

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (734.82 KB, 24 trang )

TRƯỜ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:
1. Lê Xuân Quyền
5.Lê Quang Lâ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
4. Trần Huy Hùng
8. Vũ Hoàng Vương
. Hà Nội, 5/2014 .

1


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ều
lĩnh vực đời sống.
2
Mụ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
3

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ên
kế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
4
cá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ính
toá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ện
tò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ại
lệ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.
5
Editor: 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ác
trì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ọn
cho 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ổ.
6
Trì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.
1.Khai phá dữ liệu là gì?
Khai phá dữ liệu (datamining) được định nghĩa như là một quá trình chắt lọc hay khai phá
tri thức từ một lượng lớn dữ liệu. Thuật ngữ Dataming ám chỉ việc tìm kiếm một tập hợp nhỏ
có giá trị từ một số lượng lớn các dữ liệu thô. Có nhiều thuật ngữ hiện được dùng cũng có
nghĩa tương tự với từ Datamining như Knowledge Mining (khai phá tri thức), knowledge
extraction(chắt lọc tri thức), data/patern analysis(phân tích dữ liệu/mẫu), data archaeoloogy
(khảo cổ dữ liệu), datadredging(nạo vét dữ liệu), một cách gần đúng nhất thì Data Mining
được hiểu là: một tập hợp các kỹ thuật được sử dụng để tự động khai thác và tìm ra các mối
quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng
tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó. Hay có thể hiểu Data mining là một quá trình
trích xuất thông tin có mối quan hệ hoặc có mối tương quan nhất định từ một kho dữ liệu lớn
(cực lớn) nhằm mục đích dự đoán các xu thế, các hành vi trong tương lai, hoặc tìm kiếm
những tập thông tin hữu ích mà bình thường không thể nhận diện được.
Hình 2: Dữ liệu từ internet
7
Khai 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ông
cầ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

& preprocessing).
• Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu và sau đó
chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức. Quá trình này bao gồm
cả việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không đầy đủ (incomplete
data), .v.v.
• Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp cho quá
trình xử lý
• Khai phá dữ liệu(data mining): Là một trong các bước quan trọng nhất, trong đó sử
dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu.
• Ước lượng mẫu (knowledge evaluation): Quá trình đánh giá các kết quả tìm được
thông qua các độ đo nào đó.
• Biểu diễn tri thức (knowledge presentation): Quá trình này sử dụng các kỹ thuật để biểu
diễn và thể hiện trực quan cho người dùng.

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…
8
Như đã 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ác
kiể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ách
hà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.
9
• 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)
2.1 Bản chất:
Phương sai là trung bình số học của bình phương các sai lệch giữa các giá trị quan sát
của biến ngẫu nhiên so với giá trị trung bình của các giá trị đó.
2.2 Ý nghĩa:
Phương sai phản ánh mức độ phân tán của các giá trị của biến ngẫu nhiên so với giá
trị trung bình.Phương sai càng nhỏ thì các giá trị càng tập trung gần giá trị trung bình.
10

2.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.
11
Hì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
12
-Tính nhiệt độ trung bình của từng thành phố:
avg_temp = mean(temps)
avg_temp= 11.9677 8.2258 19.8710
-Tính nhiệt độ trung bình của cả 3 thành phố:

Avg_avg = mean(avg_temp)
avg_avg= 13.3548
-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 đó:
max_temp = max(temps)
max_temp= 19 12 24
-Tìm ngày nóng nhất trong tháng và nhiệt độ vào ngày đó của mỗi thành phố :
[max_temp,x] = max(temps)
max_temp= 19 12 24
x= 9 23 30
-Tìm ra nhiệt độ thấp nhất của mỗi thành phố:
min_temp = min(temps)
min_temp= 8 5 15
-Tìm ra ngày có nhiệt độ thấp nhất và nhiệt độ của ngày đó của mỗi thành phố:
[min_temp, n] = min(temps)
min_temp= 8 5 15
n= 8 3 7
-Phương sai:
s_d = var(temps)

13
s_d= 6.2989 3.1978 4.9828
Phương sai cho chúng ta biết mức độ phân tán của các giá trị ngẫu nhiên so với giá trị
trung bình.
-Độ chênh lệch nhiệt độ của ngày hôm sau so với ngày hôm trước:
daily_change = diff(temps)
daily_change =
[ 3 1 4;-3 -4 -3; 2 3 4;-2 -2 -1;-1 3 -3;4 0 -4;-7 1 5;11 -3 -2;-7 0 0; 2 3
1;-3 -2 -2;-2 -1 6;-1 1 -4; 7 0 -1;-7 1 2;2 -2 -3; 2 0 5;-3 1 -3; 3 0 2; 0 0 -1;-
2 1 -3;3 3 1;-4 -2 2; 1 -4 2; 4 1 -1;-2 -2 1; 1 2 -4; 2 3 5;-2 1 1;-1 1 -2]
IV. HỒI QUY
1.Giới thiệu.
Phân tích hồi quy là một phân tích thống kê để xác định xem các biến độc lập quy định
các biến phụ thuộc như thế nào. Nói cách khác ta phải khảo sát quan hệ của hai hay nhiều
biến cho trước, là tìm một đường khớp với các điểm dữ liệu đã cho theo nghĩa bình phương
tối thiểu.
Phâ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.
14
Để trực quan, ta dùng hàm plot để vẽ hình minh họa cho đường hồi quy vừa tạo. Ta
nghiên cứu sang phần tiếp theo với một vài ví dụ.
3.Một số ví dụ:
Ví dụ 1: Xem xét số liệu ở bảng sau, y chỉ thị độ sạch của oxy sinh ra trong quá trình
chưng cất hóa học, còn x là nồng độ phần trăm của hydrocarbon có mặt ở bình ngưng bộ phận
chưng cất, ta sử dụng Matlab tìm đa thức quan hệ giữa x và y:

Bảng 1: Độ sạch của oxy ứng với tỷ lệ phần trăm hydro carbon.

Khi thể hiện các điểm (x , y) lên đồ thị, ta thu được đồ thị là các điểm phân biệt như hình
vẽ ( hình 7). Ta nhận thấy, mặc dù không có đường cong đơn giản nào đi qua các điểm này,
song có thể khẳng định rằng, các điểm ấy dường như nằm phân tán quanh một đường cong
với phương trình y = f(x) nào đó. Vậy có thể giả thiết rằng giá trị trung bình của Y – biến chỉ
thị độ sạch khi nồng độ phần trăm X của hydrocarbon tại mức x thỏa mãn quan hệ:
E(Y | x) = f (x)
Để tổng quát hóa, chúng ta nên dùng mô hình xác suất bằng cách coi Y là BNN mà ứng
với giá trị x của biến X thì
Y = f (x) + với là sai lầm ngẫu nhiên.
15
Hình 6 : code tính đa thức hồi quy của độ sạch oxy với nồng độ hydrocarbon và vẽ đồ thị
minh họa.
Hình 7: biểu đồ chấm điểm dữ liệu x, y ban đầu và đường hồi quy tìm được.

16
Ví dụ 2: Thông thường, người ta vẫn nghĩ mức tiêu thụ nhiên
liệu không phụ thuộc vào việc lái xe nhanh hay chậm. Để kiểm tra
người ta cho chạy thử một chiếc xe con ở nhiều vận tốc khác nhau từ 45 đến 70 dặm/giờ.

Kết quả ghi thành bảng:

Vận tốc
(dặm/h)
45 50 55 60 65 70 75
Mức tiêu thụ
(ml/gal)
24,2 25,0 23,3 22,0 21,5 20,6 19,8
Liệu có thể thay đổi cách nghĩ rằng mức tiêu thụ nhiên liệu không
phụ thuộc vào vận tốc xe? Tìm các khoảng tin cậy 95% cho giá trị trung bình và của quan
sát tương lai của mức tiêu thụ nhiên liệu khi xe ở vận tốc 50 ml/h .
Giải: Chúng ta xét mô hình HQTT đơn Y = a + bx + , trong đó
Y là mức tiêu thụ nhiên liệu, x là vận tốc xe. Cần phải xét xem hệ số
b có bằng không hay không.
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.
Từ đồ thị rút ra nhận xét: Với cùng một quãng đường, xe đi với tốc độ càng cao thì lượng
xăng tiêu thụ càng ít và ngược lại.
V. MẠNG NORON NHÂN TẠO
17
1. Giới thiệu
Mạng nơron nhân tạo (Artificial Neural Network- ANN) xuất phát từ việc mô
phỏng hoạt động của bộ não con người, nó là mô hình xử lý thông tin được mô phỏng
dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các
Neuron được gắn kết để xử lý thông tin.
ANN giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn
luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri
thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data).
Các ứng dụng của mạng Neuron được sử dụng trong rất nhiều lĩnh vực như điện,
điện tử, kinh tế, quân sự,… để giải quyết các bài toán có độ phức tạp và đòi hỏi có độ

chính xác cao như điều khiển tự động, khai phá dữ liệu, nhận dạng,…
2.Kiến trúc tổng quát của một mạng nơron (ANN)
Hình 9: Kiến trúc tổng quát của mạng noron
• Processing Elements (PE): Các PE của ANN gọi là Neuron, mỗi Nueron nhận các dữ liệu
vào (Inputs) xử lý chúng và cho ra một kết quả (output) duy nhất. Kết quả xử lý của một
Neuron có thể làm Input cho các Neuron khác
• Kiến trúc chung của một ANN gồm 3 thành phần đó là lớp vào (Input Layer), lớp ẩn
(Hidden Layer) và lớp ra (Output Layer)
• Trong đó, lớp ẩn (Hidden Layer) gồm các Neuron, nhận dữ liệu input từ các Neuron ở lớp
(Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo. Trong một ANN
có thể có nhiều lớp ẩn Hidden Layer.
3.Quá trình xử lý thông tin của một ANN
18
Hình 10: Quá trình xử lý thông tin của một ANN
• Inputs: Mỗi Input tương ứng với 1 thuộc tính của dữ liệu. Ví dụ như trong ứng dụng của
ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay không thì mỗi Input là một
thuộc tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,…
• Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như với bài toán
xem xét chấp nhận cho khách hàng vay tiền hay không thì output là yes (cho vay) hoặc no
(không cho vay).
• Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng của một
ANN, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối với quá trình xử
lý thông tin (quá trình chuyển đổi dữ liệu từ Layer này sang layer khác). Quá trình học
(Learning Processing) của ANN thực ra là quá trình điều chỉnh các trọng số (Weight) của
các input data để có được kết quả mong muốn.
• Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input được đưa vào
mỗi Neuron (phần tử xử lý PE). Hàm tổng của một Neuron đối với n input được tính theo
công thức sau: Yj=
• Transfer Function (Hàm chuyển đổi): Mối quan hệ giữa hàm tổng và kết quả (output)
được thể hiện bằng hàm chuyển đổi được tính theo công thức

=
Ví dụ
19
Y= 3*0.2 +1*0.4 +2*0.1 = 1.2 = = 0.77
4.Các hàm trong matlab
• Để tạo ra mạng ta dùng hàm newff()
Net =newff(p , t, n) trong đó: p là vectơ lớp vào: vd p = [1 3 2;2 4 1];
t là vectơ lớp ra : vd t =[2 3 5]; n là số noron trong lớp ẩn :vd n=20

• Tiếp theo chúng ta có thể huấn luyện cho mạng (quá trình học của ANN) bằng cách
sử dụng hàm train(): net = train(net,p,t);
• Quá trình huấn luyện của ANN: ANN được huấn luyện (Training) hay được học
(Learning) theo 2 kỹ thuật cơ bản đó là học có giám sát (Supervised Learning) và học
không giám sát (Unsupervised Learning).
• Supervised learning: Quá trình Training được lặp lại cho đến khi kết quả của ANN đạt
được giá trị mong muốn đã biết. Điển hình cho kỹ thuật này là mạng Neuron lan
truyền ngược (Backpropagation).
• Unsupervised learning: Không sử dụng tri thức bên ngoài trong quá trình học nên còn
gọi là tự tổ chức (Self – Organizing). Mạng Neuron điển hình được huấn luyện theo
kiểu Unsupervised là Sefl – Organizing Map (SOM).
• Nguyên tắc huấn luyện : Mạng Neuron có 3 cách huấn luyện chính đó là back
training, stochastic training và on-line training.
• On-line training thì các trọng số của mạng (weights) được cập nhật ngay lập tức sau
khi một input pattern được đưa vào mạng.
• Stohastic training cũng giống như on-line training nhưng việc chọn các input patterns
để đưa vào mạng từ training set được thực hiện ngẫu nhiên .
20
• Batch training thì tất cả các input patterns được đưa vào mạng cùng lúc và sau đó cập
nhật các trọng số mạng đồng thời.
• Sau khi huấn luyện mạng ta có thể sử dụng chúng bằng cách gọi hàm sim().Ví dụ sử

dụng hàm sim() với vectơ đầu vào p ta sẽ thu được kết quả y là mô phỏng của p.
y = sim(net, p);
Ví dụ : Sử dụng mạng nơ-ron mô phỏng hàm bậc hai y= b.x
2
+ ax
Chương trình tạo ra mạng nơ-ron có 10 nơ-ron trong lớp ẩn và sử dụng giải thuật
“TRAINCGF”
a=1;
b=-23;
x = [0:0.1:1];
y = a*x + b*x.*x;
net = newff(x,y,10,{},'traincgf');
net=train(net,x,y);
output = sim(net,x);
plot(x,y,'r','LineWidth',1.5);
grid on;
hold on;
plot(x,output,'b','LineWidth',1);
legend('target','simu');
Ta thu được:
21
Hình 11: kết quả mô phỏng của mạng Nơ-ron
Chú thích:Đường màu đỏ là đồ thị của hàm y, đường màu xanh là kết quả sau khi mô phỏng
của mạng nơ-ron.
VI. TỔNG KẾT
Matlab là phần mền hỗ trợ đắc lực cho việc tính toán và thống kê. Với ưu điểm đó thì
Matlab ngày càng trở nên thông dụng và là công cụ trợ giúp hữu hiệu nhằm giải quyết các
vấn đề đa dạng trong công việc, trong nghiên cứu và ứng dụng. Trong việc khai thác dữ liệu
thì việc sử dụng các công cụ như là statistics toolbox là việc không thể thiếu.
Muốn thành thạo sử dụng MATLAB bạn cần phải tự mình gõ các câu lệnh và xem kết

quả câu lệnh, mắc lỗi và tìm cách sửa lỗi. Cách học "trial and error" này theo tôi là cách tốt
nhất để học lập trình. Thời gian và công sức bạn bỏ ra bao nhiêu sẽ mang lại cho bạn nhiều
kiến thức bấy nhiêu.
Nếu bạn đã có nền tảng là một ngôn ngữ lập trình như C, C++ hay Pascal, việc làm
quen với MATLAB sẽ rất dễ dàng, chỉ cần một ngày là bạn có thể biết cách sử dụng được
MATLAB. Tuy nhiên sử dụng được không có nghĩa là thành thạo hay xuất sắc, lập trình
MATLAB có tư duy riêng, không giống hệt với tư duy lập trình của ngôn ngữ nào cả và với
từng người dùng, tùy theo mục đích sử dụng MATLAB mà tư duy lập trình cũng khác nhau.
Khả năng ứng dụng to lớn của MATLAB là nhờ các Toolbox được viết bởi những chuyên
gia hàng đầu trong nhiều lĩnh vực. Không ai học tất cả các Toolbox của MATLAB cả. Để tiết
22
kiệm thời gian và công sức không cần thiết, mỗi người dùng MATLAB chỉ cần tìm hiểu một
hay một vài Toolbox liên quan đến công việc của mình là đủ.
Tài liệu về MATLAB hiện nay đã có rất nhiều, cả tiếng Việt và tiếng Anh. Để sử dụng
MATLAB, không nhất thiết phải đọc nhiều sách. Bạn hãy chọn một cuốn bất kì liên quan đến
lĩnh vực ứng dụng của MATLAB mà bạn quan tâm để đọc, làm theo các ví dụ và suy nghĩ.
Tài liệu quan trọng nhất chính là Help của MATLAB, nếu như bạn có khả năng tự học
tốt, Help là tài liệu duy nhất bạn cần và nó đã có sẵn khi cài MATLAB.
Xét cho cùng MATLAB chỉ là công cụ để thực hiện ý tưởng, MATLAB có thể cho ta kết
quả nhưng nó không thay ta suy nghĩ, không mang cho ta kiến thức. Nắm chắc kiến thức
chuyên môn là chìa khóa để sử dụng MATLAB có hiệu quả.
Mong rằng bài báo cáo này sẽ cung cấp cho bạn đọc phần nào kiến thức còn thiếu về khai
thác dữ liệu nói riêng và sử dụng Matlab nói chung, và đây sẽ là chương trình phục vụ đắc
lực cho bạn trong học tập cũng như trong công việc.
23
Tài liệu tham khảo:
1. Tài liệu Help của Matlab.
2. Nguồn tài liệu Internet.
24

×