TensorFlow入门(二):合成特征与离群值
1.模型目标
- 创建一个合成特征,即另外两个特征的比例
- 将此新特征用作线性回归模型的输入
- 通过识别和截取(移除)输入数据中的离群值来提高模型的有效性
由于本节中所用到的仍然是线性回归算法,所以大部分的代码都与上一节相同,不同的是我们需要定义一个全新的合成特征,这里选择通过房间数除以人口合成一个人均房间数特征,即如下所示:
california_housing_dataframe["rooms_per_person"] = (california_housing_dataframe["total_rooms"] / california_housing_dataframe["population"])
之后,我们通过一些方法来识别离群值,并用下面这个函数将rooms_per_person 的值截取为 5
california_housing_dataframe["rooms_per_person"]).apply(lambda x: min(x, 5))
2.代码
from __future__ import print_function
import math
from IPython import display
from matplotlib import cm
from matplotlib import gridspec
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import sklearn.metrics as metrics
import tensorflow as tf
from tensorflow.python.data import Dataset
tf.logging.set_verbosity(tf.logging.ERROR)
pd.options.display.max_rows = 10
pd.options.display.float_format = '{:.1f}'.format
california_housing_dataframe = pd.read_csv(
"https://download.mlcc.google.cn/mledu-datasets/california_housing_train.csv", sep=",")
california_housing_dataframe = california_housing_dataframe.reindex(
np.random.permutation(california_housing_dataframe.index))
california_housing_dataframe["median_house_value"] /= 1000.0
print(california_housing_dataframe)
#-------- 定义输入函数 ----------#
def my_input_f