圆月山庄资源网 Design By www.vgjia.com
我就废话不多说了,直接上代码吧!
#-*- coding:utf-8 _*- """ @author:Administrator @file: standard_process.py @time: 2018/8/9 """ import pandas as pd import numpy as np import matplotlib.pyplot as plt import sys import os import seaborn as sns from sklearn.preprocessing import StandardScaler ''' 通过box_plot(盒图来确认)异常值 ''' # 获取项目根目录 input_data_path = os.path.dirname(os.path.dirname(os.getcwd())) + '/input/' print(input_data_path) # 获取数据得位置 month_6_train_path = input_data_path +'month_6_1.csv' month_6_test_path = input_data_path + 'test_data_6_1.csv' # 读取数据 data_train = pd.read_csv(month_6_train_path) data_test = pd.read_csv(month_6_test_path) # print(data_train.head()) # print(data_test.head()) # 暂时不考虑省份城市地址 # 月份只有一个月,暂时不考虑 # bedrooms 需要看成分类型得数据 # 只取出longitude,latitude,price,buildingTypeId,bedrooms,daysOnMarket # 取出这些数据; # train = data_train[['longitude', 'latitude', 'price', 'buildingTypeId', 'bedrooms', 'daysOnMarket']] # train= train.dropna() train = data_test[['longitude', 'latitude', 'price', 'buildingTypeId', 'bedrooms', 'daysOnMarket']] print(train.head()) # print(test.head()) # print(train.isna().sum()) # sns.pairplot(train) # # sns.pairplot(test) # plt.show() # 特征清洗:异常值清理用用箱图; # 分为两步走,一步是单列异常值处理, # 第二步是多列分组异常值处理 def remove_filers_with_boxplot(data): p = data.boxplot(return_type='dict') for index,value in enumerate(data.columns): # 获取异常值 fliers_value_list = p['fliers'][index].get_ydata() # 删除异常值 for flier in fliers_value_list: data = data[data.loc[:,value] != flier] return data print(train.shape) train = remove_filers_with_boxplot(train) print(train.shape) ''' 以上得异常值处理还不够完善, 完善的异常值处理是分组判断异常值, 也就是他在单独这一列种,还有一种情况是多余不同的分类,他是不是存在异常 所以就需要用到分组获取数据再箱图处理掉异常数据; ''' train = train[pd.isna(train.buildingTypeId) != True] print(train.shape) print(train['bedrooms'].value_counts()) ''' 3.0 8760 2.0 5791 4.0 5442 1.0 2056 5.0 1828 6.0 429 0.0 159 7.0 82 由于样本存在不均衡得问题:所以只采用12345数据:也就是说去掉0,7,6,到时候测试数据也要做相同得操作; 还有一种是通过下采样或者是上采样的方式进行,这里暂时不考虑; ''' # 只取bedrooms 为1,2,3,4,5 得数据 train = train[train['bedrooms'].isin([1,2,3,4,5])] print(train.shape) # 利用pivot分组后去掉异常点 def use_pivot_box_to_remove_fliers(data,pivot_columns_list,pivot_value_list): for column in pivot_columns_list: for value in pivot_value_list: # 获取分组的dataframe new_data = data.pivot(columns=column,values=value) p = new_data.boxplot(return_type='dict') for index,value_new in enumerate(new_data.columns): # 获取异常值 fliers_value_list = p['fliers'][index].get_ydata() # 删除异常值 for flier in fliers_value_list: data = data[data.loc[:, value] != flier] return data # train = use_pivot_box_to_remove_fliers(train,['buildingTypeId','bedrooms'],['price','daysOnMarket','longitude','latitude']) print(train.shape) # print(train.isna().sum()) # 以上就不考虑longitude和latitude的问题了;应为房屋的类型以及房间个数和经纬度关系不大,但是也不一定, # 实践了一下加上longitude和latitude之后样本数据并没有减少; # sns.pairplot(train) # plt.show() # 先进一步做处理将纬度小于40的去掉 train = train[train.latitude>40] # --------------------------------》》》 # 对于数值类型得用均值填充,但是在填充之前注意一些原本就是分类型数据得列 # def fill_na(data): # for column in data.columns: # if column.dtype != str: # data[column].fillna(data[column].mean()) # return data # 以上是异常值,或者是离群点的处理,以及均值填充数据 # 下面将根据catter图或者是hist图来处理数据 # # 标准化数据 # train = StandardScaler().fit_transform(train) # # 标准化之后画图发现数据分布并没有变 # # sns.pairplot(pd.DataFrame(train)) # plt.show() ''' 1:循环遍历整个散点图用刚才写好的算法去除点; ''' # 获取 # def get_outlier(x,y,init_point_count ,distance,least_point_count): # x_outliers_list = [] # y_outliers_list = [] # for i in range(len(x)): # for j in range(len(x)): # d =np.sqrt(np.square(x[i]-x[j])+np.square(y[i]-y[j])) # # print('距离',d) # if d <= distance: # init_point_count +=1 # if init_point_count <least_point_count+1: # x_outliers_list.append(x[i]) # y_outliers_list.append(y[i]) # print(x[i],y[i]) # init_point_count =0 # return x_outliers_list,y_outliers_list # # def circulation_to_remove_outliers(data,list_columns=['longitude','latitude','price','daysOnMarket',]): # for column_row in list_columns: # for column_col in list_columns: # if column_row != column_col: # x = list(data[column_row]) # y = list(data[column_col]) # x_outliers_list ,y_outliers_list = get_outlier(x,y,0,0.01,2) # for x_outlier in x_outliers_list: # data = data[data.loc[:, column_row] != x_outlier] # for y_outlier in y_outliers_list: # data = data[data.loc[:, column_col] != y_outlier] # return data # # train = circulation_to_remove_outliers(train) # # print(train.shape) # def get_outlier(x,y,init_point_count ,distance,least_point_count): # for i in range(len(x)): # for j in range(len(x)): # d =np.sqrt(np.square(x[i]-x[j])+np.square(y[i]-y[j])) # # print('距离',d) # if d <= distance: # init_point_count +=1 # if init_point_count <least_point_count+1: # print(x[i],y[i]) # init_point_count =0 # # get_outlier(train['longitude'],train['latitude'],0,0.3,1) # sns.pairplot(train) # plt.show() # train = train.dropna() # print(train.tail()) # train.to_csv('./finnl_processing_train_data_6_no_remove_outliers_test.csv',index=False)
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月03日
2024年11月03日
- 明达年度发烧碟MasterSuperiorAudiophile2021[DSF]
- 英文DJ 《致命的温柔》24K德国HD金碟DTS 2CD[WAV+分轨][1.7G]
- 张学友1997《不老的传说》宝丽金首版 [WAV+CUE][971M]
- 张韶涵2024 《不负韶华》开盘母带[低速原抓WAV+CUE][1.1G]
- lol全球总决赛lcs三号种子是谁 S14全球总决赛lcs三号种子队伍介绍
- lol全球总决赛lck三号种子是谁 S14全球总决赛lck三号种子队伍
- 群星.2005-三里屯音乐之男孩女孩的情人节【太合麦田】【WAV+CUE】
- 崔健.2005-给你一点颜色【东西音乐】【WAV+CUE】
- 南台湾小姑娘.1998-心爱,等一下【大旗】【WAV+CUE】
- 【新世纪】群星-美丽人生(CestLaVie)(6CD)[WAV+CUE]
- ProteanQuartet-Tempusomniavincit(2024)[24-WAV]
- SirEdwardElgarconductsElgar[FLAC+CUE]
- 田震《20世纪中华歌坛名人百集珍藏版》[WAV+CUE][1G]
- BEYOND《大地》24K金蝶限量编号[低速原抓WAV+CUE][986M]
- 陈奕迅《准备中 SACD》[日本限量版] [WAV+CUE][1.2G]