sklearn中各种分类模型

Multinomial Naive Bayes Classifier

from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB(alpha=0.01)
clf.fit(train_x, train_y)

KNN Classifier

from sklearn.neighbors import KNeighborsClassifier
clf = KNeighborsClassifier()
clf.fit(train_x, train_y)

Logistic Regression Classifier

from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(penalty=‘l2’)
clf.fit(train_x, train_y)

Random Forest Classifier

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=8)
clf.fit(train_x, train_y)

Decision Tree Classifier

from sklearn import tree
clf = tree.DecisionTreeClassifier()
clf.fit(train_x, train_y)

GBDT(Gradient Boosting Decision Tree) Classifier

from sklearn.ensemble import GradientBoostingClassifier
clf = GradientBoostingClassifier(n_estimators=200)
clf.fit(train_x, train_y)

SVM Classifier

from sklearn.svm import SVC
clf = SVC(kernel=‘rbf’, probability=True)
clf.fit(train_x, train_y)

### sklearn分类模型的评价指标 #### 准确率 (Accuracy) 准确率是指预测正确的样本占总样本的比例。对于二元分类问题,可以通过 `sklearn.metrics.accuracy_score` 来计算。 ```python from sklearn.metrics import accuracy_score y_true = [0, 1, 1, 0, 1] y_pred = [0, 1, 0, 0, 1] accuracy = accuracy_score(y_true, y_pred) print(f'Accuracy: {accuracy}') ``` 此方法适用于数据集中正负样本相对平衡的情况[^3]。 #### 精确率 (Precision) 精确率衡量的是预测为正类的样本中有多少是真正的正类。可以利用 `sklearn.metrics.precision_score` 计算该值: ```python from sklearn.metrics import precision_score precision = precision_score(y_true, y_pred) print(f'Precision: {precision}') ``` 当误判正类样本代价较高时应优先考虑这个度量标准。 #### 召回率 (Recall) 召回率指的是实际为正类的样本中被正确识别出来的比例。使用 `sklearn.metrics.recall_score` 获取这一数值: ```python from sklearn.metrics import recall_score recall = recall_score(y_true, y_pred) print(f'Recall: {recall}') ``` 在不允许有太多漏诊情况发生的应用场景下非常重要。 #### F1 分数 (F1 Score) F1 分数综合考量了精确率和召回率的表现,特别适合处理类别分布不均的数据集。借助于 `sklearn.metrics.f1_score` 实现其计算过程如下所示: ```python from sklearn.metrics import f1_score f1 = f1_score(y_true, y_pred) print(f'F1 score: {f1}') ``` 它能够在两者间找到较好的折衷方案。 #### ROC 曲线与 AUC 值 接收者操作特征曲线(ROC)展示了不同阈值设置下真阳性率(TPR)相对于假阳性率(FPR)的变化趋势;曲线下方区域即为AUC(Area Under Curve),反映了整体区分能力的好坏程度。可通过 `sklearn.metrics.roc_curve` 和 `sklearn.metrics.auc` 得到这两个参数的具体表现形式: ```python import numpy as np from sklearn.metrics import roc_curve, auc fpr, tpr, thresholds = roc_curve(y_true, scores) auc_value = auc(fpr, tpr) plt.plot(fpr, tpr, label=f'AUC={np.round(auc_value, decimals=2)}') plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver Operating Characteristic Curve') plt.legend() plt.show() ``` 其中`scores`代表每个测试实例属于正类别的概率估计值[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值