机器学习--day2--端到端的机器学习项目

今日份学习:

这个是书本上的总结,比较详细(对于我来说),简单的可以看下面这篇文章

机器学习实战练手项目_HiSpring流云的博客-CSDN博客

一个项目案例(房地产公司)基本步骤:

1.观察大局

2.获得数据

3.从数据探索和可视化中获得洞见

4.机器学习算法的数据准备

5.选择并训练模型

6.微调模型

7.展示解决方案

8.启动,监控和维护系统

2.1使用数据

学习机器学习最好使用真实的数据进行实验

我后续应该会在kaggle上去实践,练习,这里的例子用的是加州住房价格的数据集

2.2观察大局

对数据建立起一个模型,你的模型需要从这个数据中学习,从而能够根据所以其他指标,预测其目标

2.2.1框架问题

要明确你的最终目的是什么,观察问题,确定是有监督学习还是无监督学习,是分类任务还是回归任务,该怎么选择模型。

2.2.1选择性能指标

回归任务典型的性能指标是均方误差(RMSE)详细的理解可以看p46页,均方差

分类任务主要的性能指标是混淆矩阵,精确度

2.2.3检查假设

列举和验证做出的假设是很重要的,明确最终目的被设定为回归还是分类是非常好的

2.3获取数据

2.3.1下载数据

我后续是会在kaggle上实践,上面有下载的链接,导入数据一般是用pandas中的read_csv来实现

2.3.2查看数据结构

可以通过数据名. head来查看前五行数据的基本特征

用info()方法可以快速获取数据集的简单描述,特别是总行数 每个属性的类型和非空值的数量

describe()可以显示数值属性的摘要,如count,mean,min,max,std等等,其中std为标准差,越小越稳定,分布越均匀

还可以通过直方图来快速了解数据类型

2.3.3创建测试集

为防止出现数据窥探偏误(书p56),我们可以创建测试集,比较简单,通常是数据集的20%,如果数据集很大,比例可以更小,可以通过sklearn中的 train_test_split来进行分割,在分割数据集的时候,最好在设置一个随机数生成器的种子,可以让他始终生成相同的随机序列

除了随机抽样,分层抽样在某些数据的选择上会更具代表性

2.4从数据探索和可视化中获得洞见

首先应该先把测试集放到一边去,我们目前在研究训练集,然后再copy一下训练集,这样可以随便尝试而不损害训练集

2.4.1讲一些数据集可视化

这里是使用事例(地理数据)可视化:这里有一个自我感觉好用的方法(应为我还是个小萌新,所以我觉得比较好用):

housing(这个是数据集). plot( kind=”scatter--(散点图的意思)”, x=”longitude”, y=”latitude”,(还可以设置)alpha=0.1来查看高密度数据点的位置)

2.4.2寻找相关性

可以通过corr()来计算出没对属性之间的标准相关系数corr_matrix=housing.corr查看

如: corr_matrix[″median_house_value(标签)″].sort_values(ascending=False)

越接近1,表示具有越强的相关性,这里的只是线性的

2.5机器学习算法的数据准备

2.5.1数据清理

在我们常用的数据集中,可能会有缺失的可能性,我们大致有以下三种:

1.放弃这些相应的区域

2.放弃整个属性

3.将缺失的值设置为某个值(0,平均值或者中位数)

详细可看p66

2.5.2处理文本和分类属性

对于文本,我们可以把这些类别从文本转到数字,详细p69

常用的方法是独热编码

2.5.3特征缩放

如果输入的数值属性具有非常大的比例差距,往往会导致机器学习算法的性能表现不佳,注意,目标值通常不需要缩放。

同比例缩放所以属性的两种常用方法是最小_最大缩放和标准化

2.6选择和训练模型

2.6.1训练和评估训练集

从sklearn中可以导入一些模型,如线性回归模型,决策树模型,随机森林模型不断通过模型对比,选择几个良好的模型在来进行更深层次的评估。

用一些训练集实例试试,通常评价回归模型性能指标用RMSE,从sklearn. metrics导入mean_squared_error函数来测量整个训练集上回归模型的人RMSE,可能会产生过拟合或者欠拟合(解决方案可以参照上一篇文章)

2.6.2使用交叉验证来更好的进行评估

可以通过k-折交叉验证功能,详细看书p76页,看评分

2.7微调模型

2.7.1网格搜索

告诉他你要进行实验的超参数是什么,以及需要尝试的值,他会使用交叉验证来进行评估所以的可能组合,详细看书p78页

2.7.2随机搜索

如果探索的组合数量较少,那么网格搜索是一种不错的方法,但是当超参数的搜索范围较大时,通常会使用随机搜索,他们使用起来大致相同,但他不会尝试所以可能的组合,而是在每次迭代中为每个超参数选择一个随机值,然后对一定数量的随机组合进行评估

2.7.3集成方法

将表现最优的模型组合起来

2.7.4通过测试集评估系统

现在是用测试集来评估最终模型的时候了,这个时候需要从测试集中获取预测器和标签,通过y_test与预测结果进行对比,查看分数,如果之前进行过大量的超参数调整,这时候评估结果会略逊于你之前使用交叉验证的表现结果(因为通过不断调整,系统在验证数据上终于表现良好,在未知数据集上可能打不到那么好的效果),注意,注意,注意,但要是出现这种情况,一定不要继续调整超参数,不要试图让测试集的结果变得好看一些,因为这些改进在泛化到新的数据集时又会变得无用功(可能会出现过拟合)。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值