Zhou Zhihua - Machine Learning Watermelon Book - Chapter 3 Exercise 3.5 LDA

Titled Machine Learning Watermelon Book Chapter 3 after-school exercises, programming to achieve logarithmic regression, the data set is the data on page 89 of the book

# coding=utf-8
# import flatten
import tensorflow as tf
from numpy import *
import  numpy as np
import matplotlib.pyplot as plt
def LDA(c1,c2):
        m1=mean(c1,axis=0)
        m2=mean(c2,axis=0)
        c=vstack((c1,c2))
        m=mean(c,axis=0)
        n1=c1.shape[0]
        n2=c2.shape[0]
        s1 = 0
        s2=0
        for i in range(n1):
            s1+=(c1[i,:]-m1).T*(c1[i,:]-m1)
        for i in range(n2):
            s2+= (c2[i, :] - m2).T * (c2[i, :] - m2)
        sw=(n1*s1+n2*s2)/(n1+n2)
        sb=((n1*(m-m1).T*(m-m1))+(n2*(m-m2)).T*(m-m2))/(n1+n2)
        a,b=np.linalg.eig(mat(sw).I*sb)
        index=np.argsort(-a)
        maxIndex=index[:1]
        w=b[:,maxIndex]
        return w
data = array([[0.697,0.460,1],
        [0.774,0.376,1],
        [0.634,0.264,1],
        [0.608,0.318,1],
        [0.556,0.215,1],
        [0.403,0.237,1],
        [0.481,0.149,1],
        [0.437,0.211,1],
        [0.666,0.091,0],
        [0.243,0.267,0],
        [0.245,0.057,0],
        [0.343,0.099,0],
        [0.639,0.161,0],
        [0.657,0.198,0],
        [0.360,0.370,0],
        [0.593,0.042,0],
        [0.719,0.103,0]])
x_train1=data[0:8,0:2]
a1=x_train1[:,0]
b1=x_train1[:,1]
print(a1)
x_train2=data[8:,0:2]
a2=x_train2[:,0]
b2 =x_train2[:,1 ]
 #before sample projection 
plt.scatter(a1,b1,label= ' + ' , color= ' g ' , s=25, marker= ' o ' )
plt.scatter(a2,b2,label=' - ', color='r', s=25, marker='o')
W=LDA(x_train1,x_train2)
print("w=",W)
k=W[1,0]/W[0,0]
plt.plot ([0, 1.5], [0,1.5 * k])
 # print (k) 
# new1 = (a1 * W [0,0]) 
# new2 = (b1 * W [0,0]) 
# new3 = (a2 * W [1,0]) 
# new4 = (b2 * W [1,0]) 
new1 = (a1 + k * b1) / (k * k + 1 )
new2 = k * new1
plt.plot(new1,new2,'*r')
new3=(a2+k*b2)/(k*k+1)
new4=k*new3
plt.plot(new3,new4,'*g')
plt.legend() #Set the legend 
plt.show()

 

 operation result:

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325226704&siteId=291194637