分类问题

分类问题是监督学习的一个核心问题,它从数据中学习一个分类决策函数或分类模型(分类器(classifier)),对新的输入进行输出预测,输出变量去有限个离散值(有一套试卷并有标准答案,写完之后对照正确答案进行比对和学习)

  • 二分类问题(垃圾邮件、正常邮件)
  • 多分类问题(文章可以分为科技、军事、时政

核心算法:决策树、贝叶斯、SVM、逻辑回归

决策树

决策树:是一个树结构,每个非叶节点表示一个特征属性,每个分支边代表这个特征属性在某个值域上的输出,每个叶节点存放一个类别
决策过程:从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果
决策树特征选择:决策树构建过程中的特征选择是重要的一步。特征选择是决定用哪个特征来划分特征空间,特征选择是要选出对训练数据集具有分类能力的特征,这样可以提高决策树的学习效率

  • 信息熵:表示随机变量的不确定性,熵越大不确定性越大。
  • 信息增益:信息增益=信息熵(前)-信息熵(后)
  • 信息增益比:信息增益比=惩罚参数*信息增益。特征个数较多时,惩罚参数较小,特征个数较少时,惩罚参数较大
  • 基尼指数:表示集合的不确定性,基尼系数越大,表示不平等程度越高

理想的决策树有三种:叶子结点数最少,叶子节点深度最小,叶子节点数最少且叶子节点深度最小

在这里插入图片描述

贝叶斯分类

贝叶斯分类:贝叶斯分类是基于贝叶斯定理和属性特征条件独立性的分类方法
优点:
算法逻辑简单,易于实现
分类过程中时空开销小
缺点:
理论上,朴素贝叶斯模型与其他分类方法相比具与最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者数据之间相关性较大时,分类效果不好

在这里插入图片描述

SVM分类:

支持向量机是一种有监督学习方法,主要思想是建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力
SVM的优点:

  • 相对于其他训练分类算法不需要过多样本,并且由于SVM引入了核函数,所有SVM可以处理高维样本
  • 结构风险最小。这种风险是指分类器对问题真实模型的逼近与问题真实解之间的累积误差
  • 非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也叫惩罚变量)和核函数技术来实现,这一部分也正是SVM的精髓所在
逻辑回归

Logistic回归是一个分类算法,他可以处理二元分类以及多元分类。首先逻辑回归构造广义的线性回归函数,然后使用sigmoid函数g(z)将回归值映射到离散类别。
熵是随机变量不确定性的度量,不确定性越大,熵值就越大
最大熵原理指出,对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设
逻辑回归是最大熵的特殊情况(对数线性模型)

集成学习

集成学习通过将多个弱分类器集成在一起,使他们共同完成学习任务,构建一个强分类器。潜在哲学思想是“三个臭皮匠赛过诸葛亮”

  • bagging:基于数据随机重抽样的分类器构建方法
  • Boosting:基于错误提升分类器性能,通过集中关注被已有分类器分类错误的样本,构建新分类器

Bagging与Boosting
都采用采样-学习-组合的方式,不同在于:

  • Bagging中每个训练集互不相关,也就是每个基分类器互不相关,而Boosting中训练集要在上一轮的结果上进行调整,也使得其不能并行计算。
  • Bagging中预测函数是均匀平等的,但在Boosting中预测函数是加权的

优点:当先最先进的预测几乎都使用了算法集成。它比使用单个模型预测出来的结果要精确的多,在各大竞赛中得到了普遍应用
缺点:需要大量的维护工作
代表算法:随机森林、AdBoost

KNN

在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,Wine分类问题是一个经典的机器学习问题,旨在通过葡萄酒的化学特征来对葡萄酒进行分类。这个问题的数据集可以从`sklearn`库中获取,下面我将介绍如何使用决策树算法来解决这个问题,并对实验结果使用性能指标进行评估。 1. 数据准备:我们需要准备Wine数据集,包括葡萄酒的化学特征信息。可以从`sklearn`库中获取,或者从公开数据集中获取。 2. 数据预处理:对数据进行清洗、缺失值填充、特征编码等处理,使得数据适合机器学习算法的输入要求。 3. 数据划分:将数据集划分为训练集和测试集,通常采用的比例是70%的数据作为训练集,30%的数据作为测试集。 4. 模型训练:使用决策树算法对训练集进行训练,得到分类器模型。 5. 模型评估:使用测试集对分类器模型进行评估,计算分类准确率、精确率、召回率、F1值等指标,评估模型的性能。 6. 模型优化:根据评估结果对模型进行优化,包括调整算法参数、增加特征、尝试其他算法等方法。 7. 模型应用:将训练好的模型应用到新的葡萄酒数据上,进行分类预测。 常见的性能指标包括: - 准确率(Accuracy):分类正确的样本数占总样本数的比例。 - 精确率(Precision):真正例占预测为正例的比例。 - 召回率(Recall):真正例占实际为正例的比例。 - F1值(F1-score):综合考虑精确率和召回率的指标。 下面是使用决策树算法解决Wine分类问题的示例代码: ```python from sklearn.datasets import load_wine from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score # 加载Wine数据集 data = load_wine() X = data.data y = data.target # 划分数据集为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 初始化决策树分类器 clf = DecisionTreeClassifier() # 对训练集进行训练,得到分类器模型 clf.fit(X_train, y_train) # 对测试集进行预测,评估模型性能 y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) precision = precision_score(y_test, y_pred, average='macro') recall = recall_score(y_test, y_pred, average='macro') f1 = f1_score(y_test, y_pred, average='macro') print('Accuracy: {:.2f}'.format(accuracy)) print('Precision: {:.2f}'.format(precision)) print('Recall: {:.2f}'.format(recall)) print('F1-score: {:.2f}'.format(f1)) ``` 根据实验结果,我们可以看到决策树算法在Wine数据集上的表现还可以,但是还有提升空间,可以进一步优化算法参数或者尝试其他机器学习算法来提高分类器的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值