如何解决Cross_val_score Python sklearn.model 中的类型错误
我正在创建一个神经网络,使用计算机视觉来区分恶性和良性皮肤肿瘤。我想用 sklearn.model_selection.cross_val_score(estimator,X,y=None,*,groups=None,scoring=None,cv=None,n_jobs=None,verbose=0,fit_params=None,pre_dispatch='2*n_jobs',error_score=nan)
执行 k 折验证,但我认为我遇到的错误是我不知道如何正确输入 y 参数。Error Description
在一个 excel 文件中,我按列列出了以下参数:image_namepatient_id esion_id sex age_approx anatom_site_general_challenge 诊断目标 path_jpegExcell display
我想我应该在参数y中输入每个图像的目标值,但我不知道该怎么做。
在训练和测试的图像文件夹中,每个类总共只有 584 张图像,而在 excel 中有 33126 张图像。Input images
非常感谢您,如果帖子没有正确编写和解释,我很抱歉,这是我做的第一个,我愿意接受批评和学习。最好的问候。
data_excel = pd.read_csv('C:/Users/Vicral/Desktop/TFG/Udemy/Deep Learning A-Z/Ejemplo con jupiter/M/ISIC_2020_Training_GroundTruth_v2 (1).csv')
df1_styler = data_excel.head().style.set_table_attributes("style='display:inline'").set_caption('Head Train Data')
display_html(df1_styler._repr_html_(),raw=True)
train_datagen = ImageDataGenerator(rescale = 1./255,shear_range = 0.2,zoom_range = 0.2,horizontal_flip = True)
training_set = train_datagen.flow_from_directory('M/Train2',target_size = (64,64),batch_size = 50,class_mode = 'binary')
test_datagen = ImageDataGenerator(rescale = 1./255)
test_set = test_datagen.flow_from_directory('M/Test2',class_mode = 'binary')
cnn = tf.keras.models.Sequential()
cnn.add(tf.keras.layers.Conv2D(filters=32,kernel_size=3,activation='relu',input_shape=[64,64,3]))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
cnn.add(tf.keras.layers.Conv2D(filters=32,activation='relu'))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
cnn.add(tf.keras.layers.Flatten())
cnn.add(tf.keras.layers.Dense(units=128,activation='relu'))
cnn.add(tf.keras.layers.Dense(units=1,activation='sigmoid'))
cnn.compile(optimizer = 'adam',loss = 'binary_crossentropy',metrics = 'accuracy')
cnn.fit(x = training_set,validation_data = test_set,epochs = 10,shuffle=False,verbose=1)
# define the iterator to perform 5-fold cross-validation
from sklearn.model_selection import KFold
kf = KFold(n_splits=5)
# perform cross-validation on X,y
from sklearn.model_selection import cross_val_score
results = cross_val_score(cnn,training_set,None,cv=kf)
# print the result
print(f"Final cross-validation Loss = {abs(results.mean()):.4f}")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。