机器学习No.4

任务七——深挖K近邻

一.缺失值的处理

1.也就是数据清洗的一步,最简单的方法是删除法:删除列、删除行。

2.另一种是填补法:

对于数值型变量:平均值填补、中位数填补等。

其他的方法:

(1)填补上下值

(2)插值法拟合出缺失的数据进行填补

for f in features: # 插值法填充

    train_data[f] = train_data[f].interpolate()
    

train_data.dropna(inplace=True)

 

二.特征编码技术

主要是解决将字符串转换成数值类型(向量或矩阵)

1.类别型变量

(1)标签编码

直接用0、1、2 等去标,不能直接输到模型里。

(2)独热编码

使用向量,除了一个位置是1,其他位置均为0, 1的位置对应的是相应类别出现的位置。

2.数值型变量

连续性特征的离散化操作可以增加模型的非线性型,同时也可以有效地处理数据分布的不均匀的特点。

主要知识我就不罗列了,直接放链接吧:https://www.cnblogs.com/zongfa/p/9434418.html

3.顺序变量

看做数值型变量来处理。

 

三.KNN解决回归

1.使用read_csv读取数据, 并显示数据内容

import pandas as pd

df = pd.read_csv('D:/car price.csv')

print(df)

读取结果:

2.特征处理

把类别型特征转换成独热编码:

df_colors = df['Color'].str.get_dummies().add_prefix('Color:')
df_type = df['Type'].apply(str).str.get_dummies().add_prefix('Type:')
df = pd.concat([df,df_colors,df_type],axis = 1)
df = df.drop(['Brand','Type','Color'],axis = 1)

print(df)

读取结果:

3.特征相关性

corr()函数:pandas的一个函数,可以计算两列值的相关系数,默认用的是pearson相关系数。取值范围是[-1, 1],越接近 1 表示正相关性越强,越接近-1 表示负相关性越强。 想看两列数据的相关性,可以用seaborn的热力图来可视化。

我觉得这个还挺好玩的,就用我们树蛙大作业的数据,截了50条来试了一下(指标是污染物和AQI)。

4.特征归一化

把原始特征转换成均值为0方差为1的高斯分布。

5.训练模型然后进预测。

 

四.KD树

使用KD树来加速搜索速度,一般只适合用在低维的空间。

把KD树看作是一种数据结构,而且这种数据结构把样本按照区域重新做了组织,这样的好处是一个区域里的样本互相离得比较近。假如之后来了一个新的预测样本,这时候我们首先来判定这个预测样本所在的区域,而且离它最近的样本很有可能就在这个区域里面。KD树的经典应用场景:在地图上的搜索。如搜索离当前点最近的加油站、餐馆,等等。

posted @ 2020-01-08 14:36  Ygrittee  阅读(164)  评论(0编辑  收藏  举报