数据分析之审查回归算法
2018-01-27 09:23
375 查看
一、线性算法
1.线性回归
1.1 原理 :y = ax +b的升级版。
1.2 适用场景 :普遍适用,简单粗暴的算法
2.岭回归
2.1 原理 :改良的最小二乘估计法
2.2 适用场景 :病态数据拟合(损失部分信息,降低精度,换取更好的回归系数)
3.套索回归
3.1 原理 :和岭回归类似。惩罚函数是绝对值。
4.弹性网络回归
4.1 原理 :岭回归+套索回归。
二、非线性算法
1.K近邻(KNN)
1.1 原理 :按照距离预测结果
2.分类与决策树(CART)
3.支持向量机(SVM)
三、测试
In [24]:from matplotlib import pyplot from pandas import read_csv from sklearn.datasets import load_boston from sklearn.model_selection import KFold from sklearn.model_selection import cross_val_score from sklearn.linear_model import LinearRegression from sklearn.linear_model import Ridge from sklearn.linear_model import Lasso from sklearn.linear_model import ElasticNet from sklearn.neighbors import KNeighborsRegressor from sklearn.tree import DecisionTreeRegressor from sklearn.svm import SVR # 导入数据 boston = load_boston() # 将数据分为输入数据和输出结果 X = boston.data Y = boston.target num_folds = 10 seed = 7 kfold = KFold(n_splits=n_splits, random_state=seed) models = {} # 线性回归 models['LR'] = LinearRegression() # 岭回归 models['RD'] = Ridge() # 套索 models['LO'] = Lasso() # 弹性网络 models['EN'] = ElasticNet() # K近邻 models['KNN'] = KNeighborsRegressor() # 分类与决策树 models['DT'] = DecisionTreeRegressor() # 支持向量机 models['SVM'] = SVR() scoring = 'neg_mean_squared_error' results = [] for name in models: result = cross_val_score(models[name], X, Y, cv=kfold, scoring=scoring) results.append(result) msg = '%s: %.3f (%.3f)' % (name, result.mean(), result.std()) print(msg) # 图表显示 fig = pyplot.figure() fig.suptitle('Algorithm Comparison') ax = fig.add_subplot(111) pyplot.boxplot(results) ax.set_xticklabels(models.keys()) pyplot.show()
KNN: -107.287 (79.840) EN: -31.163 (22.706) LO: -34.468 (27.886) RD: -34.135 (45.951) SVM: -91.048 (71.102) LR: -34.763 (45.614) DT: -41.356 (31.795)
四、git与参考
git :https://coding.net/u/RuoYun/p/Python-of-machine-learning/git/tree/master
参考:https://read.douban.com/column/6939417/
相关文章推荐
- 偏最小二乘回归分析建模步骤的R实现(康复俱乐部20名成员测试数据)+补充pls回归系数矩阵的算法实现
- 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的
- [转载] 大数据常用的算法(分类、回归分析、聚类、关联规则)
- 数据分析之审查分类算法
- 数据结构与算法分析:Java语言描述 mobi格式
- python 数据科学 - 【回归分析】 ☞ 线性回归(2)
- 数据分析---线性回归
- 告别SEO盲人摸象,数据分析回归做站本质
- 数据挖掘十大经典算法(10) CART: 分类与回归树
- 数据挖掘算法(四)--线性回归
- 数据结构据与算法分析中的最大字数列求解问题
- python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据
- 数据挖掘学习笔记——十大算法之决策树算法、逻辑回归概述
- 如何转成libsvm支持的数据格式并做回归分析
- 数据挖掘常用算法优缺点分析
- 数据分析(工具篇)笔记---回归分析
- 数据挖掘十大经典算法--CART: 分类与回归树
- 算法分析经典数据,让你轻松KO算法!
- 数据挖掘算法:线性回归深度剖析
- [Matlab][数据挖掘算法][线性回归]