本次主要考虑在给定的两类各5000*57样例中,每类中随机抽取1000个样例进行LDA训练,最后拿剩下的样例进行测试,最后输出错误率。关于线性判别分析的原理和推导可见【meachine learning】线性判别分析(LDA),下面给出具体的代码实现。
# -*- coding: utf-8 -*-
from numpy import *
import csv
from matplotlib import pyplot as plt
import math
def load_data(): #读取csv文件
dataSet1=[];dataSet2=[];label1=[];label2=[];dataSet=[]
with open('dataSet.csv') as file:
lines=csv.reader(file)
for line in lines:
dataSet.append(line)
for line in dataSet:
lineArr=[]
if(int(line[-1])==1):
for i in range(56):
lineArr.append(float(line[i]))
dataSet1.append(lineA