首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Google机器学习速成课程笔记(一)

笔记基于google制作的机器学习简介课程,课程网址:

https://developers.google.cn/machine-learning/crash-course/

使用TF的基本步骤

上图为Tensorflow工具包的当前层次结构,课程使用tf.estimator来完成大部分内容。

pandas库

pandas中的主要数据结构被实现为两类:一是DataFrame,可以想象为一个关系型数据表格,其中包含多个行和已命名的列;二是Series,为单一列,每个DataFrame中包含一个或多个Series,每个Series均有一个名称。

例:利用Series构建DataFrame对象

运行结果如下:

pd.read_csv("文件名",sep=",")用于加载数据到DataFrame中;

DataFrame.describe显示DataFrame中的统计信息;

DataFrame.head显示DataFrame中的前几个记录;

DataFrame.hist可以绘制图表便于了解一列中值的分布;

DataFrame.reindex可以重建索引,其中随机排列常用Numpy中的random.permutation

函数实现;

DataFrame.sample从DataFrame对象中返回随机样本;

使用TensorFlow的基本步骤

该模块内容:在TensorFlow中使用LinearRegressor类并基于单个输入特征预测各城市街区的房屋价值中位数;使用均方差(RMSE)评估模型预测的准确率;调整模型的超参数提高模型准确率;数据基于加利福尼亚州1990年的人口普查数据

[1]设置并检查数据

[2]构建第一个模型

提取特征值、定义目标并配置分类器

定义输入函数

训练并评估模型,训练模型可以再linear_regressor上调用train实现

linear_regressor.train(input_fn=lambda:my_input_fn(my_feature,targets),step=100)

lambda封装my_input_fn,以便传入参数my_feature和targets

评估模型

MSE均方误差=E((x-x')^2)

将数据和线类回归模型可视化

运行结果如下:

[3]调整模型超参数

整合了上述代码,在十个等分时间段内调用了该函数以观察模型的改善情况,在每个时间段内绘制相应图表,绘制模型随着时间推移权重和偏差的曲线图

调用函数train_model(learning_rate=0.00001,steps=100,batch_size=1)结果如下:

[4]模型调整

不同超参数的选择取决于数据;

训练误差应稳步减小,刚开始急剧减小,最终应随着训练收敛达到平稳状态

训练误差减小速度较慢,提高学习速率可能会有效果(不一定);

一般来讲,较低的学习速率和较大的步数、较大的批量组合效果较好;

批量大小过小可能会导致一些不稳定的情况,可以先尝试100或1000等较大的值,再逐步减小;

合成特征和离群值

合成特征:以上一个模块为例,假如特征采用人口密度,则total_rooms和population特征均会与其相关,可以对特征进行合成实现

调用train_model()时将rooms_per_person赋给参数input_feature;

离群值:创建预测值与目标值的散点图来可视化模型效果,会发现大多数散点与一条线对其,同时存在偏离该线的一些点,称为离群值,截取离群值有利于降低损失

合成特征和截取离群值的代码如下:

截取离群值后的直方图与回归模型及损失度量图,可以看出可以有效降低损失值:

THE END

2018.3.28

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180328G1JEWB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券