文件名称:修正数据类型-人脸识别图像预处理技术
文件大小:4.91MB
文件格式:PDF
更新时间:2024-06-29 11:23:58
数据挖掘算法 Python
17.3 修正数据类型 通过 15.1 获取的数据类型为字符串类型,需要根据实际情况修正 from datetime import datetime as dt # Takes a date as a string, and returns a Python datetime object. # If there is no date given, returns None def parse_date(date): if date == '': return None else: return dt.strptime(date, '%Y-%m-%d') # Takes a string which is either an empty string or represents an integer, # and returns an int or None. def parse_maybe_int(i): if i == '': return None else: return int(i) # Clean up the data types in the enrollments table for enrollment in enrollments: enrollment['cancel_date'] = parse_date(enrollment['cancel_date']) enrollment['days_to_cancel'] = parse_maybe_int(enrollment['days_to_cancel']) enrollment['is_canceled'] = enrollment['is_canceled'] == 'True' enrollment['is_udacity'] = enrollment['is_udacity'] == 'True' enrollment['join_date'] = parse_date(enrollment['join_date']) enrollments[0] 17.4 One-Hot Encoding---一位有效编码 One-Hot 编码,又称为一位有效编码,主要是采用 位状态寄存器来对 个状态进行编码,每 个状态都由他独立的寄存器位,并且在任意时候只有一位有效。 在实际的机器学习的应用任务中,特征有时候并不总是连续值,有可能是一些分类值,如性别 可分为“male”和“female”。在机器学习任务中,对于这样的特征,通常我们需要对其进行特征数字 化,如下面的例子: 有如下三个特征属性: 性别:["male","female"] 地区:["Europe","US","Asia"] 浏览器:["Firefox","Chrome","Safari","Internet Explorer"] 对于上述的问题,性别的属性是二维的,同理,地区是三维的,浏览器则是思维的,这样,我们 可以采用 One-Hot 编码的方式对上述的样本“["male","US","Internet Explorer"]”编码,“male”则对应 着[1,0],同理“US”对应着[0,1,0],“Internet Explorer”对应着[0,0,0,1]。则完整的特征数字化的结果 为:[1,0,0,1,0,0,0,0,1]。这样导致的一个结果就是数据会变得非常的稀疏。