Python 如何将分类报告和混淆矩阵输出导出为pdf或excel文件

Python 如何将分类报告和混淆矩阵输出导出为pdf或excel文件,python,pdf,scikit-learn,seaborn,xlsx,Python,Pdf,Scikit Learn,Seaborn,Xlsx,在下面的代码中,我想: 将classification\u报告和cm的值导出到excel.xlsx文件 将classification\u报告和cm的图像导出到pdf文件 运行我的代码,分类报告和混乱矩阵(cm)如下所示(参见下图)。但是,我想做第1和第2步 完整代码: #libraries import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from sklearn.model_select

在下面的代码中,我想:

  • classification\u报告
    cm
    的值导出到excel
    .xlsx
    文件

  • classification\u报告
    cm
    的图像导出到
    pdf
    文件

  • 运行我的代码,
    分类报告
    混乱矩阵(cm)
    如下所示(参见下图)。但是,我想做第1和第2步

    完整代码:

    #libraries
    
    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    from sklearn.model_selection import train_test_split
    from xgboost import XGBClassifier
    from sklearn.metrics import accuracy_score
    from sklearn.preprocessing import StandardScaler
    from sklearn.metrics import classification_report
    from sklearn.metrics import confusion_matrix
    
    #import data
    
    df=pd.read_csv('https://gist.githubusercontent.com/curran/a08a1080b88344b0c8a7/raw/0e7a9b0a5d22642a06d3d5b9bcbad9890c8ee534/iris.csv', delimiter=",")
    
    
    X = df.loc[:,df.columns!='species'] 
    y = df.loc[:,df.columns == 'species']
    
    # split into train and test sets
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=69876)
    
    # train classifier and predict on test set 
    model = XGBClassifier()
    model.fit(X_train,y_train)
    y_pred = model.predict(X_test)
    
    print(classification_report(y_test,y_pred)) #   
    cm =confusion_matrix(y_test, y_pred) #
    print(cm) 
    sns.heatmap(cm, annot=True) 
    plt.show()
    
    #libraries
    
    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    from sklearn.model_selection import train_test_split
    from xgboost import XGBClassifier
    from sklearn.metrics import accuracy_score
    from sklearn.preprocessing import StandardScaler
    from sklearn.metrics import classification_report
    from sklearn.metrics import confusion_matrix
    
    #import data
    
    df=pd.read_csv('https://gist.githubusercontent.com/curran/a08a1080b88344b0c8a7/raw/0e7a9b0a5d22642a06d3d5b9bcbad9890c8ee534/iris.csv', delimiter=",")
    
    
    X = df.loc[:,df.columns!='species'] 
    y = df.loc[:,df.columns == 'species']
    
    # split into train and test sets
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=69876)
    
    # train classifier and predict on test set 
    model = XGBClassifier()
    model.fit(X_train,y_train)
    y_pred = model.predict(X_test)
    
    print(classification_report(y_test,y_pred)) #   
    cm =confusion_matrix(y_test, y_pred) #
    print(cm) 
    sns.heatmap(cm, annot=True) 
    plt.show()