记录研究生封校生活的学习day23(第一篇)

68 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情

总计:今天是十月更文计划第二十二天,第四十三篇

特征工程

今天继续特征工程的学习

特征工程就类似就数据预处理,由数据清洗过程中,将用户的数据导入,然后进行数据预处理,特征工程,机器学习,模型评估。

在特征工程的学习工程中,主要是学习sklearn方法:

def dictvec():
    """
    字典数据抽取
    :return: None
    """
    # 实例化
    # sparse改为True,输出的是每个不为零位置的坐标,稀疏矩阵可以节省存储空间
    #矩阵中存在大量的0,sparse存储只记录非零位置,节省空间的作用
    dict = DictVectorizer(sparse=False)  # 把sparse改为True看看

    #每个样本都是一个字典,有三个样本
    # 调用fit_transform
    data = dict.fit_transform([{'city': '北京', 'temperature': 100},
                               {'city': '上海', 'temperature': 60},
                               {'city': '深圳', 'temperature': 30}])
    print(data)
    print('-' * 50)
    print(dict.get_feature_names_out())  # 字典中的一些类别数据,分别进行转换成特征
    print('-' * 50)
    print(dict.inverse_transform(data))  #去看每个特征代表的含义,逆转回去

    return None


dictvec()

输出的结果如下:

image.png

DictVectorizer的左右就是把数据类型变为one-hot编码。

one-hot编码在应对分类特征的过程中,有些特征值是离散的,无序的,要对这种进行特征数字化

男 01

女 10

篮球 001

足球 010

乒乓球 100

那么这样子男子篮球编码就为:01001

女子乒乓球编码就为:10100

sparse=False

表示稀疏度

为True表稀疏:

data = dict.fit_transform

.fit_transform表示对输入的样本进行自动处理

def couvec():
    # 实例化CountVectorizer
    # max_df, min_df整数:指每个词的所有文档词频数不小于最小值,出现该词的文档数目小于等于max_df
    # max_df, min_df小数:某个词的出现的次数/所有文档数量
    # min_df=2
    # 默认会去除单个字母的单词,默认认为这个词对整个样本没有影响
    vector = CountVectorizer(min_df=2)

    # 调用fit_transform输入并转换数据

    res = vector.fit_transform(
        ["life is  short,i like python life",
         "life is too long,i dislike python",
         "life is short"])

    # 打印结果,把每个词都分离了
    print(vector.get_feature_names())
    print('-'*50)
    print(res)
    print('-'*50)
    print(type(res))
    # 对照feature_names,标记每个词出现的次数
    print('-'*50)
    print(res.toarray())
    print('-'*50)
    #拿每个样本里的特征进行显示
    print(vector.inverse_transform(res))

输出结果如下:

image.png

vector = CountVectorizer(min_df=1)

在代码中较为重要,表示

max_df, min_df整数:指每个词的所有文档词频数不小于最小值,出现该词的文档数目小于等于max_df

max_df, min_df小数:某个词的出现的次数/所有文档数量

来进行切割划分,如果min_df=1表示输出的结果为:

image.png