自学教程 学编程从这里开始

常用数据类型

机器学习里,数据集根据业务含义,通常分为四大类:数值型、分类型、序数型、文本型。不同类型的数据,对应的特征处理方式差异很大,是特征工程的基础。

1. 数值型(Numerical Data)

数值型数据代表数量,可以进行大小比较和数学运算,分为连续数值和离散数值。

  • 连续数值:取自一段区间内的任意数值,一般由测量得到。

    示例:身高、体重、温度、房价、收入
  • 离散数值:只能取特定数值,大多是计数结果。

    示例:购买数量、页面访问次数、样本数量

适合直接送入回归类模型训练;数值的大小、差值都具备实际意义。

示例代码:

import pandas as pd
df = pd.DataFrame({
    "身高": [165.2, 172.5, 178.1],
    "购买数量": [2, 1, 5]
})
print(df.dtypes)

2. 分类型(Nominal Data,名义型)

分类型数据用于标记类别,类别之间不存在大小、先后顺序关系。
示例:性别、颜色、城市、商品品类

只能判断是否相等,不能比较大小,例如不能认为“红色>蓝色”。
原始字符串无法直接输入模型,常规处理方案:独热编码(OneHot)。

注意区分序数型:名义分类只有类别标识,没有顺序。

3. 序数型(Ordinal Data)

同样属于类别数据,但类别之间存在天然顺序,类别之间的间隔无法量化。
示例:评价等级(差、一般、良好、优秀)、学历、服装尺码 S/M/L/XL

可以比较顺序:优秀>良好,但是不能认定“优秀 − 良好 = 良好 − 一般”。
常规处理方案:标签编码(LabelEncoder)映射为 0,1,2,3 这类数字。

4. 文本型(Text Data)

自然语言字符串,内容长度不固定。
示例:用户评论、新闻标题、对话记录、产品描述

原始文本不能直接交给模型,需要文本特征工程。
常规处理方案:词袋模型、TF-IDF、词嵌入(Word Embedding)。

四种类型对比表

类型是否可比较大小是否可做加减运算常见处理方式
数值型✅✅标准化、归一化
分类型(名义)❌❌OneHot 独热编码
序数型✅❌标签编码
文本型❌❌TF-IDF、词向量

完整示例:Pandas 查看数据类型

import pandas as pd

data = {
    "体重": [55.2, 62.3, 70.1],          # 数值型
    "城市": ["杭州","宁波","温州"],        # 分类型
    "满意度": ["差","良好","优秀"],        # 序数型
    "评论": ["很不错","一般般","不推荐"]    # 文本型
}
df = pd.DataFrame(data)
print(df.dtypes)

小结

  1. 数值型:支持加减运算;
  2. 名义分类型:仅代表类别,无顺序;
  3. 序数型:存在顺序,但差值无意义;
  4. 文本型:自然语言,需要单独做特征提取。

新手常见问题:直接将字符串分类数据传入 sklearn,模型无法识别,必须先编码转换。

思考题

  1. 周一、周二、周三属于分类型还是序数型?
  2. 颜色编号:1=红,2=蓝,3=黄,能不能直接当成数值型训练?为什么?
  3. 归一化一般针对哪一类数据?

0 条笔记