1 Star 0 Fork 0

wjx99/newprogess

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
pca.py 1.61 KB
一键复制 编辑 原始数据 按行查看 历史
wjx99 提交于 2024-06-25 19:22 . feat: finish progress
import torch
import numpy as np
from torch.utils.data import Dataset
from torch.utils.data import DataLoader
import pandas as pd
from sklearn.decomposition import PCA
class TfDataset(Dataset):
def __init__(self, filepath, save_filepath=None):
xy = np.loadtxt(filepath, delimiter=',', dtype=np.float32)
self.len = xy.shape[0] # shape(多少行,多少列)
self.x_data = torch.from_numpy(xy[:, :-1])
self.y_data = torch.from_numpy(xy[:, [-1]])
# 使用 PCA 进行降维
pca = PCA(n_components=12)
reduced_data = pca.fit_transform(self.x_data.numpy())
# 将降维后的数据设置为新的 x_data
self.x_data = torch.from_numpy(reduced_data)
# 将降维后的数据保存为 CSV 文件(如果提供了保存路径)
if save_filepath:
df_reduced = pd.DataFrame(reduced_data,
columns=['PC1', 'PC2', 'PC1', 'PC2', 'PC1', 'PC2', 'PC1', 'PC2', 'PC1',
'PC2', 'PC1', 'PC1'])
df_reduced['label'] = self.y_data.numpy()
df_reduced['dborgot'] = 0 # 添加一列值为0的列,代表为糖尿病数据集
df_reduced.to_csv(save_filepath, index=False)
def __getitem__(self, index):
return self.x_data[index], self.y_data[index]
def __len__(self):
return self.len
# 初始化数据集并保存降维后的数据为 CSV 文件
train_dataset = TfDataset('./diabetes_012_health_indicators_BRFSS2015.csv', save_filepath='./reduced_data.csv')
#
# train_dataset = tfDataset('../data/resample.csv')
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/wjx99520/newprogess.git
git@gitee.com:wjx99520/newprogess.git
wjx99520
newprogess
newprogess
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385