机器学习(一)——sklearn 快速上手

欢迎转载,请注明出处:https://blog.csdn.net/tayhh/article/details/82082377

1.机器学习:监督学习、无监督学习、半监督学习、强化学习、遗传算法;

2.如何选择sklearn中的算法:

机器学习(一)——sklearn 快速上手_第1张图片

3.sklearn的强大数据库:datasets,可以load数据,也可以make数据,在上面实现算法是极好的;

4.通用学习模式(以监督学习为例):①数据分割成训练集、测试集;②创建estimator;③拟合训练数据;④预测:在测试集上用拟合好的etimator完成预估任务;⑤打印出预测值与真实值,观察;

机器学习(一)——sklearn 快速上手_第2张图片

5.model属性与功能:

除了4中的fit, predict功能, model还有一些属性经常会用到:①model.coef :model 中拟合函数的系数;②model.intercept : model中拟合函数与y轴的交点;③model.get_params : 获得model的参数;④model.score : 为model的预测打分,如model.scor(X_test, y_test, scoring='accuracy'), Classification task的scoring是accuracy, Regression task 的 scoring 是mean_squard_error

6.标准化数据:

除了模型、模型参数外,影响模型效果最大的因素是数据结构,不夸张的说,模型中,特征为王。

若各个feature的取值范围相去甚远,模型效果往往不如任意。所以,动手前需要先对数据进行标准化:

preprocessing.scale()

7.交叉验证:

①交叉验证是为了找到适合的模型,适合的参数,适合的数据结构;

②交叉验证用误差、精度,F1分数(不均衡样本)来判别好坏;

③看误差曲线,可以找到性价比最高的参数;精度,F1 分数曲线亦可;

④交叉验证的本质思想是:第一轮:将数据等分成n份,其中1份作为测试集,其余作为训练集;第二轮:选另1份作为测试集,剩下的作为训练集;。。。,进行n轮基本学习模式后,得到n个分数,求平均,作为这个model的分数;如:

cross_val_score(cv=10, scoring='accuracy')

⑤用交叉验证选择合适的参数:

validation_curve(SVC(),X,y,cv=10,param_name='gamma', param_range=param_range)

8.存储与提取model:

训练好的model, 可以存储起来,供之后调用,无需重复构建学习模式;

method 1 : pickle

pickle.dump(model, 'savefilepath')

pickle.load('savefilepath')

method 2 : joblib

joblib.dump(model, 'savefilepath')

joblib.load('savefilepath')

9.suggestions:

机器学习基础全无的同学请自行看周志华的西瓜书

10.上述完整代码已经上传github:

https://github.com/Tayhh/MachineLearning

 

你可能感兴趣的:(机器学习)