七月算法机器学习 6 特征工程 小案例

特征工程的特征提取实例 因为整个项目包中包括一个python3.7的lib库,文件太大,所以需要自己将linear.py和放到PyCharm项目中,有问题可以问我 立即下载

目录

加载数据

把datetime域切成 日期 和 时间 两部分

处理时间数据

统计一周各天的情况

一周各天的租赁情况

删除一些字段

特征向量化

标准化连续值特征

类别特征编码

把特征拼一起


Kaggle上有这样一个比赛:城市自行车共享系统使用状况。

https://www.kaggle.com/c/bike-sharing-demand

提供的数据为2年内按小时做的自行车租赁数据,其中训练集由每个月的前19天组成,测试集由20号之后的时间组成

数据和代码下载 https://download.youkuaiyun.com/download/moonlightpeng/12543907

加载数据

#先把数据读进来
import pandas as pd
data = pd.read_csv('kaggle_bike_competition_train.csv', header = 0, error_bad_lines=False)

把datetime域切成 日期 和 时间 两部分

# 处理时间字段
temp = pd.DatetimeIndex(data['datetime'])
data['date'] = temp.date
data['time'] = temp.time
data.head()

处理时间数据

时间那部分,好像最细的粒度也只到小时,所以我们干脆把小时字段拿出来作为更简洁的特征

# 设定hour这个小时字段
data['hour'] = pd.to_datetime(data.time, format="%H:%M:%S")
data['hour'] = pd.Index(data['hour']).hour
data[:10]

统计一周各天的情况

仔细想想,数据只告诉我们是哪天了,按照一般逻辑,应该周末和工作日出去的人数量不同吧。我们设定一个新的字段dayofweek表示是一周中的第几天。再设定一个字段dateDays表示离第一天开始租车多久了

# 我们对时间类的特征做处理,产出一个星期几的类别型变量
data['dayofweek'] = pd.DatetimeIndex(data.date).dayofweek

# 对时间类特征处理,产出一个时间长度变量
data['dateDays'] = (data.date - data.date[0]).astype('timedelta64[D]')

data[::1000]

一周各天的租赁情况

其实我们刚才一直都在猜测,并不知道真实的日期相关的数据分布对吧,所以我们要做一个小小的统计来看看真实的数据分布,我们统计一下一周各天的自行车租赁情况(分注册的人和没注册的人)

byday = data.groupby('dayofweek')
# 统计下没注册的用户租赁情况
byday['casual'].sum().reset_index()

非注册用户周末会突然增大10万左右

周末既然有不同,就单独拿一列出来给星期六,再单独拿一列出来给星期日

data['Saturday']=0
data.Saturday[data.dayofweek==5]=1

data['Sunday']=0
data.Sunday[data.dayofweek==6]=1

data[::500]

删除一些字段

从数据中,把原始的时间字段等踢掉

# remove old data features
dataRel = data.drop(['datetime', 'count','date','time','dayofweek'], axis=1)
dataRel.head()

 

特征向量化

我们这里打算用scikit-learn来建模。对于pandas的dataframe我们有方法/函数可以直接转成python中的dict。 另外,在这里我们要对离散值和连续值特征区分一下了,以便之后分开做不同的特征处理。

from sklearn.feature_extraction import DictVectorizer
# 我们把连续值的属性放入一个dict中
featureConCols = ['temp','atemp','humidity','windspeed','dateDays','hour']
dataFeatureCon = dataRel[featureConCols]
dataFeatureCon = dataFeatureCon.fillna( 'NA' ) #in case I missed any
X_dictCon = dataFeatureCon.T.to_dict().values() 

# 把离散值的属性放到另外一个dict中
featureCatCols = ['season','holiday','workingday','weather','Saturday', 'Sunday']
dataFeatureCat = dataRel[featureCatCols]
dataFeatureCat = dataFeatureCat.fillna( 'NA' ) #in case I missed any
X_dictCat = dataFeatureCat.T.to_dict().values() 

# 向量化特征
vec = DictVectorizer(sparse = False)
X_vec_cat = vec.fit_transform(X_dictCat)
X_vec_con = vec.fit_transform(X_dictCon)

标准化连续值特征

我们要对连续值属性做一些处理,最基本的当然是标准化,让连续值属性处理过后均值为0,方差为1。 这样的数据放到模型里,对模型训练的收敛和模型的准确性都有好处

from sklearn import preprocessing
# 标准化连续值数据  处理的是列,一列是一个特征数据集
scaler = preprocessing.StandardScaler().fit(X_vec_con)
X_vec_con = scaler.transform(X_vec_con)
X_vec_con[:5]  

类别特征编码

最常用的当然是one-hot编码咯,比如颜色 红、蓝、黄 会被编码为[1, 0, 0],[0, 1, 0],[0, 0, 1]

from sklearn import preprocessing
# one-hot编码
enc = preprocessing.OneHotEncoder()
enc.fit(X_vec_cat)
X_vec_cat = enc.transform(X_vec_cat).toarray()
X_vec_cat[:10]

把特征拼一起

 

把离散和连续的特征都组合在一起

import numpy as np
# combine cat & con features
X_vec = np.concatenate((X_vec_con,X_vec_cat), axis=1)
X_vec[:3]

最后的特征,前6列是标准化过后的连续值特征,后面是编码后的离散值特征

 

Innovus 安装全过程 【代码】Innovus 安装全过程。 阅读详情

相关推荐

视觉SLAM十四讲--第13讲 实践:设计SLAM系统(最详细的代码调试运行步骤)

最详细的代码调试运行避坑说明,也包含了我自己对代码的理解,如有理解错误的地方,欢迎指正交流。

记录和分享 1万+

机器学习-特征工程案例分析

数据决定了模型精度的上限,只有前期对原始数据理解、分析、处理透彻了,才能有助于后期的分类或回归模型的训练。特征工程数据字段(或特征)的理解,数据变量间关系分析,数据预处理中的异常值检测和缺失值填充,特征分析(特征筛选,特征构建等)。

科研心得 1786

STM32实战:如何快速移植野火PID调试助手协议到你的电机控制项目

本文详细解析了如何将野火PID调试助手协议快速移植到STM32电机控制项目中。通过深度剖析协议帧格式、数据解析逻辑及环形缓冲区应用,提供了从工程结构规划、核心函数适配到串口中断集成的完整移植步骤。文章还分享了协议健壮性增强、数据上报频率优化等高级调试技巧,帮助开发者构建稳定可靠的上位机调试通道,大幅提升PID参数整定效率。

weixin_29171129的博客 466

特征工程:LDA实例(实例)

1.LDA工作流程及实现 线性判别分析(LDA,linear discriminant analysis) 线性判别分析是特征变换算法,也是有监督分类器。 LDA的目标是提取一个新的坐标系,将原始数据集投影到一个低维空间中。 在低维空间中获得最佳的类别可分性。 ...

m0_52118763的博客 3040

CANoe信号传输故障排查指南

本文提供了全面的CANoe信号传输故障排查指南,涵盖从硬件连接、通道配置到软件脚本与数据库加载的全链路诊断。针对常见的通道指示灯不亮、信号无法发送及ECU握手失败等问题,给出了基于CANoe工具和CAPL脚本的详细排查步骤与解决方案,帮助工程师系统化定位并解决实车测试中的通信故障。

ice55的博客 257

性能测试能力提升-线程、并发、吞吐量、TPS、QPS、响应时间

接着上一篇的知识:性能测试能力提升-关于性能测试,本篇文章,我们将主要介绍以下几方面的知识: 线程数&并发用户数 相对并发&绝对并发 吞吐量 TPS&QPS 响应时间

程序员小杨哥的博客 4589

特征工程的应用案例分析

1.背景介绍 特征工程是机器学习和数据挖掘领域中的一种重要技术,它涉及到对原始数据进行预处理、转换、创建新的特征以及选择最佳特征等多种操作,以提高模型的性能和准确性。在过去的几年里,特征工程已经成为数据科学家和机器学习工程师的重要工具,它可以帮助解决各种类型的问题,如分类、回归、聚类等。 在本文中,我们将从以下几个方面进行分析: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤以及数学...

AI天才研究院 1115

手游功耗优化:从猜想到硬核实测

功耗本质是“硬件在吃电”,要看电流/功率曲线,而不是只看帧率和温度;定量 = 有数字、有曲线、有对比能说“降了 15%”、“峰值从 7W 降到 5.5W”,而不是“我感觉凉快点”;工具方面:大厂会用外接功率仪 + 手机/芯片厂内部平台;平时也会用 Android/iOS/引擎自带的工具做趋势分析;流程上:选典型机型和场景 → 跑脚本采集 → 对齐 Profiler 数据 → 分析 CPU/GPU/网络谁在吃电;再通过版本对比、画质/帧率组合测试,指导配置和优化。这是一个。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 175

算法实战应用案例精讲-特征工程| 图解机器学习

首先我们来了解一下『特征工程』。事实上大家在ShowMeAI的实战系列文章 Python机器学习综合项目-电商销量预估[2] 和 Python机器学习综合项目-电商销量预估(进阶)[3] 中已经看到了我们做了特征工程的处理。如果我们对特征工程(feature engineering)做一个定义,那它指的是:利用领域知识和现有数据,创造出新的特征,用于机器学习算法;可以手动或自动。在业界有一个很流行的说法:据与特征工程决定了模型的上限,改进算法只不过是逼近这个上限而已。

qq_36130719的博客 944

算法 | A*算法实现最优路径规划

启发式探索是利用问题拥有的启发信息来引导搜索,达到减少探索范围、降低问题复杂度的目的。A*寻路算法是启发式探索的一个典型实践,在寻路搜索的过程中,给每个节点绑定了一个估计值(即启发式),在对节点的遍历过程中采取估计值优先原则,估计值更优的节点会被优先遍历。...

不断学习,不断进步,提高自己 6629

交换机端口模式详解:Access、Hybrid、Trunk

交换机是网络中至关重要的组件之一,用于连接各种设备并启用数据的高效流动。为了更好地管理和控制网络流量,交换机提供了不同的端口模式,其中包括Access、Hybrid和Trunk。本文将深入探讨这三种端口模式,详细解释它们的配置、特性和应用场景,以帮助网络管理员更好地理解和优化网络架构。

网络技术联盟站 4014

Python数据分析案例17——电影人气预测(特征工程构建)

电影人气预测,回归问题的机器学习流程,文本特征工程的构建,LGBM超参数搜索。

weixin_46277779的博客 5134

构网型逆变器下垂控制与电流限幅策略研究:理论、仿真与代码实现

随着分布式发电和微电网技术的快速发展,构网型(Grid-Forming, GFM)逆变器因其能够自主建立电压和频率参考、支撑弱电网及孤岛运行而受到广泛关注。本文提出并实现了一种基于下垂控制的构网型逆变器控制策略,将逆变器等效为受控电压源,通过L型滤波器接入配电网。在公共耦合点(PCC)处实时测量三相电压和电流,计算有功和无功功率,进而采用P-w和Q-V下垂控制生成内部频率和电压幅值,合成三相参考电压。针对故障情况下过电流问题,设计了一种自适应电流限幅模块:当电流幅值超过设定上限时,动态降低电压参考系数k_s

huanghm88的专栏 153

七月算法机器学习 6 特征工程

目录 主要内容 特征工程: 大神们怎么看 特征工程 意义 互联网公司机器学习的“真相” 数据与特征处理 数据采集 数据格式化数据清洗 数据清洗示例/思考角度 数据采样 正负样本不平衡处理办法 特征处理 特征处理之数值型 数值型特征Python处理 特征处理之类别型 类别型特征Python处理: Hash技巧 类别型特征Python处理: Histogram映射 特征处理之时间型 特征处理之文本型词袋 把词袋中的词扩充到n-gram 使用Tf–idf 特征 特征处理

moonlightpeng的博客 538

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

机器学习面试150题:不只是考SVM xgboost 特征工程

前言 本博客曾经在10~13年连续4年整理过各大公司数据结构和算法层面的笔试题、面试题,很快,2014年之后,机器学习大伙,很多公司开始招AI方面的人才,很多同学也会从网上找各种各样的机器学习笔试题、面试题,但和数据结构方面的题不同,AI的题网上极少。 2017年起,我和团队开始整理BAT机器学习面试1000题系列,几万人开始追踪,目前七月在线官网/APP的题库已聚集AI笔试面试题4000题,今日起,我们会根据机器学习、深度学习、CV、NLP、推荐系统等各方向精选相关的面试题,供大家找工作中随时查阅、复

结构之法 算法之道 6万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

特征工程

七月在线4月机器学习算法班课程笔记——No.6 前言  机器学习领域的大神Andrew Ng(吴恩达)老师曾说“Coming up with features is difficult, time-consuming, requires expert knowledge. “Applied machine learning” is basically feature engineering. ”表

会思考的蜗牛 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

一文读懂特征工程

                                                   一文读懂特征工程   作者:July 说明:本文是七月在线机器学习第九期第五次课 特征工程的课程笔记,课程主讲老师:寒小阳 加号 张雨石 Johnson,本笔记得到寒小阳等相关老师的校对。 时间:二零一八年七月三十一日。   0 前言 我所在公司七月在线每个月都是各种机器学习、深度学...

结构之法 算法之道 2万+

七月算法机器学习笔记5 -- 特征工程

这套笔记是跟着七月算法四月机器学习班的学习而记录的,主要记一下我再学习机器学习的时候一些概念比较模糊的地方,具体课程参考七月算法官网:http://www.julyedu.com/特征工程特征 => 数据中抽取出来的对结果预测有用的信息 特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。 数据与特征处理 特征处理中不同类型的的特征的处理 数值

thystar的专栏 1965

【机器学习】特征工程

写在前面:机器学习是一门很大的学问,一个好的特征工程即便使用简单的模型也能取得很好的效果。以下文章总结于七月在线机器学习第九期课程,侵删。 前言 特征工程 特征 => 数据中抽取出来的对结果预测有用的信息 特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。 意义 - 更好的特征意味着更强的灵活度 - 更好的特征意味着只需用简单模型 - 更好...

止鱼 604

七月算法机器学习笔记8 聚类算法

七月算法(http://www.julyedu.com) 12月份 机器学习在线班 学习笔记

Tomorrow的专栏 1536

深度拆解特征工程经典案例,掌握比赛上分利器

大家应该都听过这么一句话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那么特征工程是什么呢?特征工程(Feature Engineering)对特征进行进一步分析,...

机器学习算法那些事 859

机器学习——特征工程篇

参考:七月在线ML第九期-特征工程 目录 1.数据清洗 2.采样 2.特征工程 数值型: (1)幅度缩放(最大最小值缩放,归一化。。。) (2)离散化/分箱分桶(等距pd.cut ,等频pd.qcut)(非线性,加速,特征交叉,健壮性) (3)统计值:(max,min ,quantile,均值,中位数,众数,分位数) (4)四则运算:(加减乘除) (5)幅度变化:(有一些...

DBL_fish的博客 844

什么是特征工程?如何进行特征工程?超详细解读

在建模领域人们常说,数据和特征决定机器学习的上限,而模型和算法只是不断地逼近这个上限。 真正参与过机器学习比赛的人,都能深深体会特征工程在构建机器学习模型中的重要性,它决定了你在比赛排行榜中的位置。 因为在算法竞赛的过程中,大家知道的数据都差不多,算法也都差不多,真正能拉开差距的地方就在于特征工程和训练模型的一些小技巧。 作为一个新手参加比赛时一般都会有一些疑问: 1、为什么不能把数据直接丢进模型当中跑呢? 2、套入进去之后发现自己的模型的分数还远远赶不上高手的简单几行代码发现的规则模型分数 这表面上看是跟

niuyunpang的博客 470

七月算法机器学习笔记9 推荐系统

七月算法(http://www.julyedu.com) 12月份 机器学习在线班 学习笔记

Tomorrow的专栏 1348

机器学习-数据与特征工程

一、前言 1.机器学习与特征工程的关联 2.实际工业界的特征工程那些事儿 特征工程 特征 => 数据中抽取出来的对结果预测有用的信息 特征工程是使用专业背景知识和技巧处理数据,使得 特征能在机器学习算法上发挥更好的作用的过程。 意义 更好的特征意味着更强的灵活度 更好的特征意味着只需用简单模型 更好的特征意味着更...

diantu6020的博客 328
上一篇: 七月算法机器学习 6 特征工程
下一篇: 七月算法机器学习5 回归分析与工程应用 小案例
天人合一peng
博客等级 码龄14年 1724粉丝 1716原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值