Hướng dẫn how do you know if a variable is categorical or continuous in python? - làm thế nào để bạn biết nếu một biến là phân loại hoặc liên tục trong python?

Tôi có một bộ dữ liệu có một số Variables.

Tôi muốn xác định rằng làm thế nào chúng ta có thể đánh giá một biến nếu nó là phân loại hoặc số khác với phương pháp số lượng giá trị duy nhất, ví dụ, một trong những loại bệnh biến đổi của tôi có 31 giá trị duy nhất trong khi Variable Distance khác từ Office có 25 giá trị duy nhất, cả ở dạng số.

Đã hỏi ngày 21 tháng 2 năm 2019 lúc 6:09Feb 21, 2019 at 6:09

Hướng dẫn how do you know if a variable is categorical or continuous in python? - làm thế nào để bạn biết nếu một biến là phân loại hoặc liên tục trong python?

4

Câu trả lời ngắn gọn là: Kiến thức của bạn về miền vấn đề / miền ứng dụng sẽ cho bạn biết.

Có một số khác biệt mà bạn tìm kiếm, nhưng để áp dụng những khác biệt này, bạn vẫn sẽ phải sử dụng một số kiến ​​thức miền (đôi khi là lẽ thường).

Sau đây là một số khác biệt sẽ giúp bạn phân biệt:

  1. Đối với các biến phân loại, tập hợp các giá trị được phép thường được cố định và hiếm khi thay đổi, nếu có. Ngược lại, đối với biến số, tập hợp các giá trị có thể thay đổi, ví dụ, khi bạn nhận được một bản ghi mới cho cùng một bộ dữ liệu.fixed, and rarely changes, if at all. In contrast, for numeric variable, the set of values can change, for example, when you receive a new record for the same dataset.
  2. Các biến số có khả năng có các giá trị không phải là số nguyên tròn. Trong ví dụ của bạn, mặc dù "khoảng cách từ văn phòng" có giá trị số nguyên, điều đó hoàn toàn có thể là ngẫu nhiên hoặc có thể là một lựa chọn được thực hiện bởi một số về độ chính xác số của họ trong dữ liệu.can potentially have values that are not round integers. In your example, even though "distance from office" happens to have integer values, that could be purely incidental, or could have been a choice made by some one about how much numeric precision they want in the data.
  3. Đối với các biến phân loại, thường không có ý nghĩa khi nói về mức trung bình. Ví dụ, có 2 loại bệnh tiểu đường được gọi là loại 1, loại 2, nhưng không có ý nghĩa gì khi nói về mức trung bình của các loại này (loại 1.2357?).
  4. Hãy tự hỏi mình câu hỏi quy tắc ngón tay cái này: Khi tôi thực hiện phân tích dữ liệu của mình, tôi có thể bày tỏ các suy luận của mình về các giá trị cụ thể của biến này không? Làm thế nào về phạm vi của biến này ("0 đến 5 km", "5 đến 10 km", v.v.). Ví dụ, tôi có thể báo cáo bất kỳ suy luận nào từ phân tích dữ liệu của tôi cho biết "những người có khoảng cách từ văn phòng là 123, có xu hướng thành công trong sự nghiệp của họ"? Giá trị cụ thể đó nghe có vẻ ngớ ngẩn, phải không? Ngược lại, nếu đó là một biến phân loại như bệnh tiểu đường loại 2, bạn luôn có thể đưa ra các suy luận về giá trị cụ thể.

Đã trả lời ngày 21 tháng 2 năm 2019 lúc 7:10Feb 21, 2019 at 7:10

Fountainheadfountainheadfountainhead

Phim huy hiệu vàng 3,52411 gold badge8 silver badges17 bronze badges

Is

Đã trả lời ngày 21 tháng 2 năm 2019 lúc 7:05Feb 21, 2019 at 7:05

Hướng dẫn how do you know if a variable is categorical or continuous in python? - làm thế nào để bạn biết nếu một biến là phân loại hoặc liên tục trong python?

1

Tham gia cộng đồng Dzone và có được trải nghiệm thành viên đầy đủ.

Tham gia miễn phí

Trước khi tạo bất kỳ mô hình học máy nào trên bộ dữ liệu bảng, thông thường chúng tôi kiểm tra xem có mối quan hệ giữa các biến độc lập và mục tiêu hay không. Điều này có thể được thực hiện bằng cách đo lường mối tương quan giữa hai biến. Trong Python, Pandas cung cấp một hàm, & nbsp; ________ 9, & nbsp; để tìm mối tương quan giữa các biến số., to find the correlation between numeric variables only.

Trong bài viết này, chúng ta sẽ xem làm thế nào để tìm ra mối tương quan giữa các biến phân loại và liên tục.

Trường hợp 1: Khi một biến độc lập chỉ có hai giá trị

Điểm tương quan biserial

Nếu một biến phân loại chỉ có hai giá trị (nghĩa là true/false), thì chúng ta có thể chuyển đổi nó thành một số & nbsp; kiểu dữ liệu (0 và 1). Vì nó trở thành một biến số, chúng ta có thể tìm ra mối tương quan bằng cách sử dụng chức năng & nbsp; ____ 9 & nbsp;

Chúng ta hãy tạo một khung dữ liệu sẽ bao gồm hai cột: loại nhân viên (trốngpe) & nbsp; và tiền lương.Employee Type (EmpType) and Salary.

Cố tình, chúng tôi sẽ chỉ định nhiều tiền lương hơn cho trốngPE1. Bằng cách này, chúng tôi sẽ nhận được một số mối tương quan giữa trống và tiền lương.

Tạo DataFrame với các thuộc tính sau:

  • Mức lương trung bình (trung bình) của & nbsp; ________ 11 & nbsp; là 60 với độ lệch chuẩn là năm.

  • Mức lương trung bình (trung bình) của & nbsp; ________ 12 & nbsp; là 50 với độ lệch chuẩn là năm. is 50 with a standard deviation of five.

import pandas as pd
import numpy as np

num1=np.random.normal(loc=60,scale=5,size=100)
df1=pd.DataFrame(num1,columns=['Salary'])
df1['Type']='EmpType1'

num2=np.random.normal(loc=50,scale=5,size=100)
df2=pd.DataFrame(num2,columns=['Salary'])
df2['Type']='EmpType2'


df=pd.concat([df1,df2],axis=0)
# Since Categorical variable 'Type' has only 2 values we will convert it into numeric (0 and 1) datatype.

df['TypeInt']=(df['Type']=='EmpType1').astype(int)
df.corr()

Đầu ra

LươngKiểu
Lương1 0.736262
Kiểu0.736262 1

Mối tương quan giữa rỗng và lương là 0,7. Vì vậy, chúng tôi có thể xác định nó có tương quan. & NBSP;

Trường hợp 2: Khi các biến độc lập có nhiều hơn hai giá trị

ANOVA (Phân tích phương sai)

Chúng tôi sẽ chỉ định nhiều tiền lương hơn cho & nbsp; ____ 11, mức lương trung bình cho & nbsp; ____ 12 và mức lương thấp cho & nbsp; ____ 15. Bằng cách này, chúng tôi sẽ nhận được một số mối tương quan giữa trống và tiền lương.

  • Mức lương trung bình của & nbsp; ________ 11 & nbsp; là 90 với độ lệch chuẩn là năm.

  • Mức lương trung bình của & nbsp; ________ 12 & nbsp; là 70 với độ lệch chuẩn là năm.

  • Mức lương trung bình của & nbsp; ________ 15 & nbsp; là 50 với độ lệch chuẩn là năm. is 50 with a standard deviation of five.

num1=np.random.normal(loc=90,scale=5,size=100)
df1=pd.DataFrame(num1,columns=['Salary'])
df1['Type']='EmpType1'

num2=np.random.normal(loc=70,scale=5,size=100)
df2=pd.DataFrame(num2,columns=['Salary'])
df2['Type']='EmpType2'

num3=np.random.normal(loc=50,scale=5,size=100)
df3=pd.DataFrame(num3,columns=['Salary'])
df3['Type']='EmpType3'

df=pd.concat([df1,df2,df3],axis=0)

from scipy import stats

F, p = stats.f_oneway(df[df.Type=='EmpType1'].Salary,
                      df[df.Type=='EmpType2'].Salary,
                      df[df.Type=='EmpType3'].Salary)

print(F)

Đầu ra chúng tôi nhận được là: 1443.6261 & nbsp;

  • Vì mức lương trung bình của ba & nbsp; loại nhân viên là 90, 70 và 50 & nbsp; (với độ lệch chuẩn là năm) điểm F là 1444.F score is 1444.
  • Nếu mức lương trung bình của ba & nbsp; loại nhân viên là 60, 55, 50 điểm F là 86.F score is 86.
  • Và nếu mức lương trung bình & nbsp; của ba & nbsp; loại nhân viên là 51, 50, 49 (gần như giống nhau) thì điểm F sẽ gần với 0, & nbsp; tức là. Không có mối tương quan.F score will be close to 0, i.e. there's no correlation.
  • Điểm F lớn hơn & nbsp; giá trị càng cao thì tương quan sẽ càng cao.

Bạn có thể tải xuống và chạy đầy đủ mã từ liên kết này.

Tương quan (hình học dự án) Python (ngôn ngữ) Python (language)

Ý kiến ​​được thể hiện bởi những người đóng góp Dzone là của riêng họ.