python与机器学实践-何宇健 源代码及过程中遇到的问题
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
import numpy as np
import matplotlib.pyplot as plt
#第一步 获取与处理数据
x,y=[],[] #定义存储输入数据和目标数据的数组
for sample in open('a.txt','r'): #遍历数据集并保存
_x,_y=sample.split(",")
x.append(float(_x))
y.append(float(_y))
x,y=np.array(x),np.array(y) #转化为numpy数组
x=(x-x.mean())/x.std() #标准化
#将原始数据以散点图的形式画出
plt.figure()
plt.scatter(x,y,c="g",s=6)
plt.show
#第二步:选择与训练模型
#模型:多项式拟合 多项式拟合散点是线性回归很小的一部分
x0=np.linspace(-2,4,100) #在(-2,4)这个区间上取100个点作为画图的基础
#核心代码 仔细研究 建立回归模型
def get_model(deg):#得到模型,这一步尤其重要,要仔细分析
return lambda input_x=x0: np.polyval(np.polyfit(x,y,deg),input_x)
def get_cost(deg,input_x,input_y):#返回损失值
return 0.5*((get_model(deg)(input_x)-input_y)**2).sum()
test_set={1,4,10}
for d in test_set:
print(get_cost(d,x,y))
#第三步:评估与可视化结果
plt.scatter(x,y,c="g",s=20)#s是点的大小即size
for d in test_set:
plt.plot(x0,get_model(d)(),label="degree={}".format(d))
plt.xlim(-2,4)
plt.ylim(1e5,8e5)
plt.legend()
plt.show
过程中遇到的问题:
1.在获取与处理数据的过程中,文件老是找不到,在这里有两种常见的错误
(1)FileNotFoundError: [Errno 2] No such file or directory: 'C:/a.txt'
错误分析与解决:可能是文件路径写错了,也可能是文件名写错了,检查自己设置的文件名后缀,我的错误就是没注意文件名后缀,结果我的文件名实际上是a.txt.txt,所以说一直提示我找不到文件,后来在保存文件的地方重新设置显示文件扩展名,顺利解决问题,可以将数据文件和py源文件放在一个文件夹下,就可以只输入文件名,而不输入文件路径
(2)SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
错误分析与解决:
从他的博客取经的
@淘气小子
原因:
window 读取文件可以用\,但是在字符串中\是被当作转义字符来使用,所以’d:\a.txt’会被转义成’d:\a.txt’这是正确路径,所以不会报错。而‘C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg ’中经过转义之后可能就找不到路径的资源了,例如\t可能就转义成tab键了。
解决办法
python在描述路径时可以有多种方式,现列举常见的三种
方式一:转义的方式
'd:\\a.txt'
方式二:显式声明字符串不用转义
'd:r\a.txt'
方式三:使用Linux的路径/ 最推荐
'd:/a.txt'
我强烈推荐第三种写法,这在Linux和window下都是行的通的。
2.标签的正确拼写 label 这个错误犯过很多次了,每次拼写成lable,导致报错,去网上搜还出来一堆看起来特别合理的解释,说什么IDE问题,哎,实际上就是粗心大意拼写错误
3.#核心代码 仔细研究 建立回归模型,多看多思考
def get_model(deg):#得到模型,这一步尤其重要,要仔细分析
return lambda input_x=x0: np.polyval(np.polyfit(x,y,deg),input_x)
def get_cost(deg,input_x,input_y):#返回损失值
return 0.5*((get_model(deg)(input_x)-input_y)**2).sum()
python与机器学实践-何宇健 源代码及过程中遇到的问题的更多相关文章
- 【机器学*】k*邻算法-03
心得体会: 需要思考如何将现实对象转化为特征向量,设置特征向量时记住鸭子定律1 鸭子定律1 如果走路像鸭子.说话像鸭子.长得像鸭子.啄食也像鸭子,那它肯定就是一只鸭子 事物的外在特征就是事物本质的表现 ...
- 【机器学*】k*邻算法-02
k邻*算法具体应用:2-2约会网站配对 心得体会: 1.对所有特征值进行归一化处理:将特征值单位带来的距离影响消除,使所有特征同权重--然后对不同的特征进行加权2.对于相互独立的特征,可以通过建立(特 ...
- Python & 机器学习之项目实践
机器学习是一项经验技能,经验越多越好.在项目建立的过程中,实践是掌握机器学习的最佳手段.在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学习机器学习的目的. 预测模型项目模板不能 ...
- paip.python连接mysql最佳实践o4
paip.python连接mysql最佳实践o4 python连接mysql 还使用了不少时间...,相比php困难多了..麻烦的.. 而php,就容易的多兰.. python标准库没mysql库,只 ...
- paip.python ide 总结最佳实践o4.
paip.python ide 总结最佳实践o4. ====2个重要的标准 1.可以自动补全 2.可以断点调试 =======选型使用报告 Komodo正好儿俄机器上有,使用累挂,自动补全还凑火.就是 ...
- Python数据分析入门与实践 ✌✌
Python数据分析入门与实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 这是一个数据驱动的时代,想要从事机器学习.人工智能.数据挖掘等前沿技术,都离不开 ...
- Python数据分析入门与实践
Python数据分析入门与实践 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关 ...
- 【机器学*】k-*邻算法(kNN) 学*笔记
[机器学*]k-*邻算法(kNN) 学*笔记 标签(空格分隔): 机器学* kNN简介 kNN算法是做分类问题的.思想如下: KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数 ...
- Python 从入门到实践 试一试 参考代码
这两天学习Python 看了python从入门到实践的书籍,里面有课后题“试一试” 然后就跟着写了,代码在以下地址,如果需要自取 https://files.cnblogs.com/files/fud ...
随机推荐
- JS 特殊字符的验证的问题
个人的JS 的收集方便下次的使用做百度查询: 1. 特殊字符的验证: var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].&l ...
- 插上腾飞的翅膀:为asp.net core添加protobuf支持
没时间解释了,快上车. 通过NuGet获取Zaabee.AspNetCoreProtobuf Install-Package Zaabee.AspNetCoreProtobuf 在Startup.cs ...
- java中的foreach用法及总结
增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集合. part1定义了一个局部变量,这个局部变量的类型与part2中的对象元素的类型是一致的. pa ...
- egametang启动配置
egametang的启动配置文件可以在Unity的Tools->命令行配置中修改保存然后启动 如果需要添加自定义的启动配置项目,只需要修改客户端的 ServerCommandLineEditor ...
- 将Word表格中单元格中的文字替换成对应的图片
示例 原文件结构: 替换后文档结构: 软件截图: 代码: using System;using System.Collections.Generic;using System.ComponentMod ...
- JavaScript面向对象入门
什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用[String.Date.Array]等等 javaScrip ...
- Winform美化MessageBox
现在在做的项目美工要求比较高,所以根据网上搜索的资料,自定义了一整套的弹出框,供大家参考,之网上其他大神有调用系统ICO的,容易导致异常,我在此使用本地资源ICO,效率高不异常.using Syste ...
- 【天坑】ASP.net WebAPI跨域调用问题
最近在做一个项目,前端是VUE,后端是WebAPI,业务也就是一些实体的增删改查.在项目开始的时候我就预计到有跨域的问题,所以也找了一下资料,在Web.Config里面加上了配置信息: <htt ...
- Docker系列二:Docker的基本结构
Docker的基本结构 Docker 的三大基础组件 Docker有三个重要的概念:仓库 , 镜像 和 容器 ,它们是Docker的三大基出组件 Docker的组织结构 Docker处于操作系统和虚拟 ...
- MAVEN自动发布更新本地和远程仓库
1.本地仓库 的更新 mvn clean package install 2.远程 仓库 的更新 mvn clean package deploy 2.1工程文件pom.xml的设置 <bu ...