实验1 贝叶斯分类【机器学习】

简介: 实验1 贝叶斯分类【机器学习】

步骤



代码

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc, precision_recall_curve
from sklearn.model_selection import train_test_split
import pdb
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.naive_bayes import GaussianNB
from sklearn.preprocessing import label_binarize
matplotlib.rc("font", family='kaiti')
def ReadData():
    X = load_iris()['data']
    Y = load_iris()['target']
    random_state = np.random.RandomState(0)
    n_samples, n_features = X.shape  # n_samples==150,n_features==4
    X = np.c_[X, random_state.randn(n_samples, 10 * n_features)]
    return X, Y
def Train_LogisticRegression_Model(X, Y):
    pass
def PLOT_PR(recall, precision):
    # 作图
    plt.title('P-R曲线')
    plt.ylabel('查准率(R)', fontsize=10)
    plt.xlabel('查全率(P)', fontsize=10)
    plt.plot(recall, precision)
    plt.show()
def PLOT_ROC(FPR, TPR, ROC_AUC):
    # print("画图")
    # 作图
    plt.title('TPR-FPR曲线')
    plt.ylabel('正正例率(TPR)', fontsize=10)
    plt.xlabel('假正例率(FPR)', fontsize=10)
    plt.plot(FPR, TPR)
    plt.show()
def ReadData():
    # step 1 read dataset
    X = load_iris()['data']
    Y = load_iris()['target']
    # step 2 data division
    X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2)
    return X_train, Y_train, X_test, Y_test
def import_GaussianNB(x_train, y_train, x_test, y_test):
    # step 3 build a model
    clf = GaussianNB()
    # step 4 training
    clf.fit(x_train, y_train.ravel())  # 利用训练数据进行训练
    # step 5 testing
    y_hat1 = clf.predict(x_test)
    y_score = clf.predict_proba(x_test)
    fpr, tpr, roc_auc = dict(), dict(), dict()
    precision, recall = dict(), dict()
    Y_test = label_binarize(y_test, classes=[0, 1, 2])  # shape==(150,3)
    K = 1
    # pdb.set_trace()
    for i in range(y_score.shape[1]):
        precision[i], recall[i], _ = precision_recall_curve(Y_test[:, i], y_score[:, i])
        fpr[i], tpr[i], _ = roc_curve(Y_test[:, i], y_score[:, i])
        roc_auc[i] = auc(fpr[i], tpr[i])
    # visualization
    PLOT_ROC(fpr[K], tpr[K], roc_auc[K])
    PLOT_PR(recall[K], precision[K])
    result = y_hat1 == y_test
    print(result)
    acc = np.mean(result)
    print('准确度:%.2f%%' % (100 * acc))
if __name__ == '__main__':
    X_train, Y_train, X_test, Y_test = ReadData()
    import_GaussianNB(X_train, Y_train, X_test, Y_test)
相关文章
|
11天前
|
机器学习/深度学习
如何用贝叶斯方法来解决机器学习中的分类问题?
【10月更文挑战第5天】如何用贝叶斯方法来解决机器学习中的分类问题?
|
17天前
|
机器学习/深度学习 存储 自然语言处理
【机器学习】基于逻辑回归的分类预测
【机器学习】基于逻辑回归的分类预测
|
5天前
|
机器学习/深度学习 算法 数据可视化
机器学习的核心功能:分类、回归、聚类与降维
机器学习领域的基本功能类型通常按照学习模式、预测目标和算法适用性来分类。这些类型包括监督学习、无监督学习、半监督学习和强化学习。
11 0
|
17天前
|
机器学习/深度学习 传感器 算法
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
|
2月前
|
机器学习/深度学习 人工智能 算法
【人工智能】机器学习、分类问题和逻辑回归的基本概念、步骤、特点以及多分类问题的处理方法
机器学习是人工智能的一个核心分支,它专注于开发算法,使计算机系统能够自动地从数据中学习并改进其性能,而无需进行明确的编程。这些算法能够识别数据中的模式,并利用这些模式来做出预测或决策。机器学习的主要应用领域包括自然语言处理、计算机视觉、推荐系统、金融预测、医疗诊断等。
52 1
|
2月前
|
机器学习/深度学习 算法
【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
67 1
|
2月前
|
存储 机器学习/深度学习 PyTorch
深入理解GPU内存分配:机器学习工程师的实用指南与实验
给定一个模型架构、数据类型、输入形状和优化器,你能否计算出前向传播和反向传播所需的GPU内存量?
36 0
|
2月前
|
机器学习/深度学习
如何用贝叶斯方法来解决机器学习中的分类问题?
如何用贝叶斯方法来解决机器学习中的分类问题?
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–4 机器学习LGB 方案
在讯飞英文学术论文分类挑战赛中使用LightGBM模型进行文本分类的方案,包括数据预处理、特征提取、模型训练及多折交叉验证等步骤,并提供了相关的代码实现。
44 0
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
397 1