有没有哪里提供了机器学习数据挖掘算法的基本实现
目前公开可以使用的,在机器学习和数据挖掘领域的算法包有很多。根据不同的场景、使用者的不同知识背景(主要是编程语言),都有对应的,可以快速使用的算法库。下面介绍比较流行的python机器学习库scikit-learn。
scikit-learn
对于ML领域的Pythoner来说,scikit-learn这个包肯定是必不可少会用到的。Scikit-learn项目最早由 David Cournapeau发起的,专门针对机器学习应用而发展起来的一款开源框架。
Scikit-learn主要包括四大领域的算法集,每一个类型都有若干种不同的算法。
- 分类算法
包括常用的逻辑回归、支持向量机、各种决策树算法(C4.5,ID3,CART)、多种分布的朴素贝叶斯算法(高斯分布、伯努利分布),神经网络(主要是多层感知机,不过scikit-learn并不是一个深度学习库,所以这里的神经网络并不好用) 等等。
- 回归算法
主要支持向量回归(SVR),岭回归,Lasso回归,弹性网络(Elastic Net)和一些线性回归模型等。
聚类
scikit-learn基本上包含了各种类型的聚类算法,具体包括:K-均值聚类,谱聚类,层次聚类,DBSCAN等。
流形学习
流形学习最常见的用法就是对高维数据可视化的时候用于降维,scikit-learn中集成了著名的t-sne,isomap等算法。
除了以上单一的各类算法之外,scikit-learn集成了在数据竞赛中常用的一种“套路",并且抽象成了一个统一的方法-ensemble method。提供了bagging方法、boost方法的基础API,可以简单的通过多个分类器构建一个ensemble 模型。
其次,作为一个拥有庞大开源社区的机器学习库,scikit-learn覆盖了模型构建的方方面面,除了算法,也提供了数据预处理的相关操作、模型的各类评估方法、模型或特征的选择算法等,能够在实际工作中极大的提升工作效率,缩短模型训练、调参、特征工程的时间消耗。
综上,scikit-learn是一个居家旅行竞赛工作都非常给力的机器学习框架。
* 如果觉得有用,麻烦关注啦!
如何使用数据挖掘方法处理时间序列数据
谢邀。时间序列数据是在特定时间点记录的一系列数据点,通常以规则的时间间隔(秒,小时,天,月等)记录。
每个组织每天都会生成大量时间序列数据,无论是销售额,收入,流量还是运营成本。
时间序列数据挖掘可以为长期业务决策生成有价值的信息,但在大多数组织中它们未得到充分利用。以下是利用时间序列数据集的几种可能的数据挖掘方法:
趋势分析
一般单单根据时间绘制数据可以产生非常强大的数据模型,时间序列数据的一个非常基本的用途就是理解被测量的时间模式/趋势。在企业中,它甚至可以提供关于典型商业周期总体方向的早期预测方法。
异常值/异常检测
时间数据集中的异常值表示异常。无论是否需要(例如利润率)(例如成本),在数据集中检测到的异常值可以帮助防止意外后果。
检查冲击/意外变化
时间序列数据可以识别变化(预期或意外)和异常,检测噪声中的信号。
关联分析
通过绘制双变量/多变量时态数据,很容易(只是在视觉上)识别任何两个特征之间的关联(例如,利润与销售)。这种关联可能会也可能不会暗示因果关系,但这是在更高级的统计分析中选择影响输出变量的输入特征的良好起点。
预测分析
使用历史数据预测未来值是一种常见的方法论方法 - 从简单的外推到复杂的随机方法,如ARIMA。譬如像高级统计分析(如面板数据模型(固定和随机效应模型))严重依赖于多变量纵向数据集。这些类型的分析有助于业务预测,识别解释变量,或仅帮助理解数据集中要素之间的关联。
我会在这里发布所有与科技、科学有关的有趣文章,欢迎订阅我的头条号。偶尔也回答有趣的问题,有问题可随时在评论区回复和讨论。
(码字不易,若文章对你帮助可点赞支持~)
数据挖掘的分类及各种分析方法是怎样的
我做数据挖掘相关的工作很多了。简单来谈一下个人对这个问题的看法。有说的不对的地方,欢迎各位同行批评指正:
数据挖掘大概可以分成四类问题,问题不一样,对应的处理方法也不同
1.预测问题:建模数据集合中有X和Y,Y是连续变量。通常用线性模型、随机森林、xgboost算法来解决。评估主要基于测试集上的均方误差或者相对误差。或者计算cross-validation的平均均方误差或者相对误差
2.分类为题:建模数据集合中有X和Y,Y是类别变量。通常用logistic回归、cart、随机森林、xgboost来解决。评估主要基于测试集合上的准确率和召回率或者计算cross-validation的平均准确率或召回率
3.聚类问题:建模数据集合只有X,没有Y。需要把X里面的样本分成多个群组。一般采用K-MEANS算法。不过业界没有统一的评估标准
4.异常检测问题:建模数据集合只有X,没有Y。需要把X数据里面的异常点找出来。这个相对而言比较麻烦。一般用Isolation Forest。业界似乎也没有统一的评价标注。