本帖最后由 蛋蛋超人 于 2018-9-3 10:20 编辑
1. 简介 首先介绍下UCI,全称是加州福尼亚大学欧文分校,2017年学术排名世界第64位,北大排名72位,从这个学术排名可以看出UCI的实力,它提供的数据集自然是杠杠的,比如在机器学习领域流行的鸢尾花数据集就是由它提供的。UCI目前提供了440个数据集,按照任务类型划分的话,大致可分为分类(Classification),聚类(Clustering),回归(Regression),推荐系统(Recommender-Systems),因果推断(Causal-Discovery)五个数据集类别,也有一些数据集数量很少的如关联学习(Relational-Learning),函数学习(Function-Learning)的任务类型。另外每个数据集可能不止用于一个任务,如果按照数据集所在的领域划分的话,可分为生命科学(Life Sciences)、物理科学(Physical Sicence)、计算机科学/工程(CS/Engineering)、社会科学(Social Sciences)、商业(Business)、游戏(Game)六个数据集类别。接下来按照数据集所在领域类别来介绍下数据集。
2. 生命科学领域 生命科学领域的数据集有101个,大多数都是植物和动物还有基因的数据集。这里以鲍鱼数据集(Abalone Data Set )为例进个下简单的数据探索,这个数据集的任务是通过一些特征来预测鲍鱼的年龄,属于分类问题。预测鲍鱼年龄比较精准的方式是通过物理测量的方式,切开鲍鱼壳,然后给鲍鱼壳染色,再通过显微镜来计算环数来确定鲍鱼的年龄,这显然很繁琐。虽然有一些其他方式来预测年龄,但是都不如物理测量这种方式精准。所以我们来试试机器学习这种方式,看其是否能够借助一些其他容易收集到的特征来帮助完成这项工作。 鲍鱼数据集提供了九列数据,性别(Sex),长度(Length),直径(Dimaeter),高度(Height),整体重量(Whole weight),去皮重量(Shucked weight),内脏重量(Viscera weight),外壳重量(Shell weight),环数(Ringes)。环数就是我们要预测的列,年龄通过环数来确定。我们可以近似的将环数当做年龄,下文就直接将环数表示为年龄。首先读取数据查看是有否缺失值,运个下面代码读取数据查看缺失值。 - import pandas as pd
- import seaborn as sns
- abalone = pd.read_csv("D:abalone_data.csv")
- abalone.isnull().any()
复制代码
图 2-1 如图2-1,所有列值全部为False,没有一个列有缺失值,接下来看看每个特征对预测变量的影响,首先是性别(Sex)对年龄(Rings)的影响。来看看性别有几个值。 图 2-2 如图2-2,Sex列有三个值,M表示雄性(Male),F表示雌性(Female),I表示婴儿(Infant),可能鲍鱼在婴儿时期是没有性别的,所以单独拿出来作为一类性别。我们通过看不同性别下的年龄分布来直观地比较性别对年龄的影响。 - male_abalone = abalone[abalone.Sex=='M']#雄性
- female_abalone = abalone[abalone.Sex=='F']#雌性
- infant_abalone = abalone[abalone.Sex=='I']#婴儿
- fig,((ax1,ax2,ax3)) = plt.subplots(3,1,figsize=(20,20))
- ax1.set_title('Male')
- sns.distplot(male_abalone['Ringes'], kde=True, ax=ax1)
- ax2.set_title('Female')
- sns.distplot(female_abalone['Ringes'], kde= True, ax= ax2)
- ax3.set_title('Infant')
- sns.distplot(infant_abalone['Ringes'], kde= True, ax= ax3)
复制代码图 2-3 从上图看出雄性鲍鱼和雌性鲍鱼的年龄分布大致差不多,峰值都在10左右,形状也差不多。而婴儿时期鲍鱼的年龄分布和雄性/雌性鲍鱼的分布差别较大,峰值在7.5左右。可以初步认为性别对雌/雄鲍鱼的年龄分布影响不大,但是对婴儿/非婴儿鲍鱼的年龄分布影响较大,所以这个特征还是保留下来。此外,我们发现雌性似乎比雄性更加长寿,或者更加成熟些。我们来看看分布的左端,雄性鲍鱼在5岁之前还有少量分布,而雌性鲍鱼没有。再看看右端,雌性鲍鱼在20岁之后的分布比雄性更多。 再来看看长度对年龄的影响,我们使用散点回归图来刻画两者之间的关系。 - sns.regplot(x='Length', y='Ringes', data=abalone)
复制代码图 2-4 从图中可以看出长度和年龄有明显的线性关系,也符合我们的认知。接下来依次画出直径(Dimaeter),高度(Height),整体重量(Whole weight),去皮重量(Shucked weight),内脏重量(Viscera weight),外壳重量(Shell weight)与年龄(Rings)的回归直线图。 图 2-5 图 2-6 图2-7 图 2-8 图 2-9 图 2-10 从上面几幅图,我们看出几个特征都和年龄具有明显的相关关系,如果是无关的,那就是类似均匀分布的,点出现每一块空间的。我们亦可以通过上述的图发现几个特点,关于重量特征(以weight结尾的特征),在小于某个重量值时,重量特征和年龄是符合线性关系的,之后分布就比较杂乱了,符合我们对现实的认知,如小孩体重在未成年之前,体重一般会随着年龄不断增长,即体重和年龄成正相关关系(姑且也看做线性关系),成年之后,体重基本上不会随着年龄变化而产生太大的变化,所以同样体重的人在各个年龄段都有。
3. 计算机科学/工程领域(CS / Engineering)
a)匿名微软网络数据数据集(Anonymous Microsoft Web DataData Set) 该数据集的任务是根据用户访问过的网站区域数据预测用户可能访问的网站区域,属于推荐系统问题。自己想到的一个这方面的应用是打造更好的网站,比如对于关联性比较强的网站区域,80%用户点击了这个网站区域后又会点击另一个网站区域,那么就可以将这两个网站区域放在一起,鄙人之愚见。该数据集包括37711个记录,特征列没有规律性,将网站区域所链接的网址和整型数字绑定在一起用A表示,A之后是整型数字和链接网址。每个用户用C表示,C后面的字符串即用户id,V表示用户访问过的网站区域,V之后是整型数字,对应链接网址。这么存储的原因应该是为了节省存储空间。地址: https://archive.ics.uci.edu/ml/d ... +Microsoft+Web+Data
b) 钓鱼网站数据集(Website Phishing Data Set) 钓鱼网站是指伪装成银个及电子商务,窃取用户提交的银个帐号、密码等私密信息的网站。该数据集的任务是判断网站是否属于钓鱼网站,属于分类问题,类别有3类,合法的,可疑的,钓鱼的,分别用1,0,-1表示。该数据集包括1353条记录,9列特征。特征分别是网页闪频(SFH)、网页弹窗(popUpWidnow)、加密套接字协议层最终状态(SSLfinal_State)、URL请求(Request_URL)、URL锚点(URL_of_Anchor)、网站流量(web_traffic)、URL长度(URL_Length)、域名使用年限(age_of_domain)、IP地址(having_IP_Address)。地址: https://archive.ics.uci.edu/ml/datasets/Website+Phishing
c) 新闻在多个社交媒体上的流行度数据集(NewsPopularity in Multiple Social Media Platforms) 该数据集的任务是预测新闻在谷歌、FaceBook、领英平台上的流行度,属于回归问题。新闻主题有四个类别,经济,奥巴马,巴勒斯坦。该数据集总共有93239个记录,8列特征,3列预测变量。特征分别是序号(IDLink)、标题1(Title)、标题2(Headline)、源(Source)、话题(Topic)、出版日期(PublishDate)、标题1情感得分(SentimentTitle)、标题2情感得分(SentimentHeadline)。预测变量分别是FaceBook上的流行度(Facebook)、谷歌上的流行度(GooglePlus)、领英上的流行度(LinkedIn)。地址: https://archive.ics.uci.edu/ml/d ... ial+Media+Platforms
d) 垃圾短信数据集(SMS Spam Collection Data Set)
e) 人体活动识别数据集(Human Activity Recognition Using Smartphones Data Set)
4. 社会科学领域 社会科学领域的数据集有26个,我们也选其中的5个进行介绍。
a) 成人收入数据集(AdultData Set) 该数据集的任务是通过特征预测人的年薪是否大于5万美元,属于分类问题。该数据集包含48842个记录,15列特征,1列预测变量。特征分别是年龄(age)、工作类别(workclass)、学历(education)、受教育年限(education-num)、婚姻状况(marital-status)、职业(occupation)、与他人的关系(relationship)、种族(race)、性别(sex)、资本收益(capital-gain)、资本损失(capital-loss)、每周工作时长(hours-per-week)、国籍(native-country)、序号(fnlwgt)。地址: https://archive.ics.uci.edu/ml/datasets/Adult
b) 共享单车数据集(BikeSharing Dataset Data Set) 该数据集的任务是预测租共享单车的时长,属于回归问题。该数据集包含17389条记录,15列特征,1列预测变量。特征分别是序号(instant)、日期(dteday)、季节(season)、年(yr)、月(month)、是否节假日(holiday)、周几(weekday)、是否工作日(workingday)、天气状态( weathersit)、大气温度(atemp)、温度(temp)、湿度(hum)、风速(windspeed)、临时用户数目(casual)、注册用户数目(registered)、用户总数(cnt)。预测变量是时长(hr)。地址: https://archive.ics.uci.edu/ml/datasets/Bike+Sharing+Dataset
c) NYSK数据集(NYSKData Set)
d) 学生成绩数据集(StudentPerformance Data set) 该数据集用于预测学生的成绩,属于回归问题。该数据包含649个记录,30列特征,3列预测变量。特征包括学校(school)、性别(sex)、年龄(age)、地址(address)、家庭规模(famsize)、父母相处状态(Pstatus)、父亲教育(Fedu)、母亲教育(Medu)、母亲工作(Mjob)、父亲工作(Fjob)、选校原因(reason)、监护人(guardian)、上学时间(traveltime)、学习时间(studytime)等。预测变量分别是第一阶段成绩(G1),第二阶段成绩(G2),期终成绩(G3)。
e) 成人自闭症筛查数据集(AutismScreening Adult Data Set)
社会科学领域数据集传送门:
5. 商业领域 a) 银行营销数据集(BankMarketing Data Set) 该数据集的任务是预测客户是否会订阅银行产品,属于分类问题。该数据集包含45211个记录,16列特征,1列预测变量。特征分为四类,一类是银行存储的客户特征如年龄(age)、工作(job)、贷款(loan)等。一类是联系客户得到的特征如联系时间(duration)、联系类型(contact)等,一类是社会经济特征如就业变动率(emp.var.rate)、消费者物价指数(cons.price.idx)等,最后一类是其他类型的特征如上次营销活动的结果(poutcome)、距离上次活动过后的天数(pdays)。预测变量是客户是否会订阅银行产品。地址:https://archive.ics.uci.edu/ml/datasets/Bank+Marketing
b) 在线零售数据集(OnlineRetail Data Set)
c) 批发客户数据集(Wholesalecustomers Data Set)
6. 游戏领域 a) Dota2游戏结果数据集(Dota2Games Results Data Set) Dota2想必大家都知道吧,电子竞技没有投降otz。这个数据集的任务是预测游戏胜负,属于分类问题。这个数据集数量达到了100万行记录(dota2在外国高校很受欢迎啊),有116列特征,其中113列特征是英雄变量,取值为0,1,-1,1代表队伍选择了该英雄,-1代表对方队伍选择了该英雄,0代表双方都没选择该英雄。其余三列特征分别是游戏模式(Game Mode)、游戏类型(Game Type)、ID(ClusterID)。预测变量是游戏胜负(Team won the game)。地址: https://archive.ics.uci.edu/ml/datasets/Dota2+Games+Results
7. 物理科学领域 物理科学领域的数据集有47个。下面我们介绍其中的一部分。
a) 北京PM2.5数据集(Beijing PM2.5 Data) PM2.5是指大气中直径小于或等于2.5微米的颗粒物。虽然PM2.5只是地球大气成分中含量很少的组分,但它对空气质量和能见度等有很大的影响。科学家用PM2.5表示每立方米空气中这种颗粒的含量,这个值越高,就代表空气污染越严重。该数据集的任务就是预测空气中PM2.5的浓度。数据集有43824个记录,有13列。第一列是个号,不予考虑,PM2.5浓度这一列作为预测变量剔除掉,所以该数据集的特征有11列,分别是年(year)、月(month)、日(day)、时(hour)、露点温度(DEWP)、温度(TEMP)、气压(PRES)、结合风向(cbwd)、累积风速(lws)、下雪持续时间(ls)、下雨持续时间(Ir)。地址:https://archive.ics.uci.edu/ml/datasets/Beijing+PM2.5+Data
b) 机翼噪声数据集(AirfoilSelf-Noise)
c) 混凝土抗压强度数据集(ConcreteCompressive Strength) 该数据集的任务是预测混凝土抗压强度,属于回归任务。包括1030个记录,有8列特征和1列预测变量。8列特征分别是水泥(Comment)、高炉矿渣(Blast Furnace Slag)、粉煤灰(Fly Ash)、水(Water)、强塑剂(Superplasticizer)、粗骨料(coarse aggregate)、细骨料(Fine Aggregate)、使用年限(Age),预测变量是混泥土抗压强度(Concrete compressive strength)。地址: https://archive.ics.uci.edu/ml/d ... ompressive+Strength
d) 中国5个城市的PM2.5数据(PM2.5 Data of Five ChineseCities)
e) 厄尔尼若现象数据集(ElNino Data Set) 厄尔尼若主要指太平洋东部和中部的热带海洋的海水温度异常地持续变暖,使整个世界气候模式发生变化,造成一些地区干旱而另一些地区又降雨量过多,所以该数据集的任务是为了探索其中特征变量之间的联系,探索如何预测各地天气的情况。该数据集包括178080个记录,12列特征。特征分别是序号(obs)、年(year)、月(month)、日(day)、日期(data)、纬度(latitude)、经度(longitude)、纬向风(zon.winds)、经向风(mer.winds)、湿度(humidity)、空气温度(air temp)、地下温度(s.s.temp)。地址:https://archive.ics.uci.edu/ml/datasets/El+Nino
f) 玻璃识别数据集(GlassIdentification Data Set) 该数据集的任务是识别玻璃类型,属于分类问题。据作者介绍正确识别玻璃类型有助于鉴定犯罪现场证据,玻璃类型有7类,分别是浮制建筑玻璃(building_windows_float_processed)、非浮制建筑玻璃(building_windows_non_float_processed)、浮制车辆玻璃(vehicle_windows_float_processed)、容器玻璃(containers)、餐具玻璃(tableware)、前照灯玻璃(headlamps)。该数据集包括214个记录,10列特征,1列预测变量。10列特征分别是序号(id)、折射率(RI)、钠(NA)、镁(Mg)、铝(Al)、硅(Si)、钾(K)、钙(Ca)、钡(Ba)、铁(Fe)。地址: https://archive.ics.uci.edu/ml/datasets/Glass+Identification
8.小结 至此我们已大致浏览了UCI机器学习库里的数据集类型,小伙伴可以自己去看看UCI还有其他哪些比较好玩的数据集,这里介绍下怎么选择各种类别的数据集,如下图在数据集概览页面的左侧有个数据集划分栏(红色框) 图 8-1 从上至下,依次是将数据集按任务类型划分(Default Task)、按特征值类别划分(Attrribute Type)、按数据类型划分(Data Type)、按领域划分(Area)、按特征个数划分(#Attritbute)、按数据集大小划分(Instances)、按数据集存储格式划分(Format Type)。 其中特征值类别是指特征的数据类型,可能是整型,字符串等,数据类型是指单特征或多特征,时间序列,文本等。数据集存储格式分为矩阵和非矩阵,可以理解为表格和非表格型。祝玩得愉快!!!
|