【问题标题】:Crossing categorical features that are stored as integers交叉存储为整数的分类特征
【发布时间】:2020-10-17 09:48:56
【问题描述】:

我正在试验以下数据集:

https://archive.ics.uci.edu/ml/datasets/Teaching+Assistant+Evaluation

数据集信息: 这些数据包括对威斯康星大学麦迪逊分校统计系的 151 名助教 (TA) 作业的三个常规学期和两个夏季学期的教学绩效评估。分数被分为 3 个大致相等的类别(“低”、“中”和“高”)以形成类变量。

属性信息:

  • 助教是否以英语为母语(二进制); 1=说英语的人,2=不会说英语的人
  • 课程讲师(分类,25个类别)
  • 课程(分类,26个类别)
  • 夏季或常规学期(二进制)1=夏季,2=常规
  • 班级规模(数字)
  • 类属性(分类)1=低,2=中,3=高

数据如下:

1,23,3,1,19,3
2,15,3,1,17,3
1,23,3,2,49,3
1,5,2,2,33,3
2,7,11,2,55,3
2,23,3,1,20,3
2,9,5,2,19,3
...

我想跨越 2 个功能(

dataset_bin['courseHasNativeTA'] = dataset_con['courseHasNativeTA'] = dataset_con['engNativ'] + dataset_con['course']

plt.style.use('seaborn-whitegrid')
fig = plt.figure(figsize=(20,10)) 
sns.countplot(y="courseHasNativeTA", data=dataset_bin);

我得到以下输出:

问题是这似乎没有意义,因为课程应该从 1 到 26 来标识,但它从 2 到 28。我怀疑问题出在 engNativ 和 course 被视为数字特征这一事实而不是分类。

在这种情况下交叉特征是否有意义? 对此有任何见解吗?谢谢

【问题讨论】:

    标签: python pandas dataframe jupyter-notebook seaborn


    【解决方案1】:

    我猜你所说的交叉是指创建一个新类别。读取文件时可以指定列的类:

    df = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/tae/tae.data",
                     names=['engNativ','Course_instr','Course','semester','size','attr'],
                     dtype={'engNativ':object,'Course':object})
    

    那么这将起作用:

    df['courseHasNativeTA'] = df['engNativ']+df['Course']
    
    plt.style.use('seaborn-whitegrid')
    fig = plt.figure(figsize=(20,10)) 
    sns.countplot(y="courseHasNativeTA", data=df)
    

    或者你可以考虑这个:

    fig = plt.figure(figsize=(8,8)) 
    sns.countplot(y="Course",hue="engNativ", data=df)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 2013-11-08
      • 2020-07-04
      • 2021-11-09
      • 1970-01-01
      • 2014-02-28
      相关资源
      最近更新 更多