python频谱分析库,谱聚类 python
典型的机器学习构造包括几个过程:1 .源数据ETL
2.数据预处理
3.特征选择
4.模型训练和验证。
以上四个步骤可以抽象为一个包含多个步骤的流水线式工作,从数据收集开始到输出我们需要的最终结果。因此,将上述步骤抽象出来,简化成流线型的工作流程是可行的。对于使用spark进行机器学习的用户来说,streamlined machine learning比单步独立建模更高效、更易用。
机器学习算法中流水线机制应用的根源在于新数据集(如测试集)上参数集的重复使用。
管道机制通过所有步骤的管道实现流式工作流。注:流水线机制更像是编程技巧的创新,而不是算法的创新。
接下来,让我们用一个具体的例子来演示sklearn库中强大的管道用法:
1.从panda加载数据集作为sklearn的PD。交叉验证从sklearn导入train _ test _ split。预处理导入标签编码器。
df=PD . read _ CSV( https://archive . ics . UCI . edu/ml/machine-learning-databases/
breast cancer-Wisconsin/wdbc . data ,header=none)# breast cancer Wisconsin Dataset,y=df.values [:2:],df.values [:1] # y为字符标签。
#使用LabelEncoder类将其转换为从0开始的数字编码器=LabelEncoder()。
y=encoder.fit_transform(y)
encoder.transform([M , B])
数组([1,0])
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=.2,random_state=0)
2.设计算法的流程。
可以放入流水线的步骤可能包括:需要特性标准化,可以作为第一步。
既然是量词,那么量词是必不可少的,自然是最后一个环节。
可以从sklearn添加数据降维(PCA)。预处理从sklearn导入标准scaler。分解从sklearn导入PCA。来自sklearn的linear _ model进口物流修正。管道导入管道。
pipe_lr=Pipeline([(sc ,StandardScaler()),
( pca ,PCA(n_components=2)),
( clf ,LogisticRegression(random _ state=1))
])
pipe_lr.fit(X_train,y_train)
print(测试精度:%.3f % pipe_lr.score(X_test,y_test)) #测试精度:0.947
管道对象接受由二元元组组成的列表。每个二元元组中的第一个元素是任意标识符字符串,我们用它来访问管道对象中的各个元素。二进制元组中的第二个元素是scikit-learn匹配的转换器或估计器。管道([(sc ,StandardScaler()),( pca ,PCA(n_components=2)),( clf ,LogisticRegression(random _ state=1))])
3.流水线执行过程分析
流水线的中间过程由sci kit-learn-adapted transformer组成,最后一步是估计器。比如上面的代码,StandardScaler和PCA transformer构成中间步骤,LogisticRegression是最终的估计器。
当我们执行pipe_lr.fit(X_train,y_train)时,首先由StandardScaler在训练集上执行fit和transform方法,转换后的数据传递给管道对象的下一步,即PCA()。与StandardScaler一样,PCA也执行fit和transform方法,最后将转换后的数据传输到LosigsticRegression。整个过程如下图所示:
参考文章:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。