gpt4 book ai didi

python - TensorFlow 2.0 中神经网络的问题

转载 作者:行者123 更新时间:2023-12-01 06:23:47 25 4
gpt4 key购买 nike

import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib as plt
from sklearn.model_selection import train_test_split
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from sklearn.preprocessing import StandardScaler
import functools

LABEL_COLUMN = 'Endstage'
LABELS = [1, 2, 3, 4]
x = pd.read_csv('HCVnew.csv', index_col=False)


def get_dataset(file_path, **kwargs):
dataset = tf.data.experimental.make_csv_dataset(
file_path,
batch_size=35, # Artificially small to make examples easier to show.
label_name=LABEL_COLUMN,
na_value="?",
num_epochs=1,
ignore_errors=True,
**kwargs)
return dataset

SELECT_COLUMNS = ["Alter", "Gender", "BMI", "Fever", "Nausea", "Fatigue",
"WBC", "RBC", "HGB", "Plat", "AST1", "ALT1", "ALT4", "ALT12", "ALT24", "ALT36", "ALT48", "ALT24w",
"RNABase", "RNA4", "Baseline", "Endstage"]

DEFAULTS = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
temp_dataset = get_dataset("HCVnew.csv",
select_columns=SELECT_COLUMNS,
column_defaults=DEFAULTS)
def pack(features, label):
return tf.stack(list(features.values()), axis=-1), label

packed_dataset = temp_dataset.map(pack)

"""
for features, labels in packed_dataset.take(1):
print(features.numpy())
print()
print(labels.numpy())
"""

NUMERIC_FEATURES = ["Alter", "Gender","BMI", "Fever", "Nausea", "Fatigue",
"WBC", "RBC", "HGB", "Plat", "AST1", "ALT1", "ALT4", "ALT12", "ALT24", "ALT36", "ALT48", "ALT24w",
"RNABase", "RNA4", "Baseline", "Endstage"]


desc = pd.read_csv("HCVnew.csv")[NUMERIC_FEATURES].describe()

MEAN = np.array(desc.T['mean'])
STD = np.array(desc.T['std'])

def normalize_numeric_data(data, mean, std):
# Center the data
return (data-mean)/std



# See what you just created.
raw_train_data = get_dataset("HCVnew.csv")
raw_test_data = get_dataset("HCVnew.csv")

class PackNumericFeatures(object):
def __init__(self, names):
self.names = names

def __call__(self, features, labels):
numeric_freatures = [features.pop(name) for name in self.names]
numeric_features = [tf.cast(feat, tf.float32) for feat in numeric_freatures]
numeric_features = tf.stack(numeric_features, axis=-1)
features['numeric'] = numeric_features

return features, labels

NUMERIC_FEATURES = ["Alter", "Gender","BMI", "Fever", "Nausea", "Fatigue",
"WBC", "RBC", "HGB", "Plat", "AST1", "ALT1", "ALT4", "ALT12", "ALT24", "ALT36", "ALT48", "ALT24w",
"RNABase", "RNA4", "Baseline", "Endstage"]

packed_train_data = raw_train_data.map(
PackNumericFeatures(NUMERIC_FEATURES))

packed_test_data = raw_test_data.map(
PackNumericFeatures(NUMERIC_FEATURES))




normalizer = functools.partial(normalize_numeric_data, mean=MEAN, std=STD)

numeric_column = tf.feature_column.numeric_column('numeric', normalizer_fn=normalizer, shape=[len(NUMERIC_FEATURES)])
numeric_columns = [numeric_column]

numeric_layer = tf.keras.layers.DenseFeatures(numeric_columns)
preprocessing_layer = tf.keras.layers.DenseFeatures(numeric_columns)



#———————————————————————MODEL———————————————————————————————————————————————————————————————————————————————————————————

model = tf.keras.Sequential([
preprocessing_layer,
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid'),
])

model.compile(
loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])

data_x = get_dataset("HCVnew.csv")

train_data = data_x.shuffle(500)

model.fit(train_data, epochs=20)

您好,我正在尝试构建一个神经网络,可以根据包含患者信息的 csv 文件预测丙型肝炎,但我无法修复错误...我收到错误:KeyError 'Endstage',而 Endstage 是包含相应值(1 到 4 之间)并用作标签列的 csv 列。如果有人有可以解决我的问题的想法,请告诉我。非常感谢您的帮助!

最佳答案

这是因为 Endstage 是您的标签列,框架通过将其从数据集中删除(弹出)来为您提供帮助。否则,您的训练数据集也会包含目标类,从而使其无用。

将其从 NUMERIC_FEATURES 以及将其纳入训练集特征的任何其他位置中删除。

[编辑]

OP 在后续问题(在评论中)中询问为什么在解决最初的问题后,他收到了错误:

ValueError: Feature numeric is not in features dictionary

从表面上看,名为numeric的功能是通过调用PackNumericFeatures生成的。后者用于创建 packed_train_datapacked_test_data,但这些从未被使用过。然而这一行:

numeric_column = tf.feature_column.numeric_column('numeric', normalizer_fn=normalizer, shape=[len(NUMERIC_FEATURES)])

假设数据在那里 - 因此会出现错误。

关于python - TensorFlow 2.0 中神经网络的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60263100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com