美文网首页
特征工程

特征工程

作者: 纵春水东流 | 来源:发表于2021-05-03 16:04 被阅读0次

一、目录
1、onehot编码
(1)单词级ont-hot编码
(2)字符级ont-hot编码
(3)keras实现单词级的ont-hot编码
(4)使用散列技巧的单词级的ont-hot编码
2、词嵌入

二、代码
1、onehot编码
(1)单词级ont-hot编码

import numpy as np
samples = ['The cat sat on the mat.', 'The dog ate my homework.']

#构建标记索引
token_index = {}
for sample in samples:
  for word in sample.split():
    if word not in token_index:
      token_index[word] = len(token_index) + 1

max_length = 10
results = np.zeros(shape=(len(samples),max_length,max(token_index.values()) + 1))
for i, sample in enumerate(samples):
  for j, word in list(enumerate(sample.split()))[:max_length]:
    index = token_index.get(word)
    results[i, j, index] = 1.

(2)字符级ont-hot编码

import string
samples = ['The cat sat on the mat.', 'The dog ate my homework.']
characters = string.printable#所有可打印的ASCII字符
token_index = dict(zip(range(1, len(characters) + 1), characters))

max_length = 50
results = np.zeros((len(samples), max_length, max(token_index.keys()) + 1))
for i, sample in enumerate(samples):
  for j, character in enumerate(sample):
    index = token_index.get(character)
    results[i, j, index] = 1.

(3)keras实现单词级的ont-hot编码

from keras.preprocessing.text import Tokenizer

samples = ['The cat sat on the mat.', 'The dog ate my homework.']
tokenizer = Tokenizer(num_words=1000)
tokenizer.fit_on_texts(samples)

sequences = tokenizer.texts_to_sequences(samples)

one_hot_results = tokenizer.texts_to_matrix(samples, mode='binary')
word_index = tokenizer.word_index

print('Found %s unique tokens.' % len(word_index))

(4)使用散列技巧的单词级的ont-hot编码

samples = ['The cat sat on the mat.', 'The dog ate my homework.']
dimensionality = 1000
max_length = 10
results = np.zeros((len(samples), max_length, dimensionality))
for i, sample in enumerate(samples):
  for j, word in list(enumerate(sample.split()))[:max_length]:
    index = abs(hash(word)) % dimensionality#将单词散列为0~1000的随机数索引
    results[i, j, index] = 1.

2、词嵌入
词嵌入的获得有两种方式,一种在做任务的时候顺便获得词嵌入,使用其他来源的词嵌入
(1)在完成任务时候训练的词嵌入

from keras.datasets import imdb
from keras.layers import preprocessing
max_features = 10000
maxlen = 20

(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)
x_train = preprocessing.sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)

from keras.models import Sequential
from keras.layers import Flatten, Dense, Embedding
model = Sequential()
model.add(Embedding(10000, 8, input_length=maxlen))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])
model.summary()

history = model.fit(x_train, y_train,epochs=10,batch_size=32,validation_split=0.2

(2)使用GloVe词嵌入文件

相关文章

  • 2018-04-03-机器学习相关

    No.1 特征工程 (1)使用sklearn做单机特征工程 - jasonfreak - 博客园 (2)特征工程实...

  • 机器学习之特征工程

    目录大纲 特征工程是什么? 特征工程的重要性 特征工程子问题:1.特征处理2.Feature Selection(...

  • 使用sklearn做单机特征工程

    使用sklearn做单机特征工程 | 转载 使用sklearn做单机特征工程 目录1 特征工程是什么?2 数据预处...

  • 特征工程

    http://www.cnblogs.com/jasonfreak/p/5448385.html

  • 特征工程

    特征工程  我们做比赛的初衷是想在比赛中锻炼用深度学习模型解决实际问题的能力。所以我们做特征工程时更多的考虑了深度...

  • 特征工程

    目录 1 特征工程是什么?2 数据预处理2.1 无量纲化2.1.1 标准化2.1.2 区间缩放法2.1.3 标准化...

  • 特征工程

    数据和特征的质量决定了机器学习的上限,而模型和算法只是不断逼近这个上限而已 数据清洗 数据样本抽样 异常值(空值处...

  • 特征工程

  • 特征工程

    首先,给一张特征工程的思维导图: 【如果要浏览图片,建议将其下载到本地,使用图片浏览软件查看】 关于特征工程(Fe...

  • 特征工程

    Feature Enginnering 应用机器学习的本质是特征工程。通过特征工程,我们能持续地提升效果,而模型算...

网友评论

      本文标题:特征工程

      本文链接:https://www.haomeiwen.com/subject/xsbfdltx.html