python线性回归、岭回归、逻辑回归、聚类

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

机器学习与应用-第三天第二天知识回顾课程第三天1、回归算法-线性回归分析2、线性回归实例3、回归性能评估4、分类算法-逻辑回归5、逻辑回归实例6、聚类算法-kmeans7、k-means实例回归算法-线性回归分析回忆回归问题的判定?期末成绩:0.7×考试成绩+0.3×平时成绩西瓜好坏:0.2×色泽+0.5×根蒂+0.3×敲声𝑓𝑥=𝑤1𝑥1+𝑤2𝑥2+⋯+𝑤𝑑𝑥𝑑+𝑏w为权重,b称为偏置项,可以理解为:𝑤0×1线性模型试图学得一个通过属性的线性组合来进行预测的函数:线性回归定义:线性回归通过一个或者多个自变量与因变量之间之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合一元线性回归:涉及到的变量只有一个多元线性回归:涉及到的变量两个或两个以上通用公式:ℎ𝑤=𝑤0+𝑤1𝑥1+𝑤2𝑥2+⋯=𝑤𝑇𝑥其中𝑤,𝑥为矩阵:w=𝑤0𝑤1𝑤2,x=1𝑥1𝑥2预测结果与真实值是有一定的误差单变量:多变量:损失函数(误差大小)•𝑦𝑖为第𝑖个训练样本的真实值•ℎ𝑤(𝑥𝑖)为第𝑖个训练样本特征值组合预测函数总损失定义:𝐽𝜃=(ℎ𝑤(𝑥1)−𝑦1)2+(ℎ𝑤(𝑥2)−𝑦2)2+⋯+(ℎ𝑤(𝑥𝑚)−𝑦𝑚)2=(ℎ𝑤𝑥𝑖−𝑦𝑖𝑚𝑖=1)2又称最小二乘法尽量去减少这个损失(两种方式)如何去求模型当中的W,使得损失最小?(目的是找到最小损失对应的W值)最小二乘法之正规方程(不做要求)求解:𝑤=(𝑋𝑇𝑋)−1𝑋𝑇𝑦𝑋为特征值矩阵,𝑦为目标值矩阵缺点:当特征过于复杂,求解速度太慢对于复杂的算法,不能使用正规方程求解(逻辑回归等)注:X,y代表着什么?损失函数直观图(单变量举例)w1w0直接求解到最小值最小二乘法之梯度下降(理解过程)我们以单变量中的w0,w1为例子:𝛼为学习速率,需要手动指定,理解:沿着这个函数下降的方向找,最后就能找到山谷的最低点,然后更新W值使用:面对训练数据规模十分庞大的任务表示方向正规方程与梯度下降的对比?sklearn线性回归正规方程、梯度下降API•sklearn.linear_model.LinearRegression•正规方程•sklearn.linear_model.SGDRegressor•梯度下降LinearRegression、SGDRegressor•sklearn.linear_model.LinearRegression()•普通最小二乘线性回归•coef_:回归系数•sklearn.linear_model.SGDRegressor()•通过使用SGD最小化线性模型•coef_:回归系数线性回归实例1、sklearn线性回归正规方程、梯度下降API2、波士顿房价数据集分析流程波士顿房价数据案例分析流程1、波士顿地区房价数据获取2、波士顿地区房价数据分割3、训练与测试数据标准化处理4、使用最简单的线性回归模型LinearRegression和梯度下降估计SGDRegressor对房价进行预测回归性能评估(均方误差(MeanSquaredError)MSE)评价机制:注:𝑦𝑖为预测值,𝑦为真实值sklearn回归评估API•sklearn.metrics.mean_squared_error•mean_squared_error(y_true,y_pred)•均方误差回归损失•y_true:真实值•y_pred:预测值•return:浮点数结果mean_squared_error注:真实值,预测值为标准化之前的值1、LinearRegression与SGDRegressor评估2、特点:线性回归器是最为简单、易用的回归模型。从某种程度上限制了使用,尽管如此,在不知道特征之间关系的前提下,我们仍然使用线性回归器作为大多数系统的首要选择。小规模数据:LinearRegression(不能解决拟合问题)以及其它大规模数据:SGDRegressor问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢?经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的。简单的认为有这些特征的都是天鹅。因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。分析上图1分析上图2机器通过这些图片来学习天鹅的特征,经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的弯曲的,天鹅的脖子是长长的有点曲度,天鹅的整个体型像一个2且略大于鸭子。这时候机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。欠拟合过拟合模型复杂度过拟合与欠拟合过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)欠拟合:一个假设在训练数据上不能获得更好的拟合,但是在训练数据外的数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)对线性模型进行训练学习会变成复杂模型欠拟合原因以及解决办法•原因:•学习到数据的特征过少•解决办法:•增加数据的特征数量过拟合原因以及解决办法•原因:•原始特征过多,存在一些嘈杂特征,模型过于复杂是因为模型尝试去兼顾各个测试数据点•解决办法:•进行特征选择,消除关联性大的特征(很难做)•交叉验证(让所有数据都有过训练)•正则化(了解)尽量减小高次项特征的影响作用:可以使得W的每个元素都很小,都接近于0优点:越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象L2正则化带有正则化的线性回归-Ridge•sklearn.linear_model.RidgeRidge•sklearn.linear_model.Ridge(alpha=1.0)•具有l2正则化的线性最小二乘法•alpha:正则化力度•coef_:回归系数观察正则化程度的变化,对结果的影响?线性回归LinearRegression与Ridge对比•岭回归:回归得到的回归系数更符合实际,更可靠。另外,能让估计参数的波动范围变小,变的更稳定。在存在病态数据偏多的研究中有较大的实用价值。分类算法-逻辑回归•广告点击率•判断用户的性别•预测用户是否会购买给定的商品类•判断一条评论是正面的还是负面的逻辑回归是解决二分类问题的利器输入:ℎ𝑤=𝑤0+𝑤1𝑥1+𝑤2𝑥2+⋯=𝑤𝑇𝑥(单个样本)逻辑回归sigmoid函数逻辑回归公式公式:输出:[0,1]区间的概率值,默认0.5作为阀值注:g(z)为sigmoid函数逻辑回归的损失函数、优化(了解)与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解对数似然损失函数:完整的损失函数:cost损失的值越小,那么预测的类别准确度更高当y=1时:sklearn逻辑回归API•sklearn.linear_model.LogisticRegressionLogisticRegression•sklearn.linear_model.LogisticRegression(penalty=‘l2’,C=1.0)•Logistic回归分类器•coef_:回归系数LogisticRegression回归案例•良/恶性乳腺癌肿瘤预测良/恶性乳腺癌肿数据原始数据的下载地址:数据描述(1)699条样本,共11列数据,第一列用语检索的id,后9列分别是与肿瘤相关的医学特征,最后一列表示肿瘤类型的数值。(2)包含16个缺失值,用”?”标出。•pd.read_csv(’’,names=column_names)•column_names:指定类别名字,['Samplecodenumber','ClumpThickness','UniformityofCellSize','UniformityofCellShape','MarginalAdhesion','SingleEpithelialCellSize','BareNuclei','BlandChromatin','NormalNucleoli','Mitoses','Class']•return:数据•replace(to_replace=’’,value=):返回数据•dropna():返回数据pandas使用良/恶性乳腺癌肿分类流程1、网上获取数据(工具pandas)2、数据缺失值处理、标准化3、LogisticRegression估计器流程LogisticRegression总结应用:广告点击率预测、电商购物搭配推荐优点:适合需要得到一个分类概率的场景缺点:当特征空间很大时,逻辑回归的性能不是很好(看硬件能力)多分类问题逻辑回归解决办法:1V1,1Vallsoftmax方法-逻辑回归在多分类问题上的推广将在后面的神经网络算法中介绍非监督学习的特点?“物以类聚,人以群分”非监督学习(unsupervisedlearning)主要方法:k-meansk-means步骤1、随机设置K个特征空间内的点作为初始的聚类中心2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行第二步过程k-meansAPI•sklearn.cluster.KMeansKmeans•sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’)•k-means聚类•n_clusters:开始的聚类中心数量•init:初始化方法,默认为'k-means++’•labels_:默认标记的类型,可以和真实值比较(不是值比较)1、降维之后的数据2、k-means聚类3、聚类结果显示k-means对InstacartMarket用户聚类Kmeans性能评估指标轮廓系数:计算公式:𝑠𝑐𝑖=𝑏𝑖−𝑎𝑖max(𝑏𝑖,𝑎𝑖)注:对于每个点𝑖为已聚类数据中的样本,𝑏𝑖为𝑖到其它族群的所有样本的平均距离,𝑎𝑖为𝑖到本身簇的距离平均值最终计算出所有的样本点的轮廓系数平均值如果𝑠𝑐𝑖小于0,说明𝑎𝑖的平均距离大于最近的其他簇。聚类效果不好如果𝑠𝑐𝑖越大,说明𝑎𝑖的平均距离小于最近的其他簇。聚类效果好轮廓系数的值是介于[-1,1],越趋近于1代表内聚度和分离度都相对较优Kmeans性能评估指标API•sklearn.metrics.silhouette_scoresilhouette_score•sklearn.metrics.silhouette_score(X,labels)•计算所有样本的平均轮廓系数•X:特征值•labels:被聚类标记的目标值Kmeans总结特点分析:采用迭代式算法,直观易懂并且非常实用缺点:容易收敛到局部最优解(多次聚类)需要预先设定簇的数量(k-means++解决)

1 / 86
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功