zoukankan      html  css  js  c++  java
  • 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中的不同特征名称,我的数据集是这样,如果你没有特征名称,最好对其进行标记,这样会更加有效。

  • 相关阅读:
    Swift协议+代理
    socket编程详解
    Sublime Text 3下 Emmet 使用小技巧
    sublime text3 针对于前端开发必备的插件
    Emmet使用手册
    使用Emmet(前身Zen Coding)加速Web前端开发
    Emmet的高级功能与使用技巧
    RSS订阅推荐
    UIView中常见的方法总结
    技术博客rss订阅源收集
  • 原文地址:https://www.cnblogs.com/lyck/p/15240089.html
Copyright © 2011-2022 走看看