概述
随着这两年人工智能的快速发展,机器学习与深度学习行业炙手可热,对于那些想进入这个行业的同学们,小编在这里给大家介绍一下自己的心得体会以及利用Python的一些小技巧,希望对大家有所帮助。
在机器学习方面,对于想入门的新手,首先不得不提就是斯坦福大学的Andrew Ng-吴恩达,他在例如Coursera等网站上面的课程非常适合新手,并且当你入门之后,回头再看,又会有新的收获,在这里我把相应的链接放在这里Machine Learning | Coursera。
对于一个机器学习工程,或者参加例如kaggel、天池之类的比赛也好,流程都是类似的,小编在这里对前人的工作进行了一下总结。流程如下:
- 对数据进行简单的清洗与处理,得到一些基本特征。
- 建立简单的机器学习模型,按照重要性对特征进行排列。
- 根据得到的特征排列,有针对的进行特征工程,提取特征
- 重复上述过程,不断的优化自己的模型,找到关键的特征
- 对模型的参数进行调参,采用例如grid search的方法找到最优参数
- 进行模型融合,采用如Stacking 的方法得到最佳模型组合
对于实际的机器学习工程问题,数据的获取以及清洗是一件非常头疼事情,在这个方面要花费非常大的精力,而我们上述的流程比较适合一些初步清洗较好的数据,比较适用于一些比赛项目流程。
好了,说完机器学习基本流程,下面我们来说一下技巧了。目前,在机器学习方面最流行的有两种语言,一个是R,另外一个是Python,在这里小编介绍一下利用Python进行机器学习的一些小技巧,这些技巧对于大家的特征工程都有很大的帮助。
1. 数据读取
一般采用Python 的pandas 包,大部分数据集都可以利用它来读取,如pd.read_csv
数据查看DataFrame.describe() 或 head()
图片采用PIL或者OpenCV
2. 数据分析
2.1一元分析
数据可视化对分析数据有着非常大的帮助,帮助我们更加直观地理解数据。
工具Seaborn matplotlib
对数据采用去除异常值或者进行变换,如对数变换等,将其变为更加符合正态分布的数据集。
一元分析-数据及工具
数据类型:
- 数值型
- 非数值型
对于普通一元数据,对其分布进行查看:
一元分析图对于经常出现的时间特征,我们通常利用Python的datetime 工具包:
时间类型与字符串的变换Python的时间包,可以帮助我们提取年、月、日、星期等数据,方便我们进行更加详细的分析。
对于非数值型工具:
在机器学习模型中,计算机仅仅能识别数字,所以我们需要将任何类型的信息转化为数值信息,对于一些分类字符串特征,如男、女,我们采用一些Python的函数,可以方便的对其进行处理。
而对于一些非常长的字符串信息,我们则需要利用Python pandas的内置一些字符串函数进行处理,它让我们像C语言中处理字符串一样,可以同时对每一个特征进行处理:
除上述情况中,有一些数据是分类特征,这种数据又可以分为两类,一种是可以比较大小的,如衣服的尺码,是s、m、和、l,他们之间的大小比较是有意义的,另一种分类数据与其不同,他们是不能用大小去衡量的,如颜色,蓝色、绿色和黄色,代表三种类别,但是他们之间却没有大小的差别。所以,我们往往对这些数据进行编码,一般采用三种方式:
- 虚拟变量或者哑变量
- 普通编码
- onehot 编码
2.2 多元分析
我们仍从数据可视化入手。
函数工具及一般参数 与上述函数对应的可视化图例子Seaborn一个Python中非常适合做数据分析的包,它有许许多多绘图模式供我们使用。其中pairplot 可以帮助我们分析一组数据任意两个变量之间的分布关系,heatmap可以帮助我们分型一组数据之间相关性,boxplot与violinplot可以帮助我们理解两三组变量之间的分布关系。
下面介绍一些常用的多元分析函数。
1.灵活运用索引
Python作为数据分析工具,最大的特点就是简单、灵活,我们对索引的灵活运用可以帮助我们快速方便的分析数据。如利用索引得到某一列数据中满足一些条件的数据:
df['Family'][titanic_df['Family'] > 0] = 1
df[‘Family’][titanic_df[‘Family’].notnull()]
2.常用函数
- DF.drop('column_name',axis=1, inplace=True)
- Pd.merge(left,right, how=‘inner’, on=‘left’)
- DF.Groupby()
上述函数可以对数据进行删除、合并以及分组。其中分组函数groupby是一个非常强大的工具,下面我们详细的介绍一下它的两种用法;
迭代与非迭代方法3. 模型建立
当数据分析完之后,我们需要建立机器学习算法模型,下面我们稍微介绍一下陈天奇大神的XGBOOST算法,,这个算法在各种比赛大放异彩,速度快,效果好,xgb常用的算法参数有:
一般而言,大家使用这个算法都采用两种方式,第一种直接利用该模型训练,第二种,采用算法包中的分类器或者回归器进行拟合,下面是两个例子分别对应两种方法:
在第二种用法中,我们采用了交叉验证的方式,来评估我们的模型。
4. 模型融合
模型融合的方式有很多种,并没有一个统一的方法,并且,根据实际情况,需要设计出效果最好的模型,最简单的模型融合,如多数投票表决,或者类似于多模型预测取平均等,我们这里介绍一下较为常用的stacking:
stacking上面这幅图就是stacking的流程图,它采用五个模型进行融合,每个模型得到一个预测值,然后利用这五个预测值作为新的特征,再重新建立一个模型,最终得到预测结果。对上述图需要注意的是,每个模型对数据进行了预测,在这个预测过程中,将数据集进行了划分,最后的预测结果是多次预测取平均。
最后
以上就是欢呼盼望为你收集整理的Python-机器学习 入门及技巧总结的全部内容,希望文章能够帮你解决Python-机器学习 入门及技巧总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复