(file_path, embed_dim=8, test_size=0.2)
| 9 | return {'feat': feat} |
| 10 | |
| 11 | def create_criteo_dataset(file_path, embed_dim=8, test_size=0.2): |
| 12 | data = pd.read_csv(file_path) |
| 13 | |
| 14 | dense_features = ['I' + str(i) for i in range(1, 14)] |
| 15 | sparse_features = ['C' + str(i) for i in range(1, 27)] |
| 16 | |
| 17 | #缺失值填充 |
| 18 | data[dense_features] = data[dense_features].fillna(0) |
| 19 | data[sparse_features] = data[sparse_features].fillna('-1') |
| 20 | |
| 21 | #归一化 |
| 22 | data[dense_features] = MinMaxScaler().fit_transform(data[dense_features]) |
| 23 | #LabelEncoding编码 |
| 24 | for col in sparse_features: |
| 25 | data[col] = LabelEncoder().fit_transform(data[col]).astype(int) |
| 26 | |
| 27 | feature_columns = [[denseFeature(feat) for feat in dense_features]] + \ |
| 28 | [[sparseFeature(feat, data[feat].nunique(), embed_dim) for feat in sparse_features]] |
| 29 | print(feature_columns[:2]) |
| 30 | X = data.drop(['label'], axis=1).values |
| 31 | y = data['label'] |
| 32 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size) |
| 33 | |
| 34 | return feature_columns, (X_train, y_train), (X_test, y_test) |
| 35 | |
| 36 | |
| 37 |
no test coverage detected