Hồi quy logistic bằng Python - Chuẩn bị dữ liệu

Để tạo bộ phân loại, chúng ta phải chuẩn bị dữ liệu ở định dạng được yêu cầu bởi mô-đun xây dựng bộ phân loại. Chúng tôi chuẩn bị dữ liệu bằng cáchOne Hot Encoding.

Mã hóa dữ liệu

Chúng ta sẽ thảo luận ngay về ý nghĩa của việc mã hóa dữ liệu. Đầu tiên, hãy để chúng tôi chạy mã. Chạy lệnh sau trong cửa sổ mã.

In [10]: # creating one hot encoding of the categorical columns.
data = pd.get_dummies(df, columns =['job', 'marital', 'default', 'housing', 'loan', 'poutcome'])

Như nhận xét cho biết, câu lệnh trên sẽ tạo một mã hóa dữ liệu nóng nhất. Hãy để chúng tôi xem nó đã tạo ra những gì? Kiểm tra dữ liệu đã tạo được gọi là“data” bằng cách in các bản ghi đầu trong cơ sở dữ liệu.

In [11]: data.head()

Bạn sẽ thấy kết quả sau:

Để hiểu dữ liệu trên, chúng tôi sẽ liệt kê các tên cột bằng cách chạy data.columns lệnh như hình dưới đây -

In [12]: data.columns
Out[12]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur',
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'job_unknown', 'marital_divorced', 'marital_married', 'marital_single', 
'marital_unknown', 'default_no', 'default_unknown', 'default_yes', 
'housing_no', 'housing_unknown', 'housing_yes', 'loan_no',
'loan_unknown', 'loan_yes', 'poutcome_failure', 'poutcome_nonexistent', 
'poutcome_success'], dtype='object')

Bây giờ, chúng tôi sẽ giải thích cách một mã hóa nóng được thực hiện bởi get_dummieschỉ huy. Cột đầu tiên trong cơ sở dữ liệu mới được tạo là trường “y” cho biết liệu khách hàng này đã đăng ký TD hay chưa. Bây giờ, chúng ta hãy xem xét các cột được mã hóa. Cột được mã hóa đầu tiên là“job”. Trong cơ sở dữ liệu, bạn sẽ thấy rằng cột “việc làm” có nhiều giá trị có thể có như “quản trị viên”, “cổ xanh”, “doanh nhân”, v.v. Đối với mỗi giá trị có thể, chúng tôi có một cột mới được tạo trong cơ sở dữ liệu, với tên cột được thêm vào dưới dạng tiền tố.

Do đó, chúng ta có các cột được gọi là “job_admin”, “job_blue-Neck”, v.v. Đối với mỗi trường được mã hóa trong cơ sở dữ liệu gốc của chúng tôi, bạn sẽ tìm thấy danh sách các cột được thêm vào cơ sở dữ liệu đã tạo với tất cả các giá trị có thể có mà cột đó nhận trong cơ sở dữ liệu gốc. Kiểm tra cẩn thận danh sách các cột để hiểu cách dữ liệu được ánh xạ tới cơ sở dữ liệu mới.

Hiểu về ánh xạ dữ liệu

Để hiểu dữ liệu được tạo, chúng ta hãy in ra toàn bộ dữ liệu bằng lệnh data. Kết quả một phần sau khi chạy lệnh được hiển thị bên dưới.

In [13]: data

Màn hình trên hiển thị mười hai hàng đầu tiên. Nếu bạn cuộn xuống thêm, bạn sẽ thấy rằng ánh xạ được thực hiện cho tất cả các hàng.

Một phần màn hình xuất ra bên dưới cơ sở dữ liệu được hiển thị ở đây để bạn tham khảo nhanh.

Để hiểu dữ liệu được ánh xạ, chúng ta hãy kiểm tra hàng đầu tiên.

Nó nói rằng khách hàng này chưa đăng ký TD như được chỉ ra bởi giá trị trong trường "y". Nó cũng chỉ ra rằng khách hàng này là khách hàng "cổ xanh". Cuộn xuống theo chiều ngang, nó sẽ cho bạn biết rằng anh ta có "nhà ở" và không có "khoản vay" nào.

Sau một lần mã hóa nóng này, chúng tôi cần xử lý thêm một số dữ liệu trước khi có thể bắt đầu xây dựng mô hình của mình.

Bỏ thông tin "không xác định"

Nếu chúng tôi kiểm tra các cột trong cơ sở dữ liệu được ánh xạ, bạn sẽ thấy sự hiện diện của một số cột kết thúc bằng "không xác định". Ví dụ: kiểm tra cột ở chỉ mục 12 bằng lệnh sau được hiển thị trong ảnh chụp màn hình:

In [14]: data.columns[12]
Out[14]: 'job_unknown'

Điều này cho thấy công việc cho khách hàng được chỉ định là không xác định. Rõ ràng, không có ích gì khi đưa các cột như vậy vào phân tích và xây dựng mô hình của chúng tôi. Do đó, tất cả các cột có giá trị "không xác định" sẽ bị loại bỏ. Điều này được thực hiện với lệnh sau:

In [15]: data.drop(data.columns[[12, 16, 18, 21, 24]], axis=1, inplace=True)

Đảm bảo rằng bạn chỉ định số cột chính xác. Trong trường hợp nghi ngờ, bạn có thể kiểm tra tên cột bất cứ lúc nào bằng cách chỉ định chỉ mục của nó trong lệnh cột như được mô tả trước đó.

Sau khi loại bỏ các cột không mong muốn, bạn có thể kiểm tra danh sách cuối cùng của các cột như được hiển thị trong kết quả bên dưới:

In [16]: data.columns
Out[16]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur', 
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'marital_divorced', 'marital_married', 'marital_single', 'default_no', 
'default_yes', 'housing_no', 'housing_yes', 'loan_no', 'loan_yes',
'poutcome_failure', 'poutcome_nonexistent', 'poutcome_success'], 
dtype='object')

Tại thời điểm này, dữ liệu của chúng tôi đã sẵn sàng để xây dựng mô hình.