实战一维卷积(Conv1D):kaggle叶子分类问题
通过例子理解:
(1)一维卷积是如何工作的;
(2)输入数据是如何构建的;
在csv文件中,数据集或者特征集的保存方式nxm,其中n为样本个数,m为特征个数。这里有3类特征,64个magin特征, 64个shape特征, 64个texture特征。m=192.
这里有一篇比较详细解释代码的博客:用Keras实现简单一维卷积 ,亲测可用一维卷积实例,及Kaggle竞赛代码解读
需要的数据可以在kaggle上下载,上面的那篇文章也有下载链接。
直接看代码:
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import StratifiedShuffleSplit
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten, Convolution1D, Dropout
from keras.optimizers import SGD
from keras.utils import np_utils
train = pd.read_csv('../input/train.csv')
test = pd.read_csv('../input/test.csv')
def encode(train, test):
label_encoder = LabelEncoder().fit(train.species)
labels = label_encoder.transform(train.species)
classes = list(label_encoder.classes_)
train = train.drop(['species', 'id'], axis=1)
test = test.drop('id', axis=1)
return train, labels, test, classes
train, labels, test, classes = encode(train, test)
# standardize train features
scaler = StandardScaler().fit(train.values)</