线性判别函数-批处理感知器算法实现

本博客包括了批处理感知器算法、Ho-Kashyap算法和MSE多类扩展方法

readData.py

import pandas as pd
import numpy as np


class readData(object):

    def __init__(self, io='../数据集.xlsx'):
        """
        io:数据集路径 excel格式
        """
        df = pd.read_excel(io='../数据集.xlsx')
        all_data = df.values  # 所有数据 特征+标签
        self.data = all_data[:, 0:2]  # 提取特征集
        self.label = all_data[:, 2]  # 提取标签
        self.trn_dataA = []
        self.trn_dataB = []
        self.classA = 0
        self.classB = 0
        # print(np.max(all_data), np.min(all_data))
        # print(self.data)
        # print(self.label)

    def get_train_data(self, classA=1, classB=2):
        self.classA = classA
        self.classB = classB
        trn_dataA = np.array([self.data[i] for i in range(len(self.data)) if self.label[i] == classA])
        trn_dataB = np.array([self.data[i] for i in range(len(self.data)) if self.label[i] == classB])
        # print(trn_dataA, trn_dataB)
        """取classA为正类,classB为负类,并进行增广"""
        X1 = np.hstack((np.ones((trn_dataA.shape[0], 1)), trn_dataA))  # 每行都插入1
        X2 = -1 * np.hstack((np.ones((trn_dataB.shape[0], 1)), trn_dataB))  # 每行插入1后取负值(负类
        X = np.vstack((X1, X2))  # 得到增广矩阵

        self.trn_dataA = trn_dataA
        self.trn_dataB = trn_dataB
        return X

    def getMSEdata(self):
        '''选择每类的前八个为训练集,后两类为测试集'''
        trn_x = np.array([self.data[i:i + 8] for i in [0, 10, 20, 30]])
        trn_y = np
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值