博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scikit-learn预处理实例之一:使用FunctionTransformer选择列
阅读量:6270 次
发布时间:2019-06-22

本文共 1828 字,大约阅读时间需要 6 分钟。

本例展示怎样在一个管道中使用FunctionTransformer.如果你知道你的数据集的第一主成分与分类任务无关,你可以使用FunctionTransformer选取除PCA转化的数据的第一列之外的全部数据.

673170-20161005211332645-1774843661.png

673170-20161005211344785-902254067.png

# coding:utf-8from pylab import *import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.decomposition import PCAfrom sklearn.pipeline import make_pipelinefrom sklearn.preprocessing import FunctionTransformermyfont = matplotlib.font_manager.FontProperties(fname="Microsoft-Yahei-UI-Light.ttc")mpl.rcParams['axes.unicode_minus'] = Falsedef _generate_vector(shift=0.5, noise=15):    return np.arange(1000) + (np.random.rand(1000) - shift) * noisedef generate_dataset():    """    本数据集是两条斜率为1的直线,一个截距为0,一个截距为100    """    return np.vstack((        np.vstack((            _generate_vector(),            _generate_vector() + 100,        )).T,        np.vstack((            _generate_vector(),            _generate_vector(),        )).T,    )), np.hstack((np.zeros(1000), np.ones(1000)))def all_but_first_column(X):    return X[:, 1:]def drop_first_component(X, y):    """    创建一个具有PCA(主成分分析)和列选择器的管道,    并使用它转换数据集    """    pipeline = make_pipeline(        PCA(), FunctionTransformer(all_but_first_column),    )    X_train, X_test, y_train, y_test = train_test_split(X, y)    pipeline.fit(X_train, y_train)    return pipeline.transform(X_test), y_testif __name__ == '__main__':    X, y = generate_dataset()    lw = 0    plt.figure()    plt.scatter(X[:, 0], X[:, 1], c=y, lw=lw)    plt.title(u"FunctionTransformer选择数据列",fontproperties=myfont)    plt.figure()    X_transformed, y_transformed = drop_first_component(*generate_dataset())    plt.scatter(        X_transformed[:, 0],        np.zeros(len(X_transformed)),        c=y_transformed,        lw=lw,        s=60    )    plt.title(u"FunctionTransformer选择数据列",fontproperties=myfont)    plt.show()

转载于:https://www.cnblogs.com/taceywong/p/5933002.html

你可能感兴趣的文章
JDK源代码学习系列07----Stack
查看>>
firefox
查看>>
PS批处理的使用
查看>>
七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 【转】
查看>>
Quartz作业调度框架
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>
js-权威指南学习笔记13
查看>>
《超级时间整理术》晨读笔记
查看>>
Spring Boot 2.0(二):Spring Boot 2.0尝鲜-动态 Banner
查看>>
Delphi IdTCPClient IdTCPServer 点对点传送文件
查看>>
Delphi中使用ActiveX的一些心得
查看>>
QT5.8.0+MSVC2015安装以及环境配置(不需要安装VS2015)
查看>>
(原創) C/C++的function prototype和header file (C/C++) (C)
查看>>
深入理解JavaScript系列(29):设计模式之装饰者模式
查看>>
程序员的罪与罚
查看>>
SQL*LOADER错误总结
查看>>
SQL日志收缩
查看>>
【转】MySQL Query Cache 小结
查看>>
SVN分支和合并的简单例子
查看>>
PHP实现的封装验证码类
查看>>