吴恩达机器学习 linear_regression笔记(1)

重新学习吴恩达课程的代码
https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes/blob/master/code/ex1-linear regression/1.linear_regreesion_v1.ipynb

1 Seaborn
1.1什么是 Seaborn
https://blog.csdn.net/qq_40130759/article/details/79528650
1.2 Seaborn库 安装
进入anaconda prompt,输入 pip install seaborn
在这里插入图片描述
2 什么是pandas
https://blog.csdn.net/shangboerds/article/details/83477025
3 pd.read_csv(),遇到中文路径报错does not exist
在网上下载数据,并随意存放在习惯性存放数据的一个文件夹中,并命名为ex1data1.txt
3.1 路径读取失败
在这里插入图片描述
3.2 添加绝对路径仍然读取失败
在这里插入图片描述
3.3使用以下方法仍然未解决
在这里插入图片描述
失败
在这里插入图片描述
3.4 最后在stack overflow 上找到原因
https://stackoverflow.com/questions/39267614/csv-file-does-not-exist-pandas-dataframe
在保存文件时,我给文件命名为‘ex1data1.txt’,而代码实际读取成了‘ex1data1.txt.txt’,
在这里插入图片描述
圆圈是正确的,而箭头是错误的
并且无论是相对路径,还是绝对路径都可以正确使用。
4、pandas的 .describe() .head() 使用失败
在这里插入图片描述
要显示数据,必须print(data.head())
在这里插入图片描述
5、pd.concat()
https://www.jianshu.com/p/421f040dfe2f
横向连接,axis = 0; 纵向连接,axis = 1
6、DataFrame 是一个【表格型】的数据结,将Series的使用场景从一维拓展到多维
https://blog.csdn.net/lm_is_dc/article/details/81114088
在这里插入图片描述
7、.iloc
Pandas中loc和iloc函数用法详解
https://blog.csdn.net/qq_33217634/article/details/88423660
在链接博文基础上,测试以下代码,有助于理解
在这里插入图片描述print(data.iloc[:,:-2])
在这里插入图片描述
8、tensorflow中创建variable的2种方式
8.1 tf.Variable()只要使用该函数,一律创建新的variable,如果出现重名,变量名后面会自动加上后缀1,2….
8.2 tf.get_variable():如果变量存在,则使用以前创建的变量,如果不存在,则新创建一个变量
8.3 name_scope 与variable_scope 的区别: 词头 区别
在这里插入图片描述
9、浅谈 Python 的 with 语句
https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/
10、np.ones()
可以直接输入 help(np.ones)
在这里插入图片描述
11、np.random.seed()
http://www.cnblogs.com/fpzs/p/10153753.html
设置相同的seed()参数,每次生成的随机数相同
在这里插入图片描述
12.代码的理解
在这里插入图片描述
12.1 df = pd.read_csv(‘ex1data1.txt’, names=[‘Population’, ‘Profit’])
#ones是len(df)行 1列,元素 全为1.0 的dataframe
ones = pd.DataFrame({‘ones’: np.ones(len(df))})
结果只展示了后小半段
在这里插入图片描述
12.2
ones = pd.DataFrame({‘ones’: np.ones(len(df))})
data = pd.concat([ones, df], axis=1) # 合并数据,根据列合并
在这里插入图片描述
12.3.as_matrix()的作用
很多时候取得的数据是DataFrame的形式,这个时候要记得转换成数组,会谨慎使用下面的代码
x = datas.iloc[:,:].as_matrix()
但是这个用法已经淘汰,会出现FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.
只需要进行如下转换
x = datas.iloc[:,:].values
注意values无括号

13 tf.placeholder() 为什么要使用占位符!!
Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。我们知道,很多python程序的底层为C语言或者其他语言,执行一行脚本,就要切换一次,是有成本的,tensorflow通过计算流图的方式,帮你优化整个session需要执行的代码,还是很有优势的。
所以placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。

tf.placeholder(
dtype,
shape=None,
name=None
)
dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)
name:名称
14 Tensorflow——tf.matmul() 和tf.multiply() 的区别
https://www.jianshu.com/p/b6be1cacd94c
15、@ 是什么作用,以及转置不熟练????
16、求偏导
数学推演
在这里插入图片描述
在这里插入图片描述
最终运行代码保存在
E:\Program Files\Python3.5\linear_regression.py

发布了17 篇原创文章 · 获赞 5 · 访问量 5171

猜你喜欢

转载自blog.csdn.net/Emily_Buffy/article/details/89303440