# -*- coding: utf-8 -*-
# @FileName: LDA(线性判别分析)
# @Software: PyCharm
# @Author : changli Xu
# @Time :2020//12//17 15:00
'''
西瓜书课后题3.5
(线性判别分析)
'''
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 读取3.5例题中的数据集
data_list = pd.read_csv('dataset3.0.csv')
# print(data_list)
# 读取数据集中的西瓜的两个属性值(密度和含糖量)
data = np.array(data_list.iloc[:, 0:-1])
# print(data)
# 将属性值属于1得好瓜得样本数据保存在X0中(即保存前8行)
# 先读取所需要的行数X0_
X0_ = np.array(data_list.iloc[:8])
# print(X0_)
# 再读取所需要得列数
X0 = X0_[:, 0:2]
# print(X0)
# 将属性值属于0得坏瓜得样本数据保存在X1中(即保存后9行)
# 先读取所需要的行数X0_
X1_ = np.array(data_list.iloc[8:])
# print(X1_)
# 再读取所需要得列数
X1= X1_[:, 0:2]
# print(X1)
'''
先求X0样本好瓜的均值
'''
# 第一属性密度的均值和第二属性含糖率的均值
sumX0_1 = 0
sumX0_2 = 0
averX0_1 = 0
averX0_2 = 0
for i in X0:
sumX0_1 += i[0]
sumX0_2 += i[1]
averX0_1 = sumX0_1 / len(X0)
averX0_2 = sumX0_2 / len(X0)
'''
先求X1样本坏瓜的均值
'''
# 第一属性密度的均值和第二属性含糖率的均值
sumX1_1 = 0
sumX1_2 = 0
averX1_1 = 0
averX1_2 = 0
for i in X1:
sumX1_1 += i[0]
sumX1_2 += i[1]
averX1_1 = sumX1_1 / len(X1)
averX1_2 = sumX1_2 / len(X1)
'''
求X0样本好瓜的协方差矩阵(重点)
'''
cov_X0 = []
cov_X0_1 = []
cov_X0_2 = []
# a,d分别表示两个属性的方差
# b,c分别表示两个属性的协方差矩阵
a = 0
b = 0
c = 0
d =
西瓜书课后题3.5 (线性判别分析)
最新推荐文章于 2023-07-27 22:56:21 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)