美文网首页
操练代码之PCA主成分分析

操练代码之PCA主成分分析

作者: 万州客 | 来源:发表于2024-08-21 14:50 被阅读0次

    PCA分析

    一,代码

    import torch
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from kmeans_pytorch import kmeans
    from torch.autograd import Variable
    import torch.nn.functional as F
    from torch.utils.data import DataLoader, TensorDataset
    import time
    from sklearn.decomposition import PCA
    
    region = pd.read_csv('./主成分分析/region.csv')
    region_d = region[['x1', 'x2', 'x3', 'x4']]
    region['target'] = region['y']
    
    transfer_1 = PCA(n_components=2)
    region_d = transfer_1.fit_transform(region_d)
    x = torch.from_numpy(region_d)
    y = torch.from_numpy(np.array(region['target']))
    x, y = Variable(x), Variable(y)
    
    net = torch.nn.Sequential(
        torch.nn.Linear(2, 10),
        torch.nn.ReLU(),
        torch.nn.Linear(10, 3),
    )
    print(net)
    
    optimizer = torch.optim.SGD(net.parameters(), lr=1e-4)
    loss_func = torch.nn.CrossEntropyLoss()
    
    for t in range(100):
        out = net(x.float())
        loss = loss_func(out, y.long())
    
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
    
        if t % 25 == 0:
            plt.cla()
            prediction = torch.max(out, 1)[1]
            pred_y = prediction.data.numpy()
            target_y = y.data.numpy()
    
            plt.scatter(x.data.numpy()[:, 0],
                        x.data.numpy()[:, 1],
                        c=pred_y,
                        s=100,
                        lw=5,
                        cmap='coolwarm')
            accuracy = float((pred_y == target_y).astype(int).sum()) / float(target_y.size)
            print('Accuracy = %.2f'.format(accuracy))
            plt.pause(0.1)
    
        plt.show()
    
    
    

    二,效果


    2024-08-21 11_59_29-ch2 – 333.py.png

    相关文章

      网友评论

          本文标题:操练代码之PCA主成分分析

          本文链接:https://www.haomeiwen.com/subject/umvvkjtx.html