接上文
注意事项:
关于评估器、解释器、转化器等名词的辨析:
其实这一组概念广泛存在于不同的算法库和算法框架中,但不同的算法库对其的定义各有不同,并且sklearn对其定义也并不清晰。因此,为了统一概念,称所有的sklearn中类的调用为评估器的调用,而不区分评估器与转化器。
sklearn中的构建机器学习流
所谓机器学习流,其实就指的是将多个机器学习的步骤串联在一起,形成一个完整的模型训练流程。
在sklearn中,我们可以借助其make_pipline类的相关功能来实现,当然需要注意的是,sklearn中只能将评估器类进行串联形成机器学习流,而不能串联实用函数,并且最终串联的结果其实也等价于一个评估器。当然,这也从侧面说明sklearn评估器内部接口的一致性。
from sklearn.pipeline import make_pipeline
make_pipeline?
可以通过如下方式将模型类进行机器学习流的集成。需要注意的是,只有模型类才能参与构建机器学习流,而实用函数不行。
在make_pipeline中输入评估器的过程同时对评估器类进行参数设置
pipe = make_pipeline(StandardScaler(),LogisticRegression(max_iter=1000))
数据集切分
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
pipe对象看成是一个完整的模型类(一个可以先执行Z-Score标准化再进行逻辑回归建模的模型),直接使用fit对其进行训练
pipe.fit(X_train, y_train)
该过程就相当于两个评估器都进行了训练,然后我们即可使用predict方法,利用pipe对数据集进行预测,当然实际过程是先(借助训练数据的统计量)进行归一化,然后再进行逻辑回归模型预测。
pipe.predict(X_test)
pipe.score(X_test, y_test)
pipe.score(X_train, y_train)
sklearn的模型保存
模型构建完毕之后,即可借助joblib包来进行sklearn的模型存储和读取,相关功能非常简单,可以使用dump函数进行模型保存,使用load函数进行模型读取
import joblib
joblib.dump?
joblib.dump(pipe,'pipe.model')
pipe1 = joblib.load('pipe.model')
pipe1.score(X_train, y_train)
网友评论