10 一个实际操作机器学习的例子
10.1 数据分析准备
10.1.1 输入输出场景任务
在第一步中,我们要根据手头的数据情况来确定场景与任务。 假设我们的输入数 据是这样的:
import pandas as pd
import numpy as np
area = pd.Series([100, 89, 160, 89, 240])
bedroom = pd.Series([3, 2, 4, 3, 5])
price = pd.Series([30, 25, 40, 26, 55])
houses_dataframe = pd.DataFrame({ 'HouseArea': area,
'BedroomNumber': bedroom, 'SalePrice': price})
输入数据Features有二个分量: 房屋面积和卧室个数。 输出数据Target有一个:房屋 的价格。 很显然,这三笔数据已经都已经标注好了。 它属于监督学习场景。 因为是 要预测房屋价格, 输出是一个实数标量, 所以,它属于回归任务。
好。我们总结一下,这个问题属于「监督学习场景下的回归问题」。 接下来我们 选择方法。 可供选择的方法有很多,线性的、非线性的。 在这个小节,我们使用最简 单的线性方法。
def normalize_feature(df):
return df.apply(lambda column:(column-column.mean())/column.std())
houses_dataframe = normalize_feature(houses_dataframe)
ones = pd.DataFrame({'ones':np.ones(len(houses_dataframe))})
houses_dataframe = pd.concat([ones, houses_dataframe], axis=1 )
input_features = np.array(houses_dataframe[["ones", "HouseArea", "BedroomNumber"]])
output_labels = np.array(houses_dataframe["SalePrice"]).reshape(len(houses_dataframe),1)