Tải bản đầy đủ (.pdf) (49 trang)

Python machine learning trang 1,26 73 (1)

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 (2.62 MB, 49 trang )

Machine Translated by Google

www.it-ebooks.info


Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ
dữ liệu
Theo tôi, học máy, ứng dụng và khoa học của các thuật toán xử lý dữ liệu, là lĩnh
vực thú vị nhất trong tất cả các ngành khoa học máy tính! Chúng ta đang sống
trong thời đại mà dữ liệu dồi dào; sử dụng các thuật toán tự học từ lĩnh vực
học máy, chúng ta có thể biến dữ liệu này thành kiến thức. Nhờ có nhiều thư viện
nguồn mở mạnh mẽ đã được phát triển trong những năm gần đây, có lẽ chưa bao
giờ có thời điểm tốt hơn để thâm nhập vào lĩnh vực học máy và học cách sử dụng
thuật toán để phát hiện các mẫu trong dữ liệu và đưa ra dự đoán về các sự
kiện trong tương lai.
Trong chương này, chúng ta sẽ tìm hiểu về các khái niệm chính và các loại học
máy khác nhau. Cùng với phần giới thiệu cơ bản về thuật ngữ liên quan, chúng ta
sẽ đặt nền tảng cho việc sử dụng thành công các kỹ thuật học máy để giải
quyết vấn đề thực tế.
Trong chương này, chúng ta sẽ đề cập đến các chủ đề sau:

• Các khái niệm chung về học máy
• Ba loại hình học tập và thuật ngữ cơ bản
• Các nền tảng để thiết kế thành cơng hệ thống máy học
• Cài đặt và thiết lập Python để phân tích dữ liệu và học máy

[ 1 ]

www.it-ebooks.info




Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Xây dựng máy móc thơng minh biến
dữ liệu thành tri thức
Trong thời đại công nghệ hiện đại này, có một nguồn tài nguyên mà chúng ta có
rất dồi dào: một lượng lớn dữ liệu có cấu trúc và phi cấu trúc. - Các thuật toán
học tập để thu thập kiến thức từ dữ liệu đó nhằm đưa ra dự đốn. Thay vì u
cầu con người rút ra các quy tắc và xây dựng mơ hình theo cách thủ cơng từ
việc phân tích lượng lớn dữ liệu, học máy đưa ra một giải pháp thay thế
hiệu quả hơn để nắm bắt kiến thức trong dữ liệu nhằm dần dần cải thiện hiệu
suất của các mơ hình dự đoán và đưa ra các quyết định dựa trên dữ liệu. Học máy
không chỉ ngày càng trở nên quan trọng trong nghiên cứu khoa học máy tính mà
cịn đóng một vai trò lớn hơn bao giờ hết trong cuộc sống hàng ngày của chúng
ta. Nhờ học máy, chúng ta tận hưởng được khả năng lọc thư rác mạnh mẽ , phần
mềm nhận dạng giọng nói và văn bản tiện lợi, các cơng cụ tìm kiếm Web đáng tin
cậy, những người chơi cờ thách thức, và hy vọng sẽ sớm có những chiếc xe tự lái
an toàn và hiệu quả.

Ba loại học máy khác nhau
Trong phần này, chúng ta sẽ xem xét ba loại học máy: học có giám sát, học khơng
giám sát và học tăng cường. Chúng ta sẽ tìm hiểu về sự khác biệt cơ bản
giữa ba loại học tập khác nhau và sử dụng các ví dụ khái niệm, chúng ta sẽ
phát triển một trực giác cho các lĩnh vực vấn đề thực tế nơi chúng có
thể được áp dụng:

[ 2 ]


www.it-ebooks.info


Machine Translated by Google

Chương 1

Đưa ra dự đoán về tương lai với học tập
có giám sát
Mục tiêu chính của học có giám sát là học một mơ hình từ dữ liệu huấn luyện được gắn nhãn cho
phép chúng ta đưa ra dự đốn về dữ liệu chưa được nhìn thấy hoặc trong tương lai. Ở đây,
thuật ngữ được giám sát đề cập đến một tập hợp các mẫu trong đó các tín hiệu đầu ra mong muốn
(nhãn) đã được biết.

Xem xét ví dụ về lọc thư rác e-mail, chúng ta có thể đào tạo một mơ hình bằng cách sử
dụng thuật toán học máy được giám sát trên một tập hợp các e-mail được gắn nhãn, e-mail được
đánh dấu chính xác là thư rác hoặc không phải thư rác, để dự đốn liệu một e-mail mới có xuất
hiện hay khơng. -mail thuộc một trong hai loại. Một tác vụ học có giám sát với các nhãn lớp riêng
biệt, chẳng hạn như trong ví dụ lọc thư rác e-mail trước, cũng được gọi là tác vụ phân loại .

Một tiểu thể loại khác của học có giám sát là hồi quy, trong đó tín hiệu kết quả là giá
trị liên tục:

Phân loại để dự đoán nhãn lớp
Phân loại là một tiểu thể loại của học có giám sát trong đó mục tiêu là dự
đoán nhãn lớp phân loại của các trường hợp mới dựa trên các quan sát trong quá khứ.
Các nhãn lớp đó là các giá trị rời rạc, khơng có thứ tự, có thể được hiểu là
thành viên nhóm của các cá thể. tập hợp các quy tắc để phân biệt giữa hai
loại có thể: thư rác và e-mail không phải thư rác.


[ 3 ]

www.it-ebooks.info


Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Tuy nhiên, tập hợp các nhãn lớp khơng nhất thiết phải có tính chất nhị phân. Mơ hình dự đốn được
học bằng thuật tốn học có giám sát có thể gán bất kỳ nhãn lớp nào được trình bày trong tập dữ
liệu huấn luyện cho một phiên bản mới, không được gắn nhãn. Nhiệm vụ phân loại nhiều lớp là
nhận dạng ký tự viết tay. Tại đây, chúng tơi có thể thu thập tập dữ liệu huấn luyện bao gồm
nhiều ví dụ viết tay của mỗi chữ cái trong bảng chữ cái. Bây giờ, nếu người dùng cung cấp một ký
tự viết tay mới thông qua thiết bị đầu vào, mơ hình dự đốn của chúng tơi sẽ có thể dự đốn
đúng chữ cái trong bảng chữ cái với độ chính xác nhất định. Tuy nhiên, hệ thống máy học của
chúng tôi sẽ không thể nhận dạng chính xác bất kỳ chữ số nào từ 0 đến 9, chẳng hạn nếu chúng
không nằm trong tập dữ liệu đào tạo của chúng tơi.

Hình dưới đây minh họa khái niệm về nhiệm vụ phân loại nhị phân với 30 mẫu huấn luyện: 15 mẫu
huấn luyện được gắn nhãn là lớp âm (vòng tròn) và 15 mẫu huấn luyện được gắn nhãn là lớp
dương (dấu cộng). thứ nguyên, có nghĩa là mỗi mẫu có hai giá trị được liên kết với nó: x và quy
tắc—ranh giới quyết định được biểu thị dưới dạng đường đứt nét màu đen—có thể tách hai lớp đó
và phân
x
2 . Bây giờ, chúng ta có thể sử dụng thuật tốn học máy có giám sát để tìm hiểu một
1
loại dữ liệu mới vào từng loại trong số hai loại đó dựa trên và x giá trị:
x


2

Hồi quy để dự đoán kết quả liên tục
Chúng ta đã học ở phần trước rằng nhiệm vụ của phân loại là gán các nhãn phân loại,
khơng có thứ tự cho các trường hợp. Loại học có giám sát thứ hai là dự đốn các kết quả liên
tục, cịn được gọi là phân tích hồi quy. Trong phân tích hồi quy, chúng ta được cho một số của
các biến dự đốn (giải thích) và biến phản ứng liên tục (kết quả) và chúng tơi cố gắng tìm ra
mối quan hệ giữa các biến đó cho phép chúng tơi dự đoán kết quả.

[ 4 ]

www.it-ebooks.info

1


Machine Translated by Google

Chương 1

Ví dụ: giả sử chúng ta quan tâm đến việc dự đốn điểm SAT mơn Tốn của học
sinh. Nếu có mối quan hệ giữa thời gian ôn thi và điểm cuối kỳ, chúng ta có thể
sử dụng nó làm dữ liệu huấn luyện để học một mơ hình sử dụng thời gian học để dự
đốn điểm thi của những học sinh tương lai dự định thi kỳ thi này.

Thuật ngữ hồi quy được Francis Galton nghĩ ra trong bài viết
Hồi quy hướng tới tầm thường ở tầm vóc di truyền vào năm 1886.
Galton mơ tả hiện tượng sinh học là sự chênh lệch về chiều cao
trong một dân số không tăng theo thời gian, ông quan sát

thấy chiều cao của cha mẹ không truyền lại cho con cái mà
chiều cao của con cái đang giảm dần về phía trung bình dân số.

Hình sau đây minh họa khái niệm hồi quy tuyến tính. Cho một biến dự đoán x và
một biến phản hồi y, chúng ta vẽ một đường thẳng tới dữ liệu này để giảm thiểu
khoảng cách—phổ biến nhất là khoảng cách bình phương trung bình—giữa các điểm mẫu
và đường itted. Bây giờ chúng ta có thể sử dụng phần đánh chặn và độ dốc đã học
được từ dữ liệu này để dự đoán biến kết quả của dữ liệu mới:

[ 5 ]

www.it-ebooks.info


Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Giải quyết các vấn đề tương tác bằng
học tăng cường
Một loại học máy khác là học tăng cường. Trong học tăng cường, mục tiêu là phát
triển một hệ thống (tác nhân) giúp cải thiện hiệu suất của nó
dựa trên sự tương tác với mơi trường. Vì thông tin về hiện tại

Trạng thái của môi trường thường bao gồm cái gọi là tín hiệu khen thưởng , chúng ta có
thể coi học tăng cường là một lĩnh vực liên quan đến học có giám sát . Tuy nhiên, trong học
tăng cường, phản hồi này không phải là nhãn hoặc giá trị chân lý cơ bản chính xác mà là
thước đo cách Vâng, hành động được đo lường bằng chức năng khen thưởng . Thông qua
tương tác với mơi trường, sau đó, tác nhân có thể sử dụng phương pháp học tăng cường để
tìm hiểu một loạt hành động nhằm tối đa hóa phần thưởng này thơng qua phương

pháp thử và sai mang tính khám phá hoặc lập kế hoạch có chủ ý.
Một ví dụ phổ biến về học tăng cường là một công cụ cờ vua. Ở đây, tác nhân quyết định một
loạt nước đi tùy thuộc vào trạng thái của bàn cờ (môi trường) và phần thưởng có thể được
xác định là thắng hoặc thua khi kết thúc trò chơi :

Khám phá các cấu trúc ẩn với học tập
khơng giám sát
Trong học có giám sát, chúng ta biết trước câu trả lời đúng khi huấn luyện mơ hình
của mình và trong học tăng cường, chúng ta xác định thước đo phần thưởng cho các
hành động cụ thể của tác nhân . Bằng cách sử dụng các kỹ thuật học khơng giám sát, chúng
tơi có thể khám phá cấu trúc dữ liệu của mình để trích xuất thơng tin có ý nghĩa mà
khơng cần sự hướng dẫn của biến kết quả hoặc hàm phần thưởng đã biết.

[ 6 ]

www.it-ebooks.info


Machine Translated by Google

Chương 1

Tìm nhóm con với phân cụm
Phân cụm là một kỹ thuật phân tích dữ liệu khám phá cho phép chúng ta sắp xếp một đống
thông tin thành các nhóm con (cụm) có ý nghĩa mà khơng cần có bất kỳ kiến thức trước nào
về tư cách thành viên nhóm của chúng. Mỗi cụm có thể phát sinh trong q trình phân
tích xác định một nhóm đối tượng có chung một mức độ nhất định giống nhau nhưng khác
nhiều hơn với các đối tượng trong các cụm khác, đó là lý do tại sao việc phân cụm đơi khi
cịn được gọi là "phân loại khơng giám sát." Phân cụm là một kỹ thuật tuyệt vời để cấu
trúc thơng tin và rút ra các mối quan hệ có ý nghĩa giữa các dữ liệu. Ví dụ: nó cho

phép các nhà tiếp thị khám phá các nhóm khách hàng dựa trên sở thích của họ để phát
triển các chương trình tiếp thị riêng biệt.
Hình dưới đây minh họa cách phân cụm có thể được áp dụng để tổ chức dữ liệu chưa được
x2 :
gắn nhãn thành ba nhóm riêng biệt dựa trên sự giống nhau về các tính năng x và 1

Giảm kích thước để nén dữ liệu
Một lĩnh vực phụ khác của học không giám sát là giảm kích thước. Thơng thường, chúng tơi
đang làm việc với dữ liệu có nhiều chiều—mỗi quan sát đi kèm với số lượng phép đo cao—
có thể đặt ra thách thức đối với không gian lưu trữ hạn chế và hiệu suất tính tốn của
các thuật tốn học máy. là một phương pháp thường được sử dụng trong quá trình tiền xử
lý tính năng để loại bỏ nhiễu khỏi dữ liệu. Điều này cũng có thể làm giảm hiệu suất dự
đốn của một số thuật toán nhất định và nén dữ liệu vào khơng gian con có chiều nhỏ hơn
trong khi vẫn giữ lại hầu hết thông tin liên quan.

[ 7 ]

www.it-ebooks.info


Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Đơi khi, việc giảm kích thước cũng có thể hữu ích để trực quan hóa dữ liệu—ví
dụ: một bộ tính năng chiều cao có thể được chiếu lên các khơng gian tính
năng một, hai hoặc ba chiều để hiển thị nó thơng qua các biểu đồ phân tán 3D
hoặc 2D hoặc Hình dưới đây hiển thị một ví dụ trong đó việc giảm kích thước phi
tuyến tính được áp dụng để nén Cuộn Thụy Sĩ 3D vào
khơng gian con tính năng 2D mới:


Giới thiệu các thuật ngữ và ký hiệu
cơ bản
Bây giờ chúng ta đã thảo luận về ba loại học máy chính—học có
giám sát, khơng giám sát và tăng cường—chúng ta hãy xem thuật ngữ cơ bản
mà chúng ta sẽ sử dụng trong các chương tiếp theo . , đây là một ví dụ
kinh điển trong lĩnh vực học máy. Tập dữ liệu Iris chứa số đo của 150 mống mắt
dưới từ ba loài khác nhau: Setosa, Versicolor và Viriginica. Ở đây, mỗi mẫu
thấp hơn đại diện cho một hàng trong tập dữ liệu của chúng tơi và các phép đo
thấp hơn tính bằng centimet được lưu trữ dưới dạng cột mà chúng tơi cịn gọi
là các tính năng của tập dữ liệu:

[ 8 ]

www.it-ebooks.info


Machine Translated by Google

Chương 1

Để giữ cho ký hiệu và cách thực hiện đơn giản nhưng hiệu quả, chúng ta sẽ sử dụng một số
kiến thức cơ bản của đại số tuyến tính. Trong các chương sau, chúng ta sẽ sử dụng ma trận
và ký hiệu vectơ để tham chiếu đến dữ liệu của chúng tôi. Chúng tôi sẽ tuân theo quy ước chung để
biểu diễn từng mẫu dưới dạng hàng riêng biệt trong ma trận đặc trưng X

, mỗi tính năng ở đâu

được lưu trữ dưới dạng cột riêng biệt.


Bộ dữ liệu Iris, bao gồm 150 mẫu và 4 tính năng, sau đó có thể được viết dưới dạng ma
150 ×4
trận 150 4 ×
X ℝ :

[ 9 ]

www.it-ebooks.info


Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Trong phần còn lại của cuốn sách này, chúng ta sẽ sử dụng chỉ số trên (i)
để chỉ mẫu huấn luyện thứ i và chỉ số dưới j để chỉ chiều thứ j của tập
dữ liệu huấn luyện.

R
Chúng ta sử dụng chữ in thường, in đậm để chỉ các vectơ (x) ×1

N

chữ in hoa, in đậm để chỉ ma trận, tương ứng ( ). )



X




×

bước sóng

Để chỉ các phần tử đơn lẻ trong một vectơ hoặc ma trận, ta viết các chữ cái trong
( ) n

( ) n

in nghiêng
x hoặc
x
tương
ứng).
( )
tơi

150

Ví dụ: x đề cập đến kích thước đầu tiên của mẫu thấp hơn 150, chiều rộng của vách
1

ngăn. Do đó, mỗi hàng trong ma trận đặc trưng này biểu thị một giá trị thấp hơn
( )i x ℝ

và có thể được viết dưới dạng vectơ cột bốn chiều
( )
Tôi


x

=

( )

( ) ( )

Tôi

Tôi

tôi1 xxxx 2 4

( )
3

1 ×4

,

Tơi

.

Mỗi thứ ngun đối tượng là một vectơ hàng 150 chiều, ví

( )i x 50×



1 1

,

dụ:

xj

xj

xj

(1 )

(2 )

=

( x

j

150)

.

Tương tự, chúng ta lưu trữ các biến mục tiêu (ở đây: nhãn lớp) dưới dạng
1)

y(

Vectơ cột 150 chiều y

=



y

(

y

Setosa, nhiều màu, Virginica

{ }

)

.

(150)

Lộ trình xây dựng hệ thống máy học
Trong các phần trước, chúng ta đã thảo luận các khái niệm cơ bản về học máy và
ba loại hình học khác nhau. Trong phần này, chúng ta sẽ thảo luận về các phần
quan trọng khác của hệ thống học máy đi kèm với thuật toán học tập. Sơ đồ bên
dưới hiển thị sơ đồ quy trình cơng việc điển hình cho sử dụng máy học trong
mơ hình dự đốn mà chúng ta sẽ thảo luận trong các phần phụ sau:

[ 10 ]


www.it-ebooks.info


Machine Translated by Google

Chương 1

Tiền xử lý - biến dữ liệu thành hình dạng
Dữ liệu thơ hiếm khi có dạng và hình dạng cần thiết để thuật tốn học tập đạt được
hiệu suất tối ưu. Do đó, tiền xử lý dữ liệu là một trong những bước quan trọng nhất trong
bất kỳ ứng dụng học máy nào. Nếu chúng ta lấy tập dữ liệu Iris thấp hơn từ Phần trước
làm ví dụ, chúng ta có thể coi dữ liệu thơ là một chuỗi các hình ảnh thấp hơn mà từ đó
chúng ta muốn trích xuất các đặc điểm có ý nghĩa.
Các tính năng hữu ích có thể là màu sắc, độ sắc nét, cường độ của các mức thấp hơn, chiều
cao cũng như chiều dài và chiều rộng thấp hơn. Nhiều thuật tốn học máy cũng u cầu các
tính năng được chọn phải ở cùng một tỷ lệ để có hiệu suất tối ưu, điều này thường đạt
được bằng cách chuyển đổi các đặc điểm trong phạm vi [0, 1] hoặc phân phối chuẩn chuẩn với
giá trị trung bình bằng 0 và phương sai đơn vị, như chúng ta sẽ thấy trong các chương sau.
Một số tính năng được chọn có thể có mối tương quan cao và do đó dư thừa ở một mức độ
nhất định. Trong những trường hợp đó, kỹ thuật giảm kích thước rất hữu ích để nén các
tính năng vào khơng gian con có chiều thấp hơn. Việc giảm kích thước của khơng gian
tính năng của chúng tơi có ưu điểm là ít khơng gian lưu trữ hơn là bắt buộc và thuật
tốn học có thể chạy nhanh hơn nhiều.

[ 11 ]

www.it-ebooks.info



Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Để xác định xem thuật toán học máy của chúng tôi không chỉ hoạt động tốt trên tập huấn luyện
mà còn khái quát tốt với dữ liệu mới hay không, chúng tôi cũng muốn chia ngẫu nhiên tập dữ
liệu thành một tập huấn luyện và kiểm tra riêng. mơ hình học tập, trong khi chúng tơi giữ
tập kiểm tra cho đến phút cuối cùng để đánh giá mơ hình cuối cùng.

Đào tạo và lựa chọn mơ hình dự đốn
Như chúng ta sẽ thấy trong các chương sau, nhiều thuật toán học máy khác nhau đã được
phát triển để giải quyết các vấn đề khác nhau. Một điểm quan trọng có thể được tóm tắt
từ Định lý Khơng ăn trưa miễn phí nổi tiếng của David Wolpert là chúng ta khơng thể học
"miễn phí" ( Thiếu sự khác biệt tiên nghiệm giữa các thuật toán học tập, DH Wolpert 1996;
Khơng có định lý ăn trưa miễn phí để tối ưu hóa, DH Wolpert và WG
Macready, 1997). Bằng trực giác, chúng ta có thể liên hệ khái niệm này với câu nói phổ
biến, "Tơi cho rằng thật hấp dẫn nếu cơng cụ duy nhất bạn có là một cái búa, coi mọi
thứ như thể nó là một cái đinh" (Abraham Maslow, 1966) . Ví dụ: mỗi thuật tốn phân
loại đều có những sai lệch cố hữu và khơng có mơ hình phân loại nào có ưu thế hơn nếu
chúng ta không đưa ra bất kỳ giả định nào về nhiệm vụ. Do đó, trong thực tế, điều cần
thiết là phải so sánh ít nhất một số thuật tốn khác nhau để xác định đào tạo và chọn
mơ hình hoạt động tốt nhất. Nhưng trước khi có thể so sánh các mơ hình khác nhau,
trước tiên chúng tơi phải quyết định một số liệu để đo lường hiệu suất. Một số
liệu thường được sử dụng là độ chính xác phân loại, được định nghĩa là tỷ lệ của các
trường hợp được phân loại chính xác.
Một câu hỏi chính đáng cần đặt ra là: làm sao chúng ta biết mô hình nào hoạt động tốt
trên tập dữ liệu thử nghiệm ban đầu và dữ liệu trong thế giới thực nếu chúng ta không
sử dụng bộ thử nghiệm này để lựa chọn mơ hình mà giữ nó để đánh giá mơ hình thực tế ?
giải quyết vấn đề được nhúng trong câu hỏi này, các kỹ thuật xác thực chéo khác nhau có
thể được sử dụng khi tập dữ liệu huấn luyện được chia thành các tập con huấn luyện và xác

thực để ước tính hiệu suất khái qt hóa của mơ hình. các thuật tốn học tập khác nhau do
thư viện phần mềm cung cấp là tối ưu cho nhiệm vụ vấn đề cụ thể của chúng ta. Do đó,
chúng ta sẽ sử dụng thường xuyên các kỹ thuật tối ưu hóa siêu tham số để giúp chúng
ta điều chỉnh hiệu suất của mơ hình trong các chương sau. Bằng trực giác, chúng ta có thể
nghĩ về những điều đó siêu tham số là các tham số không được học từ dữ liệu nhưng đại
diện cho các nút bấm của mơ hình mà chúng ta có thể sử dụng để cải thiện hiệu suất của
nó, điều này sẽ trở nên rõ ràng hơn nhiều trong các chương sau khi chúng ta xem các
ví dụ thực tế.

[ 12 ]

www.it-ebooks.info


Machine Translated by Google

Chương 1

Đánh giá các mơ hình và dự đốn các trường hợp dữ
liệu chưa nhìn thấy
Sau khi đã chọn một mơ hình đã được đưa vào tập dữ liệu huấn luyện, chúng ta có thể sử
dụng tập dữ liệu thử nghiệm để ước tính mức độ hoạt động của nó trên dữ liệu khơng nhìn
thấy này nhằm ước tính lỗi tổng qt hóa. Điều quan trọng cần lưu ý là các tham số cho
các quy trình được đề cập trước đó—chẳng hạn như chia tỷ lệ đối tượng và giảm kích thước—
chỉ được lấy từ tập dữ liệu huấn luyện và các tham số tương tự sau đó được áp dụng lại
để chuyển đổi mơ hình tập dữ liệu thử nghiệm cũng như bất kỳ mẫu dữ liệu mới nào—nếu khơng thì
hiệu suất đo được trên dữ liệu thử nghiệm có thể quá lạc quan.

Sử dụng Python cho học máy
Python là một trong những ngôn ngữ lập trình phổ biến nhất cho khoa học dữ liệu và

do đó có rất nhiều thư viện tiện ích bổ sung hữu ích được phát triển bởi cộng đồng
tuyệt vời của nó.
Mặc dù hiệu suất của các ngơn ngữ thơng dịch, chẳng hạn như Python, đối với các
tác vụ tính tốn chuyên sâu kém hơn so với các ngôn ngữ lập trình cấp thấp hơn, các
thư viện mở rộng như NumPy và SciPy đã được phát triển dựa trên việc triển khai Fortran và
C lớp thấp hơn để thực hiện các hoạt động nhanh và được vector hóa trên mảng đa chiều.

Đối với các tác vụ lập trình machine learning, chúng ta sẽ chủ yếu đề cập đến scikit-learn
thư viện, một trong những thư viện máy học mã nguồn mở phổ biến và dễ tiếp cận nhất
hiện nay.

Cài đặt gói Python
Python có sẵn cho cả ba hệ điều hành chính—Microsoft Windows, Mac OS X và Linux—và trình cài đặt cũng
như tài liệu có thể được tải xuống từ trang web chính thức của Python: .

Cuốn sách này được viết cho phiên bản Python >= 3.4.3 và bạn nên sử dụng phiên
bản Python 3 mới nhất hiện có, mặc dù hầu hết các ví dụ về mã cũng có thể
tương thích với Python >= 2.7.10.
Nếu bạn quyết định sử dụng Python 2.7 để thực thi các ví dụ về mã, vui lịng đảm bảo rằng
bạn biết về những khác biệt chính giữa hai phiên bản Python. Bạn có thể tìm thấy bản tóm
tắt hay về sự khác biệt giữa Python 3.4 và 2.7 tại https://wiki . python.org/moin/
Python2orPython3.

[ 13 ]

www.it-ebooks.info


Machine Translated by Google


Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Các gói bổ sung mà chúng tơi sẽ sử dụng trong suốt cuốn sách này có thể được cài
đặt thơng qua chương trình cài đặt pip , chương trình này là một phần của
thư viện chuẩn Python kể từ Python 3.3. Bạn có thể tìm thêm thông tin về pip tại
/3/cài đặt/index.html.
Sau khi cài đặt thành cơng Python, chúng ta có thể thực thi pip từ thiết bị đầu cuối dòng
lệnh để cài đặt các gói Python bổ sung:
cài đặt pip SomePackage

Các gói đã cài đặt có thể được cập nhật thơng qua --upgrade lag:
cài đặt pip SomePackage - nâng cấp

Một bản phân phối Python thay thế được đánh giá cao dành cho máy tính khoa học là
Anaconda của Continuum Analytics. Anaconda là một bản phân phối Python miễn phí—bao gồm
cả mục đích sử dụng thương mại—dành cho doanh nghiệp, gói tất cả các gói Python cần
thiết cho khoa học dữ liệu, toán học và kỹ thuật trong một giao diện thân
thiện với người dùng. -phân phối nền tảng. Có thể tải xuống trình cài đặt
Anaconda tại và hướng dẫn bắt đầu nhanh Anaconda có
sẵn tại .
pdf.
Sau khi cài đặt thành cơng Anaconda, chúng ta có thể cài đặt các gói Python mới bằng
lệnh sau:
conda cài đặt SomePackage

Các gói hiện có có thể được cập nhật bằng lệnh sau:
cập nhật conda SomePackage

Xuyên suốt cuốn sách này, chúng ta sẽ chủ yếu sử dụng các mảng đa chiều của NumPy để lưu
trữ và thao tác dữ liệu. Thỉnh thoảng, chúng ta sẽ sử dụng pandas, một thư viện được

xây dựng dựa trên NumPy để cung cấp thêm các công cụ thao tác dữ liệu cấp cao hơn
giúp làm việc với dạng bảng. dữ liệu thậm chí cịn thuận tiện hơn. Để nâng cao trải
nghiệm học tập của chúng tơi và trực quan hóa dữ liệu định lượng, thường cực kỳ hữu ích
để hiểu nó một cách trực quan, chúng tôi sẽ sử dụng thư viện matplotlib có khả năng tùy chỉnh rất cao .

[ 14 ]

www.it-ebooks.info


Machine Translated by Google

Chương 1

Số phiên bản của các gói Python chính được sử dụng để viết cuốn sách này được liệt kê bên
dưới. Vui lòng đảm bảo rằng số phiên bản của các gói đã cài đặt của bạn bằng hoặc lớn hơn
các số phiên bản đó để đảm bảo các ví dụ mã chạy chính xác:

• NumPy 1.9.1
• SciPy 0.14.0
• scikit-learn 0.15.2
• matplotlib 1.4.0
• gấu trúc 0.15.2

Bản tóm tắt
Trong chương này, chúng ta đã khám phá học máy ở cấp độ rất cao và làm quen với bức tranh
tổng thể cũng như các khái niệm chính mà chúng ta sẽ khám phá chi tiết hơn trong các chương
tiếp theo.
Chúng ta đã biết rằng học có giám sát bao gồm hai lĩnh vực phụ quan trọng: phân loại
và hồi quy. Trong khi các mơ hình phân loại cho phép chúng ta phân loại các đối tượng

thành các lớp đã biết, chúng ta có thể sử dụng phân tích hồi quy để dự đoán kết quả liên tục
của các biến mục tiêu. Học không giám sát không chỉ cung cấp các kỹ thuật hữu ích
cho khám phá các cấu trúc trong dữ liệu chưa được gắn nhãn, nhưng nó cũng có
thể hữu ích cho việc nén dữ liệu trong các bước tiền xử lý tính năng.
Chúng tơi đã trình bày ngắn gọn về lộ trình điển hình để áp dụng học máy vào các
nhiệm vụ giải quyết vấn đề mà chúng tôi sẽ sử dụng làm nền tảng cho các cuộc thảo
luận sâu hơn và các ví dụ thực hành trong các chương sau. Cuối cùng, chúng tôi thiết
lập môi trường Python cũng như cài đặt và cập nhật các gói cần thiết để sẵn sàng quan
sát hoạt động của máy học.

[ 15 ]

www.it-ebooks.info


Machine Translated by Google

Cung cấp cho máy tính khả năng học hỏi từ dữ liệu

Trong chương tiếp theo, chúng ta sẽ triển khai một trong những thuật toán học máy
sớm nhất để phân loại, giúp chúng ta chuẩn bị cho Chương 3, Chuyến tham quan các
trình phân loại học máy bằng cách sử dụng Scikit-learn, nơi chúng tôi đề cập đến
các thuật toán học máy nâng cao hơn bằng cách sử dụng mã mở scikit-learn. Vì các thuật
tốn học máy học từ dữ liệu nên điều quan trọng là chúng ta phải cung cấp cho chúng
những thơng tin hữu ích và trong Chương 4, Xây dựng tập huấn luyện tốt—Tiền xử lý dữ
liệu, chúng ta sẽ xem xét các kỹ thuật tiền xử lý dữ liệu quan trọng . Nén dữ liệu thơng
qua Giảm kích thước, chúng ta sẽ tìm hiểu về các kỹ thuật giảm kích thước có thể giúp
chúng ta nén tập dữ liệu của mình vào khơng gian con đối tượng có chiều thấp hơn, điều
này có thể mang lại lợi ích cho hiệu quả tính tốn. và để ước tính mức độ họ có thể đưa
ra dự đốn về dữ liệu mới, chưa được nhìn thấy.Trong Chương 6, Tìm hiểu các phương

pháp thực hành tốt nhất để đánh giá mơ hình và điều chỉnh siêu tham số , chúng ta sẽ tìm
hiểu tất cả về các phương pháp thực hành tốt nhất để điều chỉnh và đánh giá mơ hình.
hài lịng với hiệu suất của mơ hình dự đốn của chúng tơi mặc dù chúng tơi có thể đã dành
hàng giờ hoặc hàng ngày để điều chỉnh và thử nghiệm rộng rãi.Trong Chương 7, Kết hợp
các mơ hình khác nhau để học tập hợp , chúng ta sẽ học cách kết hợp các mơ hình học
máy khác nhau để xây dựng các hệ thống dự đoán mạnh mẽ hơn nữa.

Sau khi đề cập đến tất cả các khái niệm quan trọng của quy trình học máy điển hình, chúng
tơi sẽ triển khai mơ hình dự đốn cảm xúc trong văn bản trong Chương 8, Áp dụng Học
máy vào Phân tích tình cảm và trong Chương 9, Nhúng Mơ hình Học máy vào Ứng dụng Web ,
chúng tơi sẽ nhúng nó vào một ứng dụng Web để chia sẻ nó với mọi người. Trong Chương 10,
Dự đốn các biến mục tiêu liên tục bằng phân tích hồi quy
sau đó, chúng tơi sẽ sử dụng thuật tốn học máy để phân tích hồi quy cho phép chúng tơi dự
đoán các biến đầu ra liên tục và trong Chương 11, Làm việc với dữ liệu không được gắn
nhãn – Phân tích phân cụm, chúng tơi sẽ áp dụng các thuật tốn phân cụm cho phép chúng
tơi tìm ra các cấu trúc ẩn trong dữ liệu. Trong cuốn sách này sẽ đề cập đến các mạng
thần kinh nhân tạo cho phép chúng ta giải quyết các vấn đề phức tạp, chẳng hạn như nhận
dạng hình ảnh và giọng nói, hiện là một trong những chủ đề nóng nhất trong nghiên cứu học máy.

[ 16 ]

www.it-ebooks.info


Machine Translated by Google

chương 2

Đào tạo học máy
Thuật toán phân loại

Trong chương này, chúng ta sẽ sử dụng một trong những thuật tốn học máy được mơ tả
bằng thuật tốn đầu tiên để phân loại, perceptron và nơ -ron tuyến tính thích ứng.
Chúng ta sẽ bắt đầu bằng cách triển khai perceptron từng bước trong Python và huấn luyện
nó để phân loại các loài thấp hơn khác nhau trong Tập dữ liệu Iris. Điều này sẽ giúp chúng
ta hiểu khái niệm về thuật toán học máy để phân loại và cách chúng có thể được triển khai
một cách hiệu quả trong Python. Thảo luận về những điều cơ bản về tối ưu hóa bằng cách sử
dụng nơ-ron tuyến tính thích ứng sau đó sẽ đặt nền tảng cho việc sử dụng các bộ phân loại mạnh
hơn thơng qua scikit- tìm hiểu thư viện máy học trong Chương 3, Chuyến tham quan các trình
phân loại máy học bằng cách sử dụng Scikit-learn.
Các chủ đề mà chúng ta sẽ đề cập trong chương này như sau:
• Xây dựng trực quan cho các thuật tốn học máy
• Sử dụng pandas, NumPy và matplotlib để đọc, xử lý và trực quan hóa dữ liệu
• Triển khai thuật tốn phân loại tuyến tính trong Python

[ 17 ]

www.it-ebooks.info


Machine Translated by Google

Đào tạo các thuật toán học máy để phân loại

Tế bào thần kinh nhân tạo - một cái nhìn
sơ lược về lịch sử ban đầu của học máy
Trước khi thảo luận chi tiết hơn về perceptron và các thuật tốn liên quan,
chúng ta hãy tìm hiểu sơ qua về giai đoạn đầu của học máy. tế bào não được đơn
giản hóa, cịn được gọi là tế bào thần kinh McCullock-Pitts (MCP), vào năm 1943
(WS McCulloch và W. Pitts. Một phép tính logic về các ý tưởng nội tại trong hoạt
động thần kinh. Bản tin lý sinh toán học, 5(4):115– 133, 1943). Tế bào thần

kinh là các tế bào thần kinh được liên kết với nhau trong não có liên quan
đến việc xử lý và truyền tín hiệu hóa học và điện, được minh họa trong hình sau:

McCullock và Pitts đã mô tả một tế bào thần kinh như một cổng logic đơn giản với
đầu ra nhị phân; nhiều tín hiệu đến các sợi nhánh, sau đó được tích hợp vào
thân tế bào và nếu tín hiệu tích lũy vượt q một ngưỡng nhất định thì tín hiệu
đầu ra sẽ được tạo ra. được truyền qua sợi trục.

[ 18 ]

www.it-ebooks.info


Machine Translated by Google

chương 2

Chỉ vài năm sau, Frank Rosenblatt đã công bố khái niệm đầu tiên về quy tắc học
perceptron dựa trên mơ hình nơ-ron MCP (F. Rosenblatt, The Perceptron, a
Perceive and Recognizing Automaton. Cornell Aeronautical Laboratory, 1957). đã
đề xuất một thuật tốn sẽ tự động tìm hiểu các hệ số trọng số tối ưu sau
đó được nhân với các tính năng đầu vào để đưa ra quyết định liệu một nơ-ron
có kích thích hay khơng. dự đốn xem một mẫu thuộc về lớp này hay lớp kia.

Chính thức hơn , chúng ta có thể đặt vấn đề này như một nhiệm vụ phân loại
nhị phân trong đó chúng ta gọi hai lớp của mình là 1 (lớp dương) và -1 ( lớp
sau đó có thể xác định một giá trị đầu

φ âm)


để đơn giản .

vào của hàm kích hoạt x và một vectơ trọng số tương ứng w , trong đó z được gọi là mạng

=

đầu vào zwxwx
(

+
1 +1 …

mm

):

w

x1

1

w =

w

x =

,


x

tơi

tơi

φ

Bây giờ, nếu kích hoạt của một mẫu cụ thể x , tức là đầu ra của
θ
, ( )z , chúng tơi dự đốn lớp 1 và lớp -1, nếu khơng,
lớn hơn thuật tốn perceptron
( ) tơi

φ

ngưỡng xác định, thì hàm kích hoạt đơi

trong ( )

khi cịn được gọi là hàm bước Heaviside:

φ z(

1
) =

nếu z

≥θ


1 nếu khơng thì

[ 19 ]

www.it-ebooks.info

là hàm bước đơn vị đơn giản, mà


Machine Translated by Google

Đào tạo các thuật toán học máy để phân loại

θ

Để đơn giản, chúng ta có thể xác định

θ

ngưỡng có trọng số bằng 0 là w0 = Và
hình thức

=
zwxwx
+ +wx+ 0 0 1…1

mm

=


về bên trái của phương trình và

x 0=1, do đó chúng ta viết z ở dạng 1 gọn hơn
T

nếu z

wx và φ( z) =

≥θ

1 nếu không thì .

Trong các phần sau, chúng ta sẽ thường sử dụng các ký hiệu cơ bản của
đại số tuyến tính, ví dụ: chúng ta sẽ viết tắt tổng tích của các giá
trị trong x và w bằng cách sử dụng tích vectơ chấm, trong khi chỉ số
trên T là viết tắt của chuyển vị, là phép toán biến đổi vectơ cột
thành vectơ hàng và ngược lại:

= 0 0 1++
1
+
zwxwxwx

mm

=
xwwx
T


tơi

=

j= 0

jj

4
Ví dụ: [

1 2 3 ]× =5 × +1 ×4 +2 ×5 =3 6 32

.

6
Hơn nữa, phép chuyển vị cũng có thể được áp dụng cho ma trận để phản
ánh nó theo đường chéo của nó, ví dụ:

1 2

T

1 3 5

3 4
5 6

=


2 4 6

Trong cuốn sách này, chúng ta sẽ chỉ sử dụng những khái niệm rất cơ bản của đại số tuyến tính.

Tuy nhiên, nếu bạn cần ơn lại nhanh, vui lòng xem Tài liệu tham khảo và
đánh giá đại số tuyến tính tuyệt vời của Zico Kolter, được cung cấp
miễn phí tại />ghi chú.pdf.
T

Hình dưới đây minh họa cách đầu vào ròng z = wx được nén thành đầu ra nhị phân (-1
hoặc 1) bằng hàm kích hoạt của perceptron (hình con bên trái) và cách nó có thể được
sử dụng để phân biệt giữa hai lớp có thể phân tách tuyến tính (hình con bên phải). ):

[ 20 ]

www.it-ebooks.info


Machine Translated by Google

chương 2

Toàn bộ ý tưởng đằng sau tế bào thần kinh MCP và mơ hình nhận thức có ngưỡng
của Rosenblatt là sử dụng cách tiếp cận giản lược để bắt chước cách thức hoạt động
của một tế bào thần kinh duy nhất trong não: nó có thể gây khó chịu hoặc khơng. tóm
tắt theo các bước sau:
1. Khởi tạo trọng số về 0 hoặc số ngẫu nhiên nhỏ.
( ) tôi


2. Với mỗi mẫu huấn luyện x thực hiện các bước sau:
1. Tính giá trị đầu ra yˆ .
2. Cập nhật trọng số.
Ở đây, giá trị đầu ra là nhãn lớp được dự đoán bởi hàm bước đơn vị mà chúng ta đã
xác định trước đó và việc cập nhật đồng thời từng trọng số wj trong vectơ trọng số w
có thể được viết chính thức hơn là:

= + Δ

j
: www
j

.

j

Giá trị của Δwj , được sử dụng để cập nhật trọng số wj , được tính theo quy
tắc học perceptron:

N

(

Tôi

( =) wyyx
Δ
jj


[ 21 ]

www.it-ebooks.info

( )

ˆ

Tôi

Tôi

) ( )


Machine Translated by Google

Đào tạo các thuật toán học máy để phân loại

Ở đâu

N

( ) tôi

là tốc độ học (hằng số trong khoảng từ 0,0 đến 1,0), y là lớp thực ( ) ˆ
i
nhãn của mẫu huấn luyện thứ i và y là nhãn lớp dự đoán. Điều quan trọng cần lưu ý là

tất cả các trọng số trong vectơ trọng số đang được cập nhật đồng thời, y trước khi

( ) tơi

là chúng ta khơng tính tốn lại cụ

tất cả các trọng số Δwj được cập nhật. Có nghĩa

thể, đối với tập dữ liệu 2D, chúng tôi sẽ viết bản cập nhật như sau:

(

( )

Δ đầu
=
ra
N wy
0

(

Tôi

( )

(

Tôi

Tôi


( )

)

( )

Δ đầu
=
ra
N wy x
2

)

( )

Δ đầu
=
ra
N wy x
1

)

( )

Tôi

Tôi


Tôi

( )
Tôi

1

( )
Tôi

2

Trước khi triển khai quy tắc perceptron trong Python, chúng ta hãy thực hiện một
thử nghiệm suy nghĩ đơn giản để minh họa quy tắc học này thực sự đơn giản đến
mức nào.Trong hai trường hợp mà perceptron dự đoán chính xác nhãn lớp, các trọng
số khơng thay đổi:

(

( wj
) Δ =

N

Δ = wj

N

1


(
1

1

( )
Tôi

( )
Tôi

1

Tôi

)

( )
Tôi

j _

)

( )
Tôi

( )
Tôi


j _

=0

=0

Tuy nhiên, trong trường hợp dự đoán sai, các trọng số sẽ được đẩy theo hướng của
lớp mục tiêu tích cực hoặc tiêu cực tương ứng:

N(

Δ = w
j

1

N

1

j _

(

( )
Tôi

( )
Tôi


1

=

Tôi

( )

( ) ( ) 1 Δ =
Tôi

)

Tôi

)

x j

Tôi

( )

=

xj

N (2 )

( )

Tôi

j _

N ( 2)

( )
Tôi

j _

( ) tôi

Để hiểu rõ hơn về ví dụ đơn giản về hệ số nhân,

, chúng ta hãy đi qua cái khác

j _

trong đó:

ˆ

( )
tơi

yj

_


= +1, y

( )
Tơi

=

[ 22 ]

www.it-ebooks.info

1,

N

=

1


Machine Translated by Google

chương 2

( )
Tôi

Hãy giả sử rằng

x = j


0,5 , và

chúng tôi phân loại sai mẫu này thành -1. Trong trường hợp này, chúng tôi

()
Tôi

Tôi

() sẽ tăng trọng số tương ứng lên 1 để kích hoạt x w= sẽ dương hơn j jvào lần tiếp
theo chúng ta gặp mẫu này và do đó sẽ có nhiều khả năng nằm trên ngưỡng của hàm bậc
đơn vị để phân loại mẫu là + 1:

Δ = wj (
( )
Tôi

1

)

( )
( ) 1 0,5

( )
Tôi

Tôi


Tôi

= (( ))2

0,5

Tôi

=1

( ) tôi

Cập nhật trọng số tỷ lệ thuận với giá trị của một

j

_

. Ví dụ: nếu chúng ta có

( )
Tơi

mẫu x = khác được phân 2loại khơng chính xác là -1, chúng tơi sẽ đẩy ranh giới
j

quyết định lên một phạm vi lớn hơn nữa để phân loại chính xác mẫu này vào lần tiếp theo:

Δ = wj (
1


( )
Tôi

( )

1 2)
Tôi

( )=
Tôi

(2 )2 4 =
( )
Tôi

Điều quan trọng cần lưu ý là sự hội tụ của perceptron chỉ được đảm bảo nếu hai lớp
có thể phân tách tuyến tính và tốc độ học đủ nhỏ.Nếu hai lớp không thể phân tách bằng
ranh giới quyết định tuyến tính, chúng ta có thể đặt số lượng tối đa vượt qua tập dữ
liệu huấn luyện (kỷ nguyên) và/hoặc ngưỡng cho số lần phân loại sai được chấp
nhận—nếu khơng thì perceptron sẽ khơng bao giờ ngừng cập nhật trọng số:

Đang tải xuống mã ví dụ
Bạn có thể tải xuống mã ví dụ từ tài khoản của mình tại
cho tất cả sách của Nhà xuất bản Packt
mà bạn đã mua. Nếu bạn mua sách này ở nơi khác, bạn có thể
truy cập hỗ trợ và đăng ký để iles
được gửi trực tiếp qua email cho bạn.

[ 23 ]


www.it-ebooks.info


Machine Translated by Google

Đào tạo các thuật toán học máy để phân loại

Bây giờ, trước khi bắt đầu triển khai trong phần tiếp theo, chúng ta hãy tóm tắt
những gì chúng ta vừa học bằng một hình ảnh đơn giản minh họa khái niệm
chung về perceptron:

Hình minh họa trước minh họa cách perceptron nhận đầu vào của mẫu
x và kết hợp chúng với các trọng số w để tính tốn đầu vào rịng. Sau đó, đầu vào
rịng được chuyển đến hàm kích hoạt (ở đây: hàm bước đơn vị), hàm này tạo ra
đầu ra nhị phân -1 hoặc +1—nhãn lớp dự đoán của mẫu. Trong giai đoạn học, đầu ra
này được sử dụng để tính tốn sai số dự đốn và cập nhật các trọng số.

Triển khai thuật toán học perceptron
trong Python
Trong phần trước, chúng ta đã tìm hiểu cách hoạt động của quy tắc perceptron của
Rosenblatt , bây giờ chúng ta hãy tiếp tục triển khai nó trong Python và áp dụng
nó vào tập dữ liệu Iris mà chúng tôi đã giới thiệu trong Chương 1, Cung cấp cho
Máy tính khả năng Học từ Dữ liệu . Cách tiếp cận hướng đối tượng để xác định giao
diện perceptron là một Lớp Python, cho phép chúng ta khởi tạo các đối tượng
perceptron mới có thể học từ dữ liệu thơng qua một phương thức phù hợp và đưa ra
dự đoán thơng qua một phương thức dự đốn riêng . các thuộc tính khơng được tạo
khi khởi tạo đối tượng mà bằng cách gọi các phương thức khác của đối tượng—ví dụ: self.w_.

[ 24 ]


www.it-ebooks.info


×