<jupyter_start><jupyter_text>Partitioning a dataset into separate training and test datasetsPhần này giới thiệu ngắn gọn về concept chia dữ liệu thành các bộ dữ liệu phục vụ cho training và testing. Ghi nhớ rằng so sánh giá trị dự đoán được với nhãn true label trong tập test được hiểu là bước đánh giá **unbiased performance evaluation** cho model trước khi ta áp dụng nó vào trong thực tiễn. Trong phần này, ta sẽ chuẩn bị một dữ liệu mới, dữ liệu **Wine** dataset. Sau khi ta tiền xử lý chúng, ta có thể khám phá những kỹ thuật khác nhau cho **feature selection** để giảm số chiều của dữ liệu.Dữ liệu về **Wine** là một bộ dữ liệu mở trong UCI machine learning repo ([https://archive.ics.uci.edu/ml/datasets/Wine](https://archive.ics.uci.edu/ml/datasets/Wine)); Dữ liệu bao gồm 178 mẫu rượu và 13 thuộc tính để mô tả các hóa chất khác nhau của mỗi loại. Obtaining the Wine datasetTa có thể tìm thấy bản copy của Wine dataset trên UCI server. Ví dụ, để load dữ liệu Wine dataset từ thư mục local, ta có thể thay thế dòng này:df = pd.read_csv('https://archive.ics.uci.edu/ml/'                 'machine-learning-databases/wine/wine.data',                  header=None)                  Thành:df = pd.read_csv('your/local/path/to/wine.data', header=None) Sử dụng thư viện Pandas, ta trực tiếp đọc dữ liệu Wine từ UCI machine learning repository:<jupyter_code>import numpy as np
import pandas as pd


df_wine = pd.read_csv('https://archive.ics.uci.edu/'
                      'ml/machine-learning-databases/'
                      'wine/wine.data', header=None
                    )
df_wine.columns = ['Class label', 'Alcohol',
                    'Malic acid', 'Ash',
                    'Alcalinity of ash', 'Magnesium',
                    'Total phenols', 'Flavanoids',
                    'Nonflavanoid phenols',
                    'Proanthocyanins',
                    'Color intensity', 'Hue',
                    'OD280/OD315 of diluted wines',
                    'Proline']
print('Class labels ', np.unique(df_wine['Class label']))
print(df_wine.head())
df_wine.info()<jupyter_output>Class labels  [1 2 3]
   Class label  Alcohol  Malic acid   Ash  Alcalinity of ash  Magnesium  \
0            1    14.23        1.71  2.43               15.6        127   
1            1    13.20        1.78  2.14               11.2        100   
2            1    13.16        2.36  2.67               18.6        101   
3            1    14.37        1.95  2.50               16.8        113   
4            1    13.24        2.59  2.87               21.0        118   

   Total phenols  Flavanoids  Nonflavanoid phenols  Proanthocyanins  \
0           2.80        3.06                  0.28             2.29   
1           2.65        2.76                  0.26             1.28   
2           2.80        3.24                  0.30             2.81   
3           3.85        3.49                  0.24             2.18   
4           2.80        2.69                  0.39             1.82   

   Color intensity   Hue  OD280/OD315 of diluted wines  Proline  
0             5.64  1.04          [...]<jupyter_text>13 thuộc tính khác nhau trong dữ liệu Wine, mô tả tính chất hóa học của 178 mẫu rượu, được liệt kê trong bảng ở trên.Các mẫu thuộc về 3 lớp khác nhau 1, 2, 3 và liên quan đến ba loại nho được trồng tại cùng một vùng của Ý nhưng chuyển hóa thành các nhóm rựơụ khác nhau, được mô tả trong link: ([https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.names](https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.names))  Một cách tiện lợi để chia dữ liệu của chúng ta thành bộ test và training datasets đó là sử dụng train_test_split trong thư viện sklearn.model_selection module:<jupyter_code>from sklearn.model_selection import train_test_split
X, y = df_wine.iloc[:, 1:].values, df_wine.iloc[:, 0].values
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0, stratify=y, test_size=0.3)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08121699773698768, 'fraction_numerical': 0.049283379431732464, 'mean_word_length': 1.8373751783166905, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '404020', 'license': 'MIT', 'n_tokens_mistral': 1666, 'n_tokens_neox': 1543, 'n_words': 450, 'path': 'Chap4/PartitionData.ipynb', 'repo_name': 'Nacriema/PythonMLAndDLBook', 'size': '3977'}