1、机器学习与应用-第三天第二天知识回顾课程第三天1、回归算法-线性回归分析2、线性回归实例3、回归性能评估4、分类算法-逻辑回归5、逻辑回归实例6、聚类算法-kmeans7、k-means实例回归算法-线性回归分析回忆回归问题的判定?线性模型试图学得一个通过属性的线性组合来进行预测的函数:线性回归预测结果与真实值是有一定的误差单变量:多变量:损失函数(误差大小)尽量去减少这个损失(两种方式)如何去求模型当中的W,使得损失最小?(目的是找到最小损失对应的W值)最小二乘法之正规方程(不做要求)注:X,y代表着什么?损失函数直观图(单变量举例)w1w0直接求解到最小值最小二乘法之梯度下降(理解过程)我
2、们以单变量中的w0,w1为例子:理解:沿着这个函数下降的方向找,最后就能找到山谷的最低点,然后更新W值使用:面对训练数据规模十分庞大的任务表示方向正规方程与梯度下降的对比?sklearn线性回归正规方程、梯度下降API sklearn.linear_model.LinearRegression 正规方程 sklearn.linear_model.SGDRegressor 梯度下降LinearRegression、SGDRegressor sklearn.linear_model.LinearRegression()普通最小二乘线性回归 coef_:回归系数 sklearn.linear_mod
3、el.SGDRegressor()通过使用SGD最小化线性模型 coef_:回归系数线性回归实例1、sklearn线性回归正规方程、梯度下降API2、波士顿房价数据集分析流程波士顿房价数据案例分析流程1、波士顿地区房价数据获取2、波士顿地区房价数据分割3、训练与测试数据标准化处理4、使用最简单的线性回归模型LinearRegression和梯度下降估计SGDRegressor对房价进行预测回归性能评估(均方误差(Mean Squared Error)MSE)评价机制:sklearn回归评估API sklearn.metrics.mean_squared_error mean_squared_e
4、rror(y_true,y_pred)均方误差回归损失y_true:真实值y_pred:预测值return:浮点数结果mean_squared_error注:真实值,预测值为标准化之前的值1、LinearRegression与SGDRegressor评估2、特点:线性回归器是最为简单、易用的回归模型。从某种程度上限制了使用,尽管如此,在不知道特征之间关系的前提下,我们仍然使用线性回归器作为大多数系统的首要选择。小规模数据:LinearRegression(不能解决拟合问题)以及其它大规模数据:SGDRegressor问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢?经过训练后
5、,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的。简单的认为有这些特征的都是天鹅。因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。分析上图1分析上图2机器通过这些图片来学习天鹅的特征,经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的弯曲的,天鹅的脖子是长长的有点曲度,天鹅的整个体型像一个2且略大于鸭子。这时候机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。欠拟合过拟合模型复杂度过拟合与欠拟合过拟合:过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合,但
6、是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)欠拟合:欠拟合:一个假设在训练数据上不能获得更好的拟合,但是在训练数据外的数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)对线性模型进行训练学习会变成复杂模型欠拟合原因以及解决办法 原因:学习到数据的特征过少 解决办法:增加数据的特征数量过拟合原因以及解决办法 原因:原始特征过多,存在一些嘈杂特征,模型过于复杂是因为模型尝试去兼顾各个测试数据点 解决办法:进行特征选择,消除关联性大的特征(很难做)交叉验证(让所有数据都有过训练)正则化(了解)尽量减小高次项特征的影
7、响作用:可以使得W的每个元素都很小,都接近于0优点:越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象L2正则化带有正则化的线性回归-Ridge sklearn.linear_model.RidgeRidge sklearn.linear_model.Ridge(alpha=1.0)具有l2正则化的线性最小二乘法 alpha:正则化力度 coef_:回归系数观察正则化程度的变化,对结果的影响?线性回归 LinearRegression与Ridge对比岭回归:回归得到的回归系数更符合实际,更可靠。另外,能让估计参数的波动范围变小,变的更稳定。在存在病态数据偏多的研究中有较大的实用价值
8、。分类算法-逻辑回归 广告点击率 判断用户的性别 预测用户是否会购买给定的商品类 判断一条评论是正面的还是负面的逻辑回归是解决二分类问题的利器逻辑回归sigmoid函数逻辑回归公式公式:输出:0,1区间的概率值,默认0.5作为阀值注:g(z)为sigmoid函数逻辑回归的损失函数、优化(了解)与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解对数似然损失函数:完整的损失函数:cost损失的值越小,那么预测的类别准确度更高当y=1时:sklearn逻辑回归API sklearn.linear_model.LogisticRegressionLogisticRegressi
9、on sklearn.linear_model.LogisticRegression(penalty=l2,C=1.0)Logistic回归分类器 coef_:回归系数LogisticRegression回归案例 良恶性乳腺癌肿瘤预测pd.read_csv(,names=column_names)column_names:指定类别名字,Sample code number,Clump Thickness,Uniformity of Cell Size,Uniformity of Cell Shape,Marginal Adhesion,Single Epithelial Cell Size,B
10、are Nuclei,Bland Chromatin,Normal Nucleoli,Mitoses,Classreturn:数据replace(to_replace=,value=):返回数据dropna():返回数据pandas使用良恶性乳腺癌肿分类流程1、网上获取数据(工具pandas)2、数据缺失值处理、标准化3、LogisticRegression估计器流程LogisticRegression总结应用:广告点击率预测、电商购物搭配推荐优点:适合需要得到一个分类概率的场景缺点:当特征空间很大时,逻辑回归的性能不是很好(看硬件能力)多分类问题逻辑回归解决办法:1V1,1Vallsoftm
11、ax方法-逻辑回归在多分类问题上的推广将在后面的神经网络算法中介绍非监督学习的特点?“物以类聚,人以群分”非监督学习(unsupervised learning)主要方法:k-meansk-means步骤1、随机设置K个特征空间内的点作为初始的聚类中心2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行第二步过程k-means API sklearn.cluster.KMeansKmeans sklearn.cluster.KMe
12、ans(n_clusters=8,init=k-means+)k-means聚类n_clusters:开始的聚类中心数量init:初始化方法,默认为k-means+labels_:默认标记的类型,可以和真实值比较(不是值比较)1、降维之后的数据2、k-means聚类3、聚类结果显示k-means对Instacart Market用户聚类Kmeans性能评估指标Kmeans性能评估指标API sklearn.metrics.silhouette_scoresilhouette_score sklearn.metrics.silhouette_score(X,labels)计算所有样本的平均轮廓系数 X:特征值 labels:被聚类标记的目标值Kmeans总结特点分析:采用迭代式算法,直观易懂并且非常实用缺点:容易收敛到局部最优解(多次聚类)需要预先设定簇的数量(k-means+解决)