K近邻、朴素贝叶斯以及分类模型评估

    科技2024-08-11  30

    K近邻算法

    K-近邻定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别; 距离计算公式:欧式距离、曼哈顿距离等; sklearn k-近邻算法API:sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’),其中n_neighbors是指查询使用的邻居数;algorithm:默认值auto,尝试根据传递给fit方法的值来决定最合适的算法; 在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别; 距离计算公式:欧式距离、曼哈顿距离等; sklearn k-近邻算法API:sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’),其中n_neighbors是指查询使用的邻居数;algorithm:默认值auto,尝试根据传递给fit方法的值来决定最合适的算法; k-近邻算法优缺点:优点包括简单,易于理解,易于实现,无需估计参数,无需训练;缺点是懒惰算法,对测试样本分类时的计算量大,内存开销大以及K值必须选择; 应用场景:小数据场景,几千~几万样本;

    朴素贝叶斯算法

    朴素贝叶斯算法定义:是基于贝叶斯定理与特征条件独立假设的分类算法,对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y; 贝叶斯算法重要基础:联合概率分布P(X,Y),条件概率P(X|Y); sklearn 贝叶斯算法API:sklearn.naive_bayes.MultinomialNB(alpha=1.0) 拉普拉斯平滑系数(alpha):解决某一类别在某一个特征值上统计为零的情况; 贝叶斯算法优缺点:优点包括:朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率;对缺失数据不太敏感,算法也比较简单,常用于文本分类;分类准确度高,速度快;缺点:需要知道先验概率P(F1,F2,…|C),因此在某些时候会由于假设的先验 模型的原因导致预测效果不佳;

    分类模型的评估

    混淆矩阵:在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多分类) sklearn 分类评估:sklearn.metrics.classification_report(y_true, y_pred, target_names=None) 精确率与召回率:Precision:预测结果为正例样本中真实为正例的比例(查得准);Recall:真实为正例的样本中预测结果为正例的比例(查的全,对正样本的区分能力);

    模型的选择与调优

    交叉验证:首先将全部样本划分成k个大小相等的样本子集;依次遍历 这k个子集,每次把当前子集作为验证集,其余所有子集作为训练集,进行模型的 训练和评估;最后把k次评估指标的平均值作为最终的评估指标; 网格搜索:查找搜索范 围内的所有的点来确定最优值。如果采用较大的搜索范围以及较小的步长,网格 搜索有很大概率找到全局最优值: skearn 网格搜索API:sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None),best_score_:在交叉验证中测试的最好结果;best_estimator_:最好的参数模型:cv_results_:每次交叉验证后的测试集准确率结果和训练集准确率结果;

    Processed: 0.012, SQL: 8