pytorch搭建MLP实现wine数据集分类(内含源码)

该博客介绍了如何使用Python和PyTorch对葡萄酒数据集进行预处理,包括降维和数据加载。然后,构建了一个两层多层感知器(MLP)模型,并使用SGD优化器和交叉熵损失函数进行训练。训练过程中的损失和准确率进行了可视化。最后,对模型进行了测试并展示了测试准确率。
摘要由CSDN通过智能技术生成

数据集

wine数据集包含三种葡萄酒类别,总共178个样本,每个样本具有13个特征,样本数据格式如下图所示。
在这里插入图片描述

数据读取及预处理

从wine.data中读取数据(loadDateSet)并进行降维(LL)处理

def loadDateSet(filename):
 dataMat = []
 labelMat = []
 fr = open(filename)
 for line in fr.readlines():
    curLine = line.strip().split(',')
    fltline = list(map(float,curLine[1:]))
    dataMat.append(fltline)
    labelline = int(curLine[0])
    labelMat.append(labelline)
 return np.array(dataMat),np.array(labelMat)

def LL(x,y):
    x_norm = preprocessing.normalize(x,norm = 'l2')
    lda = LinearDiscriminantAnalysis(n_components=2)
    x_new = lda.fit_transform(x_norm,y)
    return x_new```

构建tensor格式训练集及测试集

构建tensor数据集函数(Data.TensorDataset)

dataMat, labelMat = loadDateSet('wine.data')
dataMat = LL(dataMat,labelMat)
pindex=np.random.permutation(dataMat.shape[0])
dataMat = dataMat[pindex,:]
labelMat = labelMat[pindex]
dataMat = torch.from_numpy(dataMat)
labelMat = torch.from_numpy(labelMat)
torch_dataset = Data.TensorDataset(dataMat[28:], labelMat[28:])
loader = Data.DataLoader(
    dataset=torch_dataset,
    batch_size=15,
    shuffle=True,
    num_workers=2
)
torch_testset = Data.TensorDataset(dataMat[0:27], labelMat[0:27])
loader2 = Data.DataLoader(
    dataset=torch_testset,
    batch_size=29,
    shuffle=True,
    num_workers=2
)

搭建MLP

class MLP(torch.nn.Module):
    def __init__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DogerLiKe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值