Python实现自组织映射神经网络

Minisom

之前做过一个对minisom的第三方开源库的介绍。

对相应的代码添加了注释:

导入各种库吧

# 导入库
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
import pandas as pd
from minisom import MiniSom
import math
import xlrd
from icecream import ic
from tqdm import tqdm
from openpyxl import load_workbook
import openpyxl
from time import time

第一步是导入数据的Function,这很简单就不解释了

# 传入数据成DataFrame的矩阵格式
def loaddata(datafile, num_name):
    df = pd.read_excel(datafile, sheet_name=num_name, index_col=0)   # 导入数据

    return df  # 返回值

由于代码不是很长,就没有按照模块来写了

然后是导入源文件及其标签。
说实话,在现实项目中,想要找到不同特征的标签是真的真的真的太难了!!!
不要问为什么,当你实践你就知道了~

# 导入原始数据
# 1.导入训练和测试数据集
datafile = "*********.xls"  # 原始数据文件名
# 2.导入标签数据
y = pd.DataFrame(pd.read_csv('label****.csv'))    # 读取你的标签数据或者原有的标签是最好的

yy = []   # 设置空矩阵

# 循环将标签导入yy矩阵中
for iy in range(y.shape[0]):
    Uy = y.iloc[iy, 0]
    yy.append(int(Uy))

y = yy   # 赋值给y

再读取每个sheet中的不同特征名称,我的数据集是这样,如果你没有特征名称,最好对其进行标记,这样会更加有效。

原文地址:https://www.cnblogs.com/lyck/p/15240089.html