from sklearn.decomposition import PCA pca = PCA(n_components=17) pca.fit(X) print(pca.explained_variance_ratio_) [0.17513053,0.12941834,0.11453698,0.07323991,0.05889187,0.05690304, 0.04869476,0.0393374,0.03703477,0.03240863,0.03062932,0.02574137, 0.01887462,0.0180381,0.01606983,0.01453912,0.01318003] sum(pca.explained_variance_ratio_) X_NEW = pca.transform(X) X_NEW X_NEW.shape X_train,X_test,y_train,y_test = train_test_split(X_NEW,y,test_size=0.20,random_state=123) rf = RandomForestClassifier(max_depth=5) rf.fit(X_train, y_train) y_prob = rf.predict_proba(X_test)[:, 1] y_pred = np.where(y_prob > 0.5, 1, 0) rf.score(X_test, y_pred) confusion_matrix(y_test, y_pred) metrics.roc_auc_score(y_test, y_pred) from sklearn.metrics import roc_curve, auc false_positive_rate, true_positive_rate, thresholds = roc_curve(y_test, y_prob) roc_auc = auc(false_positive_rate, true_positive_rate) import matplotlib.pyplot as plt plt.figure(figsize=(10, 10)) plt.title('ROC') plt.plot(false_positive_rate, true_positive_rate, color='red', label='AUC = %0.2f' % roc_auc) plt.legend(loc='lower right') plt.plot([0, 1], [0, 1], linestyle='--') plt.axis('tight') plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.show() 这段代码的意思
时间: 2024-03-11 16:46:18 浏览: 155
PCA.zip_PCA散点图_Python PCA_python pca 画图_python 图_降维
这段代码是一个使用PCA进行特征降维,并且使用随机森林分类器进行二分类任务,并且计算ROC曲线和AUC的示例。首先,导入了PCA类,通过指定n_components参数为17进行初始化,并且使用fit方法对数据集X进行拟合,然后通过打印explained_variance_ratio_属性展示了每个主成分占总方差的比例。接着,使用transform方法将数据集X降维为X_NEW,并且打印降维后的数据形状。然后,使用train_test_split方法将数据集划分为训练集和测试集,并且导入了随机森林分类器的实现类RandomForestClassifier,并且通过指定max_depth参数为5进行初始化。接着,使用fit方法对训练数据进行训练,并且使用predict_proba方法获取测试集的预测概率,使用np.where方法将预测概率大于0.5的标记为1,否则标记为0,并且使用score方法计算测试集的准确率,使用confusion_matrix方法计算混淆矩阵,使用roc_auc_score方法计算AUC值。最后,导入计算ROC曲线和AUC的方法roc_curve和auc,并且使用测试数据和模型预测概率进行计算得到false_positive_rate、true_positive_rate和roc_auc。最后,使用matplotlib库绘制ROC曲线并且展示。
阅读全文