基于Python的理论与实现-1
前言:此笔记是基于斋藤康毅先生所著的《深度学习进阶:自然语言处理 》,希望能给各位带来些许思考和灵感,共勉。
第一章 Python相关知识NumPy在深度学习的实现中,经常出现数组和矩阵的计算。NumPy的数组类(numpy.array)中提供了很多便捷的方法。
导入NumPyimport numpy as np
Python 中使用import 语句来导入库。这里的import numpy as np,直译的话就是“将numpy作为np 导入”的意思。通过写成这样的形式,之后NumPy相关的方法均可通过np来调用。
NumPy算术运算1234x = np.array([1.0, 2.0, 3.0])y = np.array([2.0, 4.0, 6.0])x + y # 对应元素的加法array([ 3., 6., 9.])
当x和y的元素个数相同时,可以对各个元素进行算术运算。如果元素个数不同,程序就会报错,所以元素个数保持一致非常重要。
NumPy数组也可以和单一的数值(标量)组合起来进行运算。此时,需要在NumPy数组的各个元素和标量之间进行运算。这个功能也被称为广播
123 ...
Acw算法基础
前言此笔记基于Acwing算法基础课程。
第一章 基础算法快排基本思想:
确定分界点x:可以是左边界,可以是右边界,可以是左右边界的一半,也可随机取一个点为x。
调整区间:使得x左边的数都小于等于x,x右边的数都大于等于x。
递归处理左右两段。
代码模板如下:
1234567891011121314151617181920212223public static void quickSort(int[] q, int l, int r) { if (l >= r) return; //(l+r)>>相当于l+r/2 int x = q[(l+r)>>1]; //Define positions of two pointers int i = l - 1; int j = r + 1; while (i < j) { do i++; while (q[i] < x); do j--; while (q[j ...
C++学习笔记
前言基础1. 数组1. 一维数组定义
2. 二维数组定义
2. 函数函数的定义一般主要有5个步骤:
返回值类型
函数名
参数表列
函数体语句
return表达式
1234int add(int num1,int num2){ int sum=num1+num2; return sum;}
值传递时形参改变不了实参
2.1 函数的声明作用:告诉编译器函数名称及如何调用函数,函数的实际主体可以单独定义。
2.2 函数的分文件编写作用:让代码结构更加清晰
函数分文件编写一般有4个步骤:
创建后缀为.h的头文件
创建后缀名为.cpp的源文件
在头文件中写函数的声明
在源文件中写函数的定义
注意include后面加绝对路径
3. 指针3.1 指针基本作用指针的作用:可以通过指针间接访问内存
内存编号是从0开始记录的,一般用十六进制数字表示
可以利用指针变量保存地址
3.2 指针的定义和使用定义指针:数据类型*指针变量名:
123456789// 1.定义指针:数据类型*指针变量名: int a=10; int *p; p=&a; // 2. ...
决策树
1. 基本流程决策树是基于树的结构来进行决策的,例如例如我们要对“这是好瓜吗”这样的问题来进行决策,通常会进行一系列的判断:我们先看“它是什么颜色?”,如果是“青绿色”,则我们再看“它的根蒂是什么形态?”,如果是“蜷缩”,我们再判断“它敲起来是什么声音?”,最后,我们得出最终决策:这是个好瓜。这个决策过程如下图所示:
从根结点到每个叶结点的路径对应了一个判定测试序
决策树学习的基本流程如下:
2. 划分选择决策树学习的关键在于如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高.
2.1 信息增益信息熵是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k 类样本所占的比例为则D的信息熵定义为:其中表示一共有多少类
Ent(D)的值越小,则D的纯度越高
一般而言,信息增益越大,意味着使用属性a来划分所获得的“纯度提升”越大,因此,可用信息增益来进行决策树的划分属性选择。著名的ID3决策树学习算法就是以信息增益来进行属性划分的。
以如下图为例:
显然=2.在决策树学习开始时,根 ...
KNN分类测试
部分代码用法ndarray数组采用的是广播式运算,即可以一个数组加减一组数组,示例如下:
123m = np.array([1,2,3])n = np.array([[4,5,6],[7,8,9]])m-n
结果如下:
12array([[-3, -3, -3], [-6, -6, -6]])
对结果分别平方求和可用代码:
12x= np.sum((m-n)**2, axis=1)x
结果如下:
1array([ 27, 108], dtype=int32)
KNN分类1. 读取数据12import numpy as npimport pandas as pd
123456789101112131415161718192021222324# 读取鸢尾花数据集,header参数来指定标题的行,默认为0,如果没有则使用Nonedata = pd.read_csv(r"iris.csv", header = 0)# 显示前n行记录,默认为5# data.head(10)# 随机显示记录,默认值为1# data.sample(10)# 将类别文本映射成 ...
机器学习笔记
序言这次准备跟着斯坦福CS229进行机器学习的学习,想着之前有看过吴恩达老师的课程讲解,但是没有动过手,因此了解还是比较模糊,希望这次能够多动手来理解,然后我朋友还推荐了224n和224w,打算等着这个基础看完再去学习。另我学长推荐了林轩田,但我看推导公式的时候有些迷糊,打算也许之后再看看?
本篇是我自己的学习记录,如果对你有所帮助就是我最大的快乐,那么话不多说,一起进入学习吧!
注意由于要在博客里显示图片,对md文件里面的图片进行了路径的修改,即,现在的路径为:
原因就是hexo的读取图片的路径和typora不一致,我们需要在typora文字编辑界面中把图片路径从 同名文件夹\imagename 修改为 imagename 。可以直接使用typora 的Ctrl+F 进行全局替换,将路径前缀替换为空即可。若想获取原路径只需添上去掉的路径名即可
CS229第一部分 线性回归(linear regression)线性回归也许是最简单的学习算法之一。
咱们先来聊几个使用监督学习来解决问题的实例。假如咱们有一个数据集,里面的数据是俄勒冈州波特兰市的 套房屋的面积和价格:
居住面积(平 ...
重启博客
我回归了!有点感慨,没想到第二次弄博客依然弄了好久好久qaq
但是呢,这次希望能够坚持更新,自己打算机器学习,或许会努力更一些机器学习的学习笔记,共勉!
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment