鸢尾花数据-朴素贝叶斯、PCA,高斯混合聚类

佚名 / 2024-10-11 / 原文

目录
    • 1.导入相关模块
    • 2.导入数据和画图
    • 3.分割数据
  • 有监督学习示例:鸢尾花数据分类
    • 4.高斯朴素贝叶斯
  • 无监督学习示例:鸢尾花数据降维
    • 5.PCA数据降维
  • 无监督学习示例:鸢尾花数据聚类
    • 6. 高斯混合模型

1.导入相关模块

import numpy as np
imprort pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns; sns.set()

2.导入数据和画图

iris=pd.read_rsv('iris.csv')
iris.head()
sns.pairplot(iris, hue='species', size=1.5);

3.分割数据


X_iris = iris.drop('species', axis=1)
X_iris.shape
y_iris = iris['species']
y_iris.shape

有监督学习示例:鸢尾花数据分类

4.高斯朴素贝叶斯


from sklearn.cross_validation import train_test_split
Xtrain, Xtest, ytrain, ytest = train_test_split(X_iris, y_iris,
random_state=1)

from sklearn.naive_bayes import GaussianNB # 1.选择模型类
model = GaussianNB() # 2.初始化模型
model.fit(Xtrain, ytrain) # 3.用模型拟合数据
y_model = model.predict(Xtest) # 4.对新数据进行预测


from sklearn.metrics import accuracy_score
accuracy_score(ytest, y_model)


无监督学习示例:鸢尾花数据降维

5.PCA数据降维


from sklearn.decomposition import PCA # 1.选择模型类
model = PCA(n_components=2) # 2.设置超参数,初始化模型
model.fit(X_iris) # 3.拟合数据,注意这里不用y变量
X_2D = model.transform(X_iris) # 4. 将数据转换为二维


iris['PCA1'] = X_2D[:, 0]
iris['PCA2'] = X_2D[:, 1]
sns.lmplot("PCA1", "PCA2", hue='species', data=iris, fit_reg=False);

无监督学习示例:鸢尾花数据聚类

6. 高斯混合模型


from sklearn.mixture import GMM # 1.选择模型类
model = GMM(n_components=3,
covariance_type='full') # 2.设置超参数,初始化模型
model.fit(X_iris) # 3.拟合数据,注意不需要y变量
y_gmm = model.predict(X_iris) # 4. 确定簇标签
iris['cluster'] = y_gmm
sns.lmplot("PCA1", "PCA2", data=iris, hue='species',
col='cluster', fit_reg=False);