Random state là gì?

Noun AI Machine learning
random_state

Trong học máy (machine learning), random state là siêu tham số (hyperparameter) được sử dụng để thiết lập seed cho trình tạo ngẫu nhiên (random generator). Do bản chất của việc tách (split) dữ liệu thành tập dữ liêu huấn luyện (traning data) và tập dữ liệu thử nghiệm (testing set) là ngẫu nhiên, bạn sẽ nhận được các dữ liệu khác nhau được gán cho tập dữ liệu huấn luyện và tập dữ liệu thử nghiệm trừ khi bạn có thể kiểm soát yếu tố ngẫu nhiên.

Ví dụ bạn có các số: 1,2,3,4,5 và bạn muốn chọn hai số ngẫu nhiên. Nếu không sử dụng random state, bạn sẽ nhận được những số khác nhau: tức là 2,5 đầu tiên rồi đến 3,4, v.v. Khi bạn kiểm soát trình tạo ngẫu nhiên bằng cách thiết lập random state thành 0, 1 hoặc một số khác, bạn sẽ nhận được các số ngẫu nhiên luôn giống nhau được tạo. Ví dụ với là random state = 1 thì các số ngẫu nhiên có thể sẽ luôn là 1,3.

Với random state = 0, chúng ta nhận được cùng một tập dữ liệu huấn luyện và thử nghiệm trên các lần thực thi khác nhau. Với random state = 42, chúng ta nhận được cùng một tập dữ liệu huấn luyện và thử nghiệm trên các lần thực thi khác nhau, nhưng lần này tập dữ liệu huấn luyện và thử nghiệm khác với trường hợp trước với random state = 0

Bên dưới là code ví dụ sử dụng random state:


import numpy as np
import pandas as pd 

df = pd.read_csv("bike_rentals.csv") # Download: https://drive.google.com/file/d/1k64xXekUB9vG-So2-SQBhcgGUv8mIdZi/view?usp=sharing
X = df.iloc[:,:-1]
y = df.iloc[:,-1]

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, shuffle=True,
                                   test_size=0.20, random_state=1)

Learning English Everyday