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

CHỦ ĐỀ ỨNG DỤNG AI XÂY DỰNG MÔ HÌNH DỰ ĐOÁN KHẢ NĂNG MẮC BỆNH TIM MẠCH CỦA NGƯỜI DÂN

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 (1.12 MB, 36 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>HỌC VIỆN NGÂN HÀNG </b>

<b>KHOA HỆ THỐNG THƠNG TIN QUẢN LÍ </b>

<b>Học phần: TRÍ TUỆ NHÂN TẠO TRONG KINH DOANH </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>STT HỌ VÀ TÊN MÃ SINH VIÊN PHÂN CHIA </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC </b>

<b>PHẦN 1: GIỚI THIỆU BÀI TOÁN ... 4</b>

1. Phát biểu bài toán ... 4

2. Lý do chọn bài toán ... 4

<b>PHẦN 2: CÁCH THỨC THỰC HIỆN BÀI TOÁN ... 6</b>

1. Giới thiệu về bộ dữ liệu ... 6

2. Giới thiệu tổng quan thuật toán được sử dụng ... 7

2.1. Thuật toán Cây quyết định (Decision Tree) ... 7

2.2. Giới thiệu về thuật toán SVM ... 10

3. Mã lệnh chương trình ... 12

3.1. Đọc dữ liệu, tiền xử lý dữ liệu ... 12

3.2. Áp dụng thuật toán Decision Tree ... 17

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>PHẦN 1: GIỚI THIỆU BÀI TỐN</b>

<b>1. Phát biểu bài tốn</b>

Bệnh tim mạch là các bệnh lý ảnh hưởng đến tim và mạch máu, bao gồm bệnh lý tim bẩm sinh và bệnh tim mạch mắc phải. Trong đó, các bệnh mạch vành, tai biến mạch máu não (đột quỵ), tăng huyết áp, bệnh động mạch ngoại biên và suy tim là các bệnh lý khá phổ biến, gây ảnh hưởng không nhỏ đến đời sống người bệnh. Đặc biệt là những bệnh nhân có yếu tố nguy cơ cao như ngồi nhiều, ít vận động, béo phì, hút thuốc lá, uống nhiều rượu bia, tiểu đường, mỡ máu cao. Ngoài ra, các bệnh do thấp tim hay rối loạn nhịp tim cũng là nguyên nhân thứ phát gây ra các vấn đề tim mạch.

Trong dự đoán tim mạch, người ta thường dùng Hệ thống máy chẩn đoán tim mạch qua các phương pháp kiểm tra nhịp tim như: Máy điện tim 12 cần, Máy Holter điện tâm đồ - Điện tâm đồ lưu động, Nghiệm pháp điện tâm đồ gắng sức trên thảm chạy, …

Tuy nhiên, sự xuất hiện của AI - mơ hình dự đốn khả năng mắc bệnh tim mạch, được tích hợp nhiều loại cơng nghệ sẽ giúp giải quyết những số liệu một cách dễ dàng. Các thuật toán sẽ được sử dụng để dự báo khả năng mắc bệnh, giảm rủi ro liên quan đến các mơ hình dự đốn truyền thống. Ngoài ra, logic mở (khác với logic truyền thống chỉ nhận 1 trong 2 giá trị: 1 và 0) của AI sẽ đánh giá được một giá trị ở giữa, có thể nói là cho ta thấy được tính trọng yếu trên thang đo liên tục từ 1 đến 0, chứ không phải quyết định bằng nhị phân. Ngồi ra, hệ thống mạng nơron có khả năng tìm hiểu, tổng qt hóa và phân loại dữ liệu để đánh giá rủi ro thông tin sơ bộ, rủi ro kiểm sốt, xác định sai sót và gian lận, từ đó tổng hợp được nhận định về tình hình sức khỏe của người bệnh

<b>2. Lý do chọn bài tốn</b>

Bài tốn “AI - mơ hình dự đoán khả năng mắc bệnh tim mạch” mang lại nhiều lợi ích cho bản thân những người bị mắc bệnh cũng như các bác sĩ, cơ sở bệnh viện:

<i>Đối với bệnh viện, cơ sở khám bệnh nói chung: Mơ hình này sẽ giúp các </i>

bác sĩ có thể nhận định được về mức độ mắc bệnh của bệnh nhân, đồng thời tiết kiệm được công sức cũng như nguồn lực doanh nghiệp nói chung. Nó cũng giúp

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

các bác sĩ kịp thời đưa ra những biện pháp, kế hoạch để chữa trị cho bệnh nhân. Đồng thời, doanh nghiệp cũng sẽ cần tốn ít chi phí và nhân lực hơn cho công tác đánh giá, kiểm tra sau này.

<i>Đối với người bệnh: Mơ hình này sẽ là một trong những cơ sở quan trọng </i>

giúp bệnh nhân nhanh chóng phát hiện tình trạng của mình, từ đó sẽ có những chuẩn bị kịp thời để điều trị bệnh dứt điểm sớm.

Ngồi những đối tượng nêu trên, mơ hình này sẽ trở thành một mơ hình hiệu quả, thay đổi hồn tồn cơng tác chuẩn đốn bệnh, mang lại nhiều lợi ích cho nền y học trong tương lai.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>PHẦN 2: CÁCH THỨC THỰC HIỆN BÀI TOÁN </b>

<b>1. Giới thiệu về bộ dữ liệu</b>

Dữ liệu được thu thập từ Tập dữ liệu công cộng Kaggle - Insurance Premium

- Age: Tuổi của người đó

- Sex: Giới tính của người đó (1= nam, 0= nữ)

- Cp: Bị đau lồng ngực (Giá trị 0: Đau thắt ngực điển hình, Giá trị 1: Đau thắt ngực không điển hình, Giá trị 2: Khơng đau thắt ngực, Giá trị 3: Khơng có triệu chứng)

- Trestbps: Huyết áp lúc nghỉ của người đó (mm Hg khi nhập viện)

- Chol: Đo cholesterol của người đó bằng mg / dl

- Fbs: Đường huyết lúc đói của người đó (> 120 mg / dl, 1 = true; 0 = false)

- Restegs: Đo điện tâm đồ khi nghỉ ngơi (0 = bình thường, 1 = có bất thường sóng ST-T, 2 = hiển thị phì đại thất trái có thể hoặc xác định theo tiêu chí của Estes)

- Thalach: Nhịp tim tối đa của người đó đạt được

- Exang: Tập thể dục gây ra chứng đau thắt ngực (1 = có; 0 = khơng)

- Oldpeak: ST chênh xuống do tập thể dục so với khi nghỉ ngơi ('ST' liên quan đến các vị trí trên đồ thị ECG

- Slope: Độ dốc của đoạn ST bài tập cao điểm (Giá trị 0: dốc lên, Giá trị 1: bằng phẳng, Giá trị 2: dốc xuống)

- Ca: Số lượng mạch máu chính (0-3)

- Thal: <i>Nhịp tim tối đa đạt được - (Ordinal): 0 = bình thường; 1 = khuyết </i>

tật cố định; 2 = khuyết tật có thể đảo ngược; 3 = khuyết tật - Target: Bệnh tim (0 = khơng, 1 = có)

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>➔ Hình ảnh minh họa file dữ liệu dưới dạng .csv:</b>

<b>2. Giới thiệu tổng quan thuật toán được sử dụng</b>

<i>2.1. Thuật toán Cây quyết định (Decision Tree) </i>

2.1.1. Khái niệm

Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật. Các thuộc tính của đối tượng có thể thuộc các kiểu dữ liệu khác nhau như Nhị phân (Binary), Định danh (Nominal), Thứ tự (Ordinal), Số lượng (Quantitative), trong khi đó thuộc tính phân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal. Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các dữ liệu chưa biết.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Cây quyết định là một mơ hình dự đốn, có nghĩa là từ việc quan sát các item để rút ra kết luận về giá trị đích của item đó. Mỗi nút bên trong tương đương với một biến, mỗi cung đi tới một nút con tương ứng với giá trị có thể của biến đó. Các là tương ứng với giá trị đích được dự đoán cho các biến.

Học cây quyết định cũng là một phương pháp rất thông dụng trong khai phá dữ liệu. Trong đó cây quyết định mơ tả cấu trúc cây mà ở đó các lá đại diện cho các lớp và các nhánh cây biểu diễn sự kết hợp của các đặc trưng dẫn dắt tới việc phân lớp. Một cây quyết định có thể được học bằng cách chia tập nguồn thành các tập con dựa trên giá trị các thuộc tính kiểm tra.

2.1.2. Cấu trúc của Cây quyết định

Cây quyết định gồm 3 phần chính: 1 node gốc (root node), những node lá (leaf nodes) và các nhánh của nó (branches). Node gốc là điểm bắt đầu của cây quyết định và cả hai node gốc và node chứa câu hỏi hoặc tiêu chí để được trả lời. Nhánh biểu diễn các kết quả của kiểm tra trên nút. Ví dụ câu hỏi ở node đầu tiên yêu cầu câu trả lời là “yes” hoặc là “no” thì sẽ có 1 node con chịu trách nhiệm cho phản hồi là “yes”, 1 node là “no”.

2.1.3. Ưu điểm & nhược điểm của thuật toán cây quyết định a, Ưu điểm:

Cây quyết định là một thuật toán đơn giản và phổ biến. Thuật toán này được sử dụng rộng rãi với những lợi ích của nó:

Dữ liệu đầu vào có thể là là dữ liệu missing, khơng cần chuẩn hóa hoặc tạo biến giả: Thuật tốn Decision trees đơn giản, trực quan, dễ thực hiện. Một số thuật tốn cây quyết định có khả năng xử lý dữ liệu bị missing và dữ liệu bị lỗi mà không

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

cần áp dụng phương pháp như “imputing missing values” hay chọn lọc loại trừ. Bên cạnh đó, Decision trees cịn ít bị ảnh hưởng bởi các dữ liệu ngoại lệ (outliers).

Thuật tốn cây quyết định là phương pháp khơng sử dụng tham số, nên khơng cần phải có các giả định ban đầu về các quy luật phân phối như trong thống kê, nên kết quả phân tích thường là khách quan nhất.

Có thể làm việc với cả dữ liệu số và dữ liệu phân loại: Thuật toán cây quyết định có thể giúp chúng ta phân loại đối tượng dữ liệu theo biến mục tiêu có nhiều lớp, nhiều nhóm khác nhau (multi-class classification,) đặc biệt nếu biến mục tiêu là dạng biến định lượng phức tạp. Thuật tốn cây quyết định có thể áp dụng linh hoạt cho các biến target, biến mục tiêu là biến định tính (classification task). Ví dụ phân loại khách hàng theo “rủi ro tín dụng” và “khơng rủi ro tín dụng”.

Có thể xác thực mơ hình bằng cách sử dụng các kiểm tra thống kê: Thuật toán cây quyết định mang lại kết quả dự báo có độ chính xác cao, dễ dàng thực hiện, nhanh chóng trong việc huấn luyện. Thêm vào đó, bộ dữ liệu dùng để training không cần quá lớn, khơng cần phải chuyển đổi các biến vì kết quả sẽ như nhau với bất kể loại biến dữ liệu biến đổi ra sao. Thuật toán cây quyết định vẫn nói lên được mối liên hệ giữa các biến, các thuộc tính dữ liệu một cách trực quan nhất mặc dù không thể hiện được rõ mối quan hệ tuyến tính, hay mức độ liên hệ giữa chúng như phương pháp hồi quy (regression analysis). Ngồi kinh tế, tài chính, thuật tốn cây quyết định có thể được ứng dụng trong lĩnh vực y tế, nông nghiệp, sinh học. b, Nhược điểm:

Cây quyết định hay gặp vấn đề overfitting: Thuật toán cây quyết định hoạt động hiệu quả trên bộ dữ liệu đơn giản, có ít biến dữ liệu liên hệ với nhau nhưng lại kém hiệu quả với bộ dữ liệu phức tạp. Cụ thể, thuật toán cây quyết định khi được áp dụng với bộ dữ liệu phức tạp, nhiều biến và thuộc tính khác nhau có thể dẫn đến mơ hình bị overfitting, q khớp với dữ liệu training dẫn đến vấn đề không đưa ra kết quả phân loại chính xác khi áp dụng cho dữ liệu test, và dữ liệu mới.

Mơ hình cây quyết định phụ thuộc rất lớn vào dữ liệu tìm được. Thậm chí, với một sự thay đổi nhỏ trong bộ dữ liệu, cấu trúc mơ hình cây quyết định có thể thay đổi hồn tồn: Khi chúng ta điều chỉnh dữ liệu, cách thức phân nhánh, ngắt cây sẽ bị thay đổi, có thể dẫn đến kết quả sẽ khác so với ban đầu, phức tạp hơn. Các chuyên gia gọi đây là vấn đề “high variance” – giá trị phương sai cao.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Thuật toán cây quyết định khi áp dụng cho biến định tính (classification tree), nếu phân loại sai có thể dẫn đến sai lầm nghiêm trọng. Ví dụ một người có khả năng bị đột quỵ lại được phân loại là khơng thì vơ tình đặt người này vào tình thế nguy hiểm. Cịn khi áp dụng cho biến định lượng (regression tree), thì chỉ phân loại đối tượng, hay dự báo theo phạm vi giá trị (range) được tạo ra trước đó. Vì vậy đây cũng là một hạn chế khi khả năng có nhiều phạm vi giá trị khác mà thuật toán chưa xét đến.

Thuật toán cây quyết định có khả năng “bias” hay thiên vị nếu bộ dữ liệu khơng được cân bằng. Nói đơn giản, khi bộ dữ liệu được phân ra thành các nhóm theo các đặc trưng khác nhau nào đó, mà số lượng quan sát trong mỗi nhóm là quá chênh lệch hay khác biệt rõ rệt về đặc trưng, lúc này có thể dẫn đến mơ hình bị “bias”, phân nhánh đơn giản, chỉ xét đến các giá trị tiêu biểu, và nguy cơ “Underfitting” (khơng rà sốt hết các khả năng phân loại dữ liệu).

Thuật toán cây quyết định yêu cầu bộ dữ liệu training và test phải được chuẩn bị hoàn hảo, chất lượng tốt phải được cân đối theo các lớp, các nhóm trong biến mục tiêu. Ngồi ra biến mục tiêu phải có các giá trị “rời rạc” dễ nhận biết, không được quá đa dạng, và phải cụ thể để quá trình phân loại diễn ra dễ dàng hơn cho thuật toán.

Thuật tốn cây quyết định khơng “hỗ trợ” kỹ thuật hay khả năng “truy vấn ngược” mà chỉ phân nhánh liên tục dựa trên các công thức phân nhánh cho đến khi thấy được kết quả sau cùng nên chúng ta khó phát hiện được các lỗi ở đâu nếu có sai sót.

<i>2.2. Giới thiệu về thuật toán SVM </i>

2.2.1. Khái niệm

SVM (Support Vector Machine) là 1 thuật tốn học máy thuộc nhóm Supervised Learning (học có giám sát), được sử dụng trong các bài toán phân lớp dữ liệu (classification) hay hồi quy (Regression). SVM được coi là một thuật toán giám sát, nó có thể sử dụng cho cả việc phân loại hoặc đệ quy.

Giải thuật máy vector hỗ trợ SVM (Support Vector Machine) ra đời từ lý thuyết học thống kê do Vapnik và Chervonenkis xây dựng năm 1995. Đây là một giải thuật phân lớp có hiệu quả cao và đã được áp dụng nhiều trong lĩnh vực khai

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

phá dữ liệu và nhận dạng. Ban đầu thuật toán SVM được thiết kế để giải quyết bài toán phân lớp nhị phân. SVM là 1 thuật toán phân loại nhị phân, SVM nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau. Với 1 bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật toán luyện tập SVM xây dựng 1 mơ hình SVM để phân loại các ví dụ khác vào hai thể loại đó.

2.2.2. Cấu trúc của SVM

Trong thuật toán này, chúng ta vẽ đồ thị dữ liệu là các điểm trong n chiều (ở đây n là số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ là một phần liên kết. Sau đó chúng ta thực hiện tìm "đường bay" (hyper-plane) phân chia các lớp. Hyper-plane nó chỉ hiểu đơn giản là 1 đường thẳng có thể phân chia các lớp ra thành hai phần riêng biệt.

Trước hết cần phải nhận thấy rằng SVM là một bộ máy phân loại dữ liệu, muốn sử dụng được nó cần phải có dữ liệu, dữ liệu đối với các kí tự mà ta cần nhận dạng ở đây chính là các đặc trưng trong ảnh của ký tự đó. Giả sử ta cần phân loại 30 lớp dữ liệu (tương ứng với 30 kí tự trong biển số xe), với mỗi lớp dữ liệu, ta tính tốn được 10 vector đặc trưng (10 mẫu), và mỗi vector đặc trưng tương ứng với các đặc trưng trong một ảnh. Khi đó ta sẽ đưa vào bộ huấn luyện SVM toàn bộ dữ liệu này, sau đó với một ảnh bất kì, ta sẽ tính tốn một vector đặc trưng của ảnh đó, mơ hình SVM sẽ xem xét xem dữ liệu này (tức vector đặc trưng này) thuộc vào lớp nào trong số những lớp mà nó đã được huấn luyện.

2.2.3. Ưu nhược điểm của SVM a, Ưu điểm:

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm trong số đó có việc tính tốn hiệu quả trên các tập dữ liệu lớn.

Xử lý trên không gian số chiều cao: SVM là một cơng cụ tính tốn hiệu quả trong khơng gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán phân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn

Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết định.

Tính linh hoạt - phân lớp thường là phi tuyến tính. Khả năng áp dụng Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn.

b, Nhược điểm

Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi

Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM. Điều này chưa giải thích được xác suất xuất hiện của một thành viên trong một nhóm là như thế nào. Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đã bàn luận ở trên.

<b>3. Mã lệnh chương trình </b>

<i>3.1. Đọc dữ liệu, tiền xử lý dữ liệu </i>

<b>Bước 1: Khai báo thư viện </b>

<b>IN [1]: Thư viện dùng để đọc dữ liệu từ tệp </b>

dạng bảng

- <i>import joblib: Thư viện dùng để lưu trữ mơ hình học ra tệp </i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>Bước 2: Đọc dữ liệu </b>

<b>IN [2]: Liên kết với Google Drive </b>

- from google.colab import drive

<b>➔ Kết quả thu được </b>

<b>IN [5]: Kiểm tra kích thước của dữ liệu bằng cách sử dụng hàm Shape </b>

<i>➢ Số lượng mẫu và số thuộc tính </i>

- print("số lượng mẫu và thuộc tính: ", dulieu.shape)

<i>➢ Số lượng mẫu </i>

- print("Số dòng: ", dulieu.shape[0]) - print("Số cột: ", dulieu.shape[1])

<b>➔ Kết quả thu được: </b>

• số lượng mẫu và thuộc tính: (1025, 14) • Số dịng: 1025

• Số cột: 14

<b>IN [6]: Hiển thị dữ liệu của các thuộc tính </b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

- target = dulieu['target']

<b>IN [8]: Biểu diễn </b>

- Mối quan hệ giữa Số lượng mạch máu chính (ca) và ST chênh xuống do tập thể

<b>dục so với khi nghỉ ngơi (oldpeak) IN [9]: Biểu đồ Cột </b>

- plt.bar(ca, oldpeak) - plt.show()

<b>➔ Kết quả thu được: </b>

<b>IN [10]: Thêm nhãn cho biểu đồ Cột </b>

- plt.xlabel('ST chênh xuống do tập thể dục so với khi nghỉ ngơ') - plt.ylabel('Số lượng mạch máu chính')

- plt.suptitle('Số lượng mạch máu chính theo số ST chênh xuống do tập thể dục so với khi nghỉ ngơi ')

- plt.bar(ca, oldpeak,) - plt.show()

<b>➔ Kết quả thu được: </b>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>IN [11]: Biểu đồ Ngang </b>

- plt.xlabel('ST chênh xuống do tập thể dục so với khi nghỉ ngơi') - plt.ylabel('Số lượng mạch máu chính')

- plt.suptitle('Số lượng mạch máu chính theo số ST chênh xuống do tập thể dục so với khi nghỉ ngơi')

- plt.barh(ca, oldpeak, color = 'pink') - plt.show()

<b>➔ Kết quả thu được: </b>

<b>Nhận xét biểu đồ: </b>

- Biểu đồ thể hiện Mối quan hệ giữa Số lượng mạch máu chính (ca) và ST chênh xuống do tập thể dục so với khi nghỉ ngơi (oldpeak)

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

- Mối quan hệ này có liên hệ chặt chẽ với nhau, khi ST chênh xuống do tập thể dục so với khi nghỉ ngơi (oldpeak) tăng lên thì khi đó số lượng mạch máu chính cũng tăng theo. Ví dụ: khi ST chênh xuống do tập thể dục so với khi nghỉ ngơi (oldpeak) là 6.2 thì Số lượng mạch máu chính có thể nhận giá trị là 3...

<i>3.2. Áp dụng thuật tốn Decision Tree 3.2.1. Xây dựng mơ hình </i>

Đầu tiên, chúng ta sẽ dụng thuộc tốn Decision Tree để phân lớp và đưa ra dự đoán cho tập dữ liệu

<b>IN [12]: Chuẩn bị dữ liệu, đào tạo và đưa ra dự đoán </b>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>IN [14]: Chia tệp dữ liệu thành hai tập train và test tỉ lệ 70% train, 30% test </b>

- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

</div>

×