# -*- 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与机器学实践-何宇健 源代码及过程中遇到的问题的更多相关文章

  1. 【机器学*】k*邻算法-03

    心得体会: 需要思考如何将现实对象转化为特征向量,设置特征向量时记住鸭子定律1 鸭子定律1 如果走路像鸭子.说话像鸭子.长得像鸭子.啄食也像鸭子,那它肯定就是一只鸭子 事物的外在特征就是事物本质的表现 ...

  2. 【机器学*】k*邻算法-02

    k邻*算法具体应用:2-2约会网站配对 心得体会: 1.对所有特征值进行归一化处理:将特征值单位带来的距离影响消除,使所有特征同权重--然后对不同的特征进行加权2.对于相互独立的特征,可以通过建立(特 ...

  3. Python & 机器学习之项目实践

    机器学习是一项经验技能,经验越多越好.在项目建立的过程中,实践是掌握机器学习的最佳手段.在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学习机器学习的目的. 预测模型项目模板不能 ...

  4. paip.python连接mysql最佳实践o4

    paip.python连接mysql最佳实践o4 python连接mysql 还使用了不少时间...,相比php困难多了..麻烦的.. 而php,就容易的多兰.. python标准库没mysql库,只 ...

  5. paip.python ide 总结最佳实践o4.

    paip.python ide 总结最佳实践o4. ====2个重要的标准 1.可以自动补全 2.可以断点调试 =======选型使用报告 Komodo正好儿俄机器上有,使用累挂,自动补全还凑火.就是 ...

  6. Python数据分析入门与实践 ✌✌

    Python数据分析入门与实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 这是一个数据驱动的时代,想要从事机器学习.人工智能.数据挖掘等前沿技术,都离不开 ...

  7. Python数据分析入门与实践

    Python数据分析入门与实践 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关 ...

  8. 【机器学*】k-*邻算法(kNN) 学*笔记

    [机器学*]k-*邻算法(kNN) 学*笔记 标签(空格分隔): 机器学* kNN简介 kNN算法是做分类问题的.思想如下: KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数 ...

  9. Python 从入门到实践 试一试 参考代码

    这两天学习Python 看了python从入门到实践的书籍,里面有课后题“试一试” 然后就跟着写了,代码在以下地址,如果需要自取 https://files.cnblogs.com/files/fud ...

随机推荐

  1. 利用Effmpeg 提取视频中的音频(mp3)

    在B站看到一个up发的病名为爱的钢琴曲,感觉很好听,然后当然是要加入歌单啊.然而不知道怎么转换成mp3,找来找去找到了EFFmpeg 这篇只是达到了我简单的需求,以后可能会有EFFmpeg更详细的使用 ...

  2. 数据分析之pandas教程------数据处理

    目录 1  数据合并 1.1  实现数据库表join功能 1.2  实现union功能 2  数据转换 2.1  轴旋转 2.2  数据转换 2.2.1  去重 2.2.2  对某一列运用函数 2.2 ...

  3. spring使用中问题汇总

    1.配置文件找不到beans元素:可能是xsd与spring版本不一致,导致无法效验: 解决方案:将applicationContext.xml中xsd文件定义的版本改为spring jar包中定义的 ...

  4. Linux常用命令手册

    Linux常用命令手册 NO 分类 PS1 命令名 用法及参数 功能注解 对应章节 1 文件管理 # ls ls -a 列出当前目录下的所有文件,包括以.头的隐含文件     文件管理 # ls ls ...

  5. 实现dedecms全站动态浏览 并实现伪静态

    dedecms默认是生成静态文件,如何实现织梦全站动态浏览呢? 织梦全站动态浏览方法 1. 修改首页为动态浏览 后台-生成-更新首页-勾选"仅动态浏览" 2. 修改栏目页为动态浏览 ...

  6. 深入cocos2d-x中的touch事件

    深入cocos2d-x中的touch事件 在文章cocos2d-x中处理touch事件中简单讨论过怎样处理touch事件, 那么今天来深入了解下cocos2d-x中是怎样分发touch事件的. 我们最 ...

  7. Ubuntu下利用Apache转发模块实现反向代理

    Apache的反向代理主要利用转发模块,proxy和proxy_http 先配置 Apache 支持proxy 和 proxy_http 在Ubuntu系统下,Apache的配置文件在目录/etc/a ...

  8. Python 脚本实现对 Linux 服务器的监控

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 原文地址 由于原文来自微信公众号,并且脚本都是图片,所以这里 ...

  9. 基于Centos7的autobahn-python+crossbar的环境搭建

    一.基于centos7的crossbar安装(已经安装好python) (1) sudo yum update (2) sudo yum install gcc gcc-c++ make openss ...

  10. mdb导入SqlServer

    弄了一份医案数据库,打开一看...命名全中文,好吧,导入SQLServer走起 SQL: SELECT * INTO newtable FROM OPENDATASOURCE ('Microsoft. ...