Python编程如何判别线性


本文摘自php中文网,作者零到壹度,侵删。

本次的这篇文章主要是和大家分享了关于Python编程如何判别线性 ,有需要的小伙伴可以看一下。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

"""

Author: Victoria

Created on: 2017.9.15 11:45

"""

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

def LDA(X0, X1):

    """

    Get the optimal params of LDA model given training data.

    Input:

        X0: np.array with shape [N1, d]

        X1: np.array with shape [N2, d]

    Return:

        omega: np.array with shape [1, d]. Optimal params of LDA.

    """

    #shape [1, d]

    mean0 = np.mean(X0, axis=0, keepdims=True)

    mean1 = np.mean(X1, axis=0, keepdims=True)

    Sw = (X0-mean0).T.dot(X0-mean0) + (X1-mean1).T.dot(X1-mean1)

    omega = np.linalg.inv(Sw).dot((mean0-mean1).T)

    return omega

if __name__=="__main__":

    #read data from xls

    work_book = pd.read_csv("../data/watermelon_3a.csv", header=None)

    positive_data = work_book.values[work_book.values[:, -1] == 1.0, :]

    negative_data = work_book.values[work_book.values[:, -1] == 0.0, :]

    print (positive_data)

    #LDA

    omega = LDA(negative_data[:, 1:-1], positive_data[:, 1:-1])

    #plot

    plt.plot(positive_data[:, 1], positive_data[:, 2], "bo")

    plt.plot(negative_data[:, 1], negative_data[:, 2], "r+")

    lda_left = 0

    lda_right = -(omega[0]*0.9) / omega[1]

    plt.plot([0, 0.9], [lda_left, lda_right], 'g-')

    plt.xlabel('density')

    plt.ylabel('sugar rate')

    plt.title("LDA")

    plt.show()


相关推荐:

线性判别分析简明入门教程

线性判别分析

以上就是Python编程如何判别线性 的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python字符串中的换行符和制表符介绍

Python 元类实例解析_Python

Python把二维数组输出为图片的方法

Python中关于前后缀操作的详解

Python如何将字母转化为数字

Python序列循环移位的3种方法

Python六种数据类型是什么?

Python爬虫获取图片并下载保存至本地

Python换行符是什么

Python的链表数据结构讲解

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...