机器学习

一.机器学习开发流程

1.获取数据   (公司本身就有,合作过来的数据,购买的数据)

2.数据的基本处理:pd去处理(缺失值,合并表。。。)

3.特征工程(特征进行处理)(重要)

4.找合适的算法进行预测  所谓模型=算法+数据得出来的

5.模型得评估,判定效果     

6.若评估没有合格:1.换算法 或者调参 2.特征工程

7.评估合格 上线使用,以API形式提供

二.数据的划分

数据 = 训练集 + 测试集 一般分类范围[70%,30%],[80%,20%],[75%,25%] 选择[75%,25%]最多

训练集:用于训练,构造模型

测试集:用于评估模型是否有效

数据划分API: from sklearn.model_selection import train_test_split

train_test_split(x,y,test_size=None,random_state=None)

x:数据集的特征值 

y:数据集的标签值 

test_size:测试集的大小,float类型 

random_state:随机数种子,不同的种子会造成不同随机采样的结果,相同的种子采样结果相同

return:x_train(训练集特征值), x_test(测试集特征值),y_train(训练集标签值),y_test(测试集标签值)

三.转换器和估计器

转换器

        fit_transform():输入数据,直接转换

        fit():输入数据,但不做事情 (计算平均值,方差等等)

        transform():进行数据的转换

估计器

        用于分类的估计器:

                    sklearn.neighbors k近邻

                    sklearn.naive_bayes 朴素贝叶斯

                    sklearn.linear_model.LogisticRegression 逻辑回归

                    sklearn.tree 决策树

        用于回归的估计器:

                    sklearn.linear_model.LinearRegression 线性回归

                    sklearn.linear_model.Ridge 岭回归

估计器使用流程:1.调用fit(x_train,y_train)传入训练集特征值,训练集标签值

                             2.输入测试集的数据(y_predict = predict(x_test) 得到模型的预测值) (预测准确率:score(x_test,y_test))


四.算法的分类

先将训练数据分为监督学习和非监督学习

监督学习:训练数据拥有标记信息得学习任务

非监督学习:训练数据没有标记信息得学习任务

监督学习

           1.分类(目标值是离散值得学习任务):k-近邻,朴素贝叶斯,决策树和随机森林,逻辑回归,神经网络

            2.回归(目标值是连续值得学习任务):线性回归,岭回归

            3.标注:隐马尔可夫模型

非监督学习

            聚类 : k-means

五.模型评估标准

准确率,精确率和召回率

精确率:预测结果为正例样本中真实为正例的比例(查得准)

召回率:真实为正例的样本中预测结果为正例的比例(查的对)

分类评估的API: from sklearn.metrics import classification_report(y_true,y_predict,target_names=None)

y_true:真实目标值

y_predict:预测目标值

target_names:目标类别名称

return:每个类别精确率和召回率

六:模型选择与调优

交叉验证和网格搜索

交叉验证:将拿到的训练集的数据,分成训练和验证

网格搜索:很多参数需要手动指定的(如k-近邻的k值),叫做超参数,每组超参数都采用交叉验证去进行评估,最后选择最优参数组合建立模型

超参数搜索API:from sklearn.model_selection import GridSearchCV(estimator,param_grid=None,cv=None)

estimator:估计器对象

param_grid:估计器参数{}字典形式

cv:指定几折交叉验证

结果分析:best_score_:最好的准确率

                  best_estimator_:最好的模型

                   cv_results_: 每次交叉验证后测试集准确率结果和训练集准确率结果

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