1.python数据分析
(1)数据建模:指的是对现实世界各类数据的抽象组织,建立一个适合的模型对数据进行处理。模型的建立依赖于算法,常见的算法有分类、聚类、关联、回归等。
(2)数据分类:分类是指把数据样本映射到一个事先定义的类中的学习过程,即给定一组输入的属性向量及其对应的类,用基于归纳的学习算法得出分类。
①数据分类过程:
②常见分类算法:
KNN算法;贝叶斯算法;决策树;人工神经网络;支持向量机(SVM)等。
③分类算法应用场景实例:O2O优惠券使用预测、市民出行选乘公交预测、待测微生物种类判别、基于运营商数据的个人征信评估、商品图片分类、广告点击行为预测、基于文本内容的垃圾短信识别、中文句子类别精准分析、 P2P网络借贷平台的经营风险量化分析、国家电网客户用电异常行为分析、自动驾驶场景中的交通标志检测、大数据精准营销中搜狗用户画像挖掘、基于视角的领域情感分析、监控场景下的行人精细化识别、用户评分预测、猫狗识别大战、微额借款用户人品预测、验证码识别、客户流失率预测、汽车4S店邮件营销方案等。(详细解释可参考博文https://blog.csdn.net/liulingyuan6/article/details/53637129#comments)
2.KNN算法
基础理论知识可参考书籍:刘硕《Python机器学习算法:原理、实现与案例》
k近邻(k-Nearest Neighbor)学习简称KNN。它既可以作为分类方法,又可以作为回归方法。
(1)KNN的基本思想:在处理某些问题时,我们认为两个实例在特征空间中的距离反映了他们之间的相似程度,距离相近则越相似。那么,对于一个输入实例x的类别或目标值,可根据训练集中与其距离最近的一些实例(最相似的实例)的类别或目标值进行推断。
(2)KNN的基本方法:
假设数据集D为训练集,KNN对输入实例x进行预测的算法可描述为:
①根据某种距离度量方法(通常为欧式距离),找到D中与x距离最近的k个实例。
②根据最近的k个实例的类别或目标值,对x的类别或目标值进行预测:
·对于分类问题使用“投票法”,即取k个实例中出现最多的类标记作为x的预测结果。
·对于回归问题使用“平均法”,即取k个实例的目标值的平均值作为x的预测结果。
KNN分类本质上可视为根据训练数据和k值将特征空间划分成一个个小区域,确定每个区域内所有的实力点所属的类别。换句话说,对于给定的训练集和k值,一个输入实例x的类标记由它在特征空间的位置唯一确定。
(3)KNN的学习方式——惰性学习:KNN学习没有显式的训练过程,或者说训练过程仅是把训练数据保存起来,只有对一个输入实例x预测时模型才根据数据做出处理,这种学习方式称谓“惰性学习”(lazy learning)。
(4)距离计算公式
实际上,以上两种距离可看作p=2和p=1闵可夫斯基距离。xi,xj的闵可夫斯基距离定义为:
在实际应用中计算距离还需注意:在计算距离之前,通常应对各特征数据进行归一化处理,从而消除因各特征尺寸(或值)不同对距离计算造成的影响。
实例:a,b,c三人以cm和kg为单位的身高体重数据分别为(174,78)、(177,72)、(184,80)。分别计算a与b、c的距离(欧氏距离):
通过上面程序运行结果发现,同样是计算欧氏距离,采用cm、kg单位时a与c更近,采用m、kg单位时a与b距离更近。仅仅改变了计量单位,结果却相反。这是因为在换算了单位之后,身高的数值远比体重的数值要小,在计算过程中产生的影响就很小,这对本身数值较小的特征就“不太公平”。为了消除计量单位的影响,应将各特征的取值范围调整到一个统一的尺寸,归一化处理就是将各特征的数值都映射到[0,1]区间。归一化一般采用离差标准化(最小-最大标准化)方法:
从结果可以看出,无论如何选取计量单位,其归一化的结果都是一致的。以归一化的数据再去计算距离,这就对各特征“公平”了。
(5)k值的选择
k值得选择对KNN模型的预测结果有很大的影响。
k值较小时,只有测试点周围很少的几个训练实例对预测结果有贡献,此时近似误差小,而估计误差大。预测结果对近邻的训练实例非常敏感,容易发生过度拟合。
k值较大时,测试点周围较大范围内的训练实例都对预测有贡献,此时近似误差大,而估计误差小,虽然不容易发生过度拟合,但预测受到较远距离(不相似)训练实例的影响,导致预测错误。
k值越小,模型越复杂;k值越大,模型越简单。
在实际应用中,k值一般选择一个较小的数值(3,4,5...)。通常可采用交叉验证发,在几个较小k值中选择最优的。
(6)KNN算法实现步骤:
①处理数据
②数据向量化
③计算欧几里得距离
④根据距离进行分类
(7)KNN算法应用场景实例:手写体数字识别。