关键词:
本次课有两部分,KNN的模型分析以及回归分析
KNN模型分析
1.K值选取
选择K的时候要特别注意K的大小,适中才最好
要求太高会导致过拟合,低bias(偏差),太低则无法拟合,高bias。
2.训练与测试
收集的数据集,先分成测试集与训练集,一般训练集略大于测试集。
训练集用来训练模型(fit the model)
测试集则用来检测训练效果,使用模型测试数据,与提供的标签进行比较,最后计算误差判断效果。
训练模式如下图
3.错误分析
模型复杂程度与错误率有一定关系
cross validation error 是交叉验证错误,发生在训练好的模型在测试的时候
training error 是训练错误,发生在训练模型的时候
从这个角度再去看拟合不足,适中与过拟合的情况
计算交叉错误得分
线性回归
1.简介
即尝试寻找一条直线用来预测输入X与输出Y的关系,训练完成后,通过输入想要预测的X就可以获得预测值Y。
2.偏差
计算偏差可以是简单的Y_predict-Y_observe
可以计算错误平均方差
这里引入成本函数的概念,通过该函数判断 β0与β1是否合适
因此我们就有了如下训练方案
(1)使用成本函数判断当前模型效率
(2)设计多种不同的模型
(3)比较这些模型得出效果最好的那一个
关于错误检测还有其他三种方法
3.线性回归与KNN比较
线性回归 | KNN |
拟合时设计最小化成本(速度慢) | 拟合时设计存储训练数据(速度快) |
模型参数少(记忆效率高) | 模型参数多(记忆密集) |
预测速度快 | 预测速度慢 |
4.线性回归实例
高级线性回归
1.转换
比例尺缩放本身就是一种特征转换
我们往往以为我们提供的数据是正态分布的,但可能它们其实是很偏的,数据转换就可以解决这个问题
特征的类型可能是连续的数值类型,对应转换可变成标准缩放、最大最小缩放
也可能是二元类型(eg:真、假),可转换为01(one-hot encoding)
from sklearn.preprocessing import LabelEncoder, LabelBinarizer, OneHotEncoder
也可能是离散的有序类型(比如电影差、一般、普通、良、优秀评级),对应转换为(1,2,3,4,5)
from sklearn.feature_extraction import DictVectorizer
from pandas import get_dummies
2.多项式特征
回归分析不一定建立的是一条回归直线
甚至还可以增加变量
那么如何才能选择正确的回归关系呢?
挨个挨个试吧
最后给个实例
Q1
问题1:使用pandas导入数据,销售价格将作为我们的预测值。价差不同数据类型的数量。
Q2
问题2(看不懂啊。。。):处理多列数据时要确保每一列都能正确地编码。
完全不懂。。。
Q3
问题3:让我们创建一个新的数据集,其中所有上述分类特征将是单热编码的。 我们可以拟合这些数据,看看它如何影响结果。使用dataframe .copy()方法为one-hot编码创建数据帧的完全独立副本。在这个新的数据帧上,对每个适当的列进行one-hot编码,然后将其添加回数据帧。 确保已删除原始列。对于非热编码的数据,请删除字符串分类的列。对于第一步数字编码字符串分类,可以使用Scikit-learn; s LabelEncoder或DictVectorizer。 然而,前者可能更容易,因为它不需要为每个类别指定数值,并且我们将对所有数值进行one-hot编码。
勉强分析。。应该是对string类型进行统计,编码,然后删掉。快去请卢来佛祖。。。
Q4
问题4:对每个数据集分别切分测试集与训练集,确保使用同样的方式拆分。对于每个数据集进行基本线性回归的你和训练,计算相应模型的测试集与训练集的均方误差。
注意到one-hot编码错误率在训练集与测试集中差别巨大,这是因为过拟合,下一讲介绍如何处理它。
Q5
问题5:对于每个数据集使用标准缩放、最大最小缩放或者最大绝对值缩放来处理非热数据,比较测试集上的误差。
发现缩放对于非热编码影响不大,但是标准缩放对于one-hot编码具有巨大影响,直接不能用了。
Q6
问题6:画图预测模型
seaborn画图确实好看
solidity学习记录——第二章(代码片段)
Solidity学习记录第一章创建生产僵尸的工厂第二章设置僵尸的攻击功能文章目录Solidity学习记录前言一、本章主要目的二、学习过程1.本节课程知识点2.最终代码总结前言本人平时比较忙,只能在周末自学Solidity,尽量在周... 查看详情
学习httprunner记录03
使用httprunner3.x版本python版本是3.6测试环境是zendao以下为脚本:#NOTE:GeneratedByHttpRunnerv3.1.0#FROM:assign_me.harimportrefromhttprunnerimportHttpRunner,Config,Step,RunRequest,RunTestCaseclassTestCaseAssignMe(HttpRun 查看详情
9月6日学习记录
早晨学习了网易云课堂的《PythonWeb全栈工程师》课程的预习课程<做一个静态网页>。自己手动过了一遍视频教程的代码,过程很成功,明天做这个系列的课后作业。下午,学习了中国大学MOOC课程的《Python网络爬虫与信息提取... 查看详情
solidity学习记录——第四章(代码片段)
Solidity学习记录第一章创建生产僵尸的工厂第二章设置僵尸的攻击功能第三章编写DAPP所需的基础理论第四章完善僵尸功能文章目录Solidity学习记录前言一、本章主要目的二、学习过程1.本节课程知识点2.最终代码总结前言国庆假期... 查看详情
视频学习记录day03
2017032121:00-上节目录知识回顾:必须掌握的重要目录/etc/sysconfig/network-scripts/ifcfg-eth0 第一块网卡的配置文件/etc/resolv.conf DNS配置文件/etc/hosts 静态路由配置文件/etc/sysconfig/network 查看详情
《高级软件测试》实践作业3学习记录12月23日
...老师的提示,最终我们决定主要围绕课程公告、课程内容学习(含视频、文档、富文本文档等)、课程随堂测验提交、单元作业(特别是互评作业)的提交、修改、评分等功能选取其中几种展开 查看详情
employeemapper.xml例子,学习佟刚老师的mybatis课程,记录下的employeemapper.xml,注释详细
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.atguigu.mybatis.dao.Employ 查看详情
数学建模(学习记录)——层次分析法
准大二小白暑假准备高教杯,为了督促自己学习数学建模,来记录下学习情况。自己所学课程由清风老师讲解,文章末尾有其公众号及试听课地址。该课程主要讲解了十个模型,并讲解了相应的常用算法。———... 查看详情
诶西,javascript学习记录。。。。。。
...故,老师巨爱叫人问问题,还记分呢,随便记录一下Js的学习情况,以后复习什么的也比较方便吧。。。。。。 开始咯,就按照C语言学习那样的方法来吧!==================================割割割==================================1.数据类型... 查看详情
2016.03.04///java学习记录①
import java.util.Scanner;public class xinxi { public static void main(String[] aa) { Scanner in = new Scanner(System.in); //创建Sc 查看详情
寒假学习记录第六天
统计学生成绩学生的成绩清单格式如下所示,第一行为表头,各字段意思分别为学号、性别、课程名1、课程名2等,后面每一行代表一个学生的信息,各字段之间用空白符隔开IdgenderMathEnglishPhysics301610male806478301611fema... 查看详情
2016.03.29///java学习记录③
package 身高5尺7寸; import java.util.Scanner; public class 身高5尺7寸 { public static void main(String[] args) { & 查看详情
2016.03.29///java学习记录②
650)this.width=650;"src="/e/u261/themes/default/images/spacer.gif"style="background:url("/e/u261/lang/zh-cn/images/localimage.png")no-repeatcenter;border:1pxsolid#ddd;"alt="spacer.gif"/>题目:将 查看详情
03-表操作1
写在前面的话:该系列博文是我学习《 Hive源码解析与开发实战》视频课程的一个笔记,或者说总结,暂时没有对视频中的操作去做验证,只是纯粹的学习记录。有兴趣看该视频的博友可以留言,我会共享出来,相互交流学... 查看详情
机器学习单词记录--03章线性代数回顾
Matrices、matrix矩阵 vectors向量array 排列Element元素Amatrix isa rectangulararrayofnumbers,writtenbetweensquarebrackets矩阵是由数字组成的矩形阵列,并写在方括号内 Squarebracket方括号abunchof 一堆Row行& 查看详情
20190501学习记录
这是一个思考框架,利用ORID整理今天的思绪。Objective关于今天的课程,你记得什么?完成了什么?记得:写一个论坛小程序,功能包括:话题列表(CRUD)、文章页面(新增)、文章分页、注册登录退出,还有登录验证、用户权限认... 查看详情
寒假学习记录第九天
今天弄了一下实验四shell的基础题请到本教程官网的“下载专区”的“数据集”中下载chapter5-data1.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim... 查看详情
solidity学习记录——第五章(代码片段)
Solidity学习记录第一章创建生产僵尸的工厂第二章设置僵尸的攻击功能第三章编写DAPP所需的基础理论第四章完善僵尸功能第五章ERC721标准和加密资产文章目录Solidity学习记录前言一、本章主要目的二、学习过程1.本节课程知识点2.... 查看详情