scikit-learn预处理实例之一:使用FunctionTransformer选择列

摘要:
此示例显示如何在管道中使用FunctionTransformer如果您知道数据集的第一个主要组件与分类任务无关,则可以使用FunctionTransform选择除PCA转换的第一列数据之外的所有数据。#编码:utf-8fromPyrabimport*importnumpyasnpfromsk-learn。型号选择导入列车测试拆分器

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

scikit-learn预处理实例之一:使用FunctionTransformer选择列第1张
scikit-learn预处理实例之一:使用FunctionTransformer选择列第2张

# coding:utf-8

from pylab import *
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.decomposition import PCA
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import FunctionTransformer


myfont = matplotlib.font_manager.FontProperties(fname="Microsoft-Yahei-UI-Light.ttc")
mpl.rcParams['axes.unicode_minus'] = False

def _generate_vector(shift=0.5, noise=15):
    return np.arange(1000) + (np.random.rand(1000) - shift) * noise


def 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_test


if __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()

免责声明:文章转载自《scikit-learn预处理实例之一:使用FunctionTransformer选择列》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ElasticSearch7.x 升级后SpringBoot连不上?android listview 的监听事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Makefile简介

一、为什么要写Makefile         首先要确定我们的目标,Makefile是用来干嘛的?         曾经很长时间我都是在从事Windows环境下的开发,所以根本不知道Makefile是个什么东西。因为早已经习惯了使用VS、Eclipse等等优秀的IDE做开发,只要点一个按钮,程序就可以运行啦。但是进入公司以后,从事的是Unix环境下的开发...

Web自动化测试之playwright:概述

playwright是由微软开发的Web UI自动化测试工具, 支持Node.js、Python、C# 和 Java语言,本文将介绍playwright的特性以及它的简单使用。 目录 playwright特性 安装 命令行工具 脚本录制 打开网页 截图 同步和异步API 浏览器 浏览器上下文 多页面 断言 playwright特性 play...

关于在vue里使用脚手架空行、空格会报错的问题

第一种方法:   重新用脚手架安装项目,在命令行里选择Use ESLint to lint your code?这项是输入  n   第二种方法: 找到build文件夹下的 webpack.base.config.js文件 打开注释到下面一段代码, var path = require('path')var utils = require('./utils...

docker pull 覆盖本地镜像问题

验证: $ docker images |grep cookdata test-cache 1.0.0 fededff87eb2 About a minute ago 6.2GB (base) [wu...

(一)SQL注入漏洞测试的方式总结

一、工具注入 1.SQLMap的作用 判断可注入的参数 判断可以用那种SQL注入技术来注入 识别出哪种数据库 根据用户选择,读取哪些数据(库、表、列、字段值...) 2.注入技术 【A】基于布尔的盲注(Boolean-Based Blind Injection): 可以根据返回页面判断条件真假的注入 【B】基于时间的盲注(Time-Based Bl...

手把手教你搭建卷积神经网络(CNN)

本文是基于吴恩达老师的《深度学习》第四课第一周习题所做,如果本文在某些知识点上描述得不够透彻的可以参见相关章节的具体讲解,同时极力推荐各位有志从事计算机视觉的朋友观看一下吴恩达老师的《深度学习》课程。1.卷积神经网络构成总的来说,卷积神经网络与神经网络的区别是增加了若干个卷积层,而卷积层又可细分为卷积(CONV)和池化(POOL)两部分操作(这两个重要概念...