Unit 3 Logistic Regression
这一章主要介绍了Logistic Regression,这里回顾下基本操作。
课程地址:
https://www.edx.org/course/the-analytics-edge
读取数据
setwd("E:\\The Analytics Edge\\Unit 3 Logistic Regression")
framingham = read.csv("framingham.csv")
Randomly split the data into training and testing setslibrary(caTools)
set.seed(1000)
split = sample.split(framingham$TenYearCHD, SplitRatio = 0.65)
划分测试集,训练集
train = subset(framingham, split==TRUE)
test = subset(framingham, split==FALSE) ...
Coursera Cpp程序设计 week 6 Part 1
这一周的内容比较多,这里先回顾输入输出有关的内容。
课程地址:
coursera:C++程序设计
https://www.coursera.org/learn/cpp-chengxu-sheji
中国大学MOOC:程序设计与算法(三)C++面向对象程序设计
程序设计与算法(三)C++面向对象程序设计
输入和输出输入输出相关的类和输入输出相关的类由下图概括:
istream是用于输入的流类, cin就是该类的对象。
ostream是用于输出的流类, cout就是该类的对象。
ifstream是用于从文件读取数据的类。
ofstream是用于向文件写入数据的类。
iostream是既能用于输入,又能用于输出的类。
fstream 是既能从文件读取数据,又能向文件写入数据的类。
标准流对象
输入流对象: cin 与标准输入设备相连
输出流对象: cout 与标准输出设备相连
cerr 与标准错误输出设备相连
clog 与标准错误输出设备相连
缺省情况下,以下三者一样:
cerr << "Hello,world" << endl; ...
斯坦福算法专项课程Course1 Final Exam
这里回顾下第一门课的期末考试。
课程地址:https://www.coursera.org/specializations/algorithms
选择题 1回想一下我们在QuickSort和RSelect中使用的Partition子例程。假设以下数组刚刚围绕某个pivot元素分区:3,1,2,4,5,8,7,6,9
哪些元素可能是pivot元素?(提示:检查所有适用的,可能有多种可能!)
3
5
4
2
9
pivot左边的元素要小于pivot,右边的元素要大于pivot,所以4,5,9均满足条件
选择题 2这是一个十个整数的数组:5 3 8 9 1 7 0 2 6 4
假设我们在这个数组上运行MergeSort。在最外面的两个递归调用完成之后(即,在最后一个Merge步骤之前),部分排序数组的第7个位置的数字是多少?(当我们说“第7”位置时,我们是计算从1开始的位置;例如,输入数组在其第7位有一个“0”。)
1
3
4
2
最后一轮递归之前,数组的次序应该为1,3,5,8,9,0,2,4,6,7,所以第7个位置的元素为2
选择题 3MergeSort的渐近最坏情况运行时间是 ...
Neural Networks for Machine Learning Lecture 14
课程地址:https://www.coursera.org/learn/neural-networks
老师主页:http://www.cs.toronto.edu/~hinton
备注:笔记内容和图片均参考老师课件。
这周介绍了DBN和pre-train,这里主要回顾下选择题。
选择题 1Why is a Deep Belief Network not a Boltzmann Machine ?
A DBN is not a probabilistic model of the data.
All edges in a DBN are directed.
Some edges in a DBN are directed.
A DBN does not have hidden units.
DBN最顶层是RBM,这一层为无向边,其余每层为有向边,第三个选项正确。
选择题 2Brian looked at the direction of arrows in a DBN and was surprised to find that the data is at the “outpu ...
Coursera Cpp程序设计 week 5
这一周的内容主要是介绍虚函数与多态。
课程地址:
coursera:C++程序设计
https://www.coursera.org/learn/cpp-chengxu-sheji
中国大学MOOC:程序设计与算法(三)C++面向对象程序设计
程序设计与算法(三)C++面向对象程序设计
虚函数在类的定义中,前面有virtual关键字的成员函数就是虚函数,virtual 关键字只用在类定义里的函数声明中,写函数体时不用。
class base {
virtual int get() ;
};
int base::get()
{ }
多态的表现形式一
派生类的指针可以赋给基类指针。
通过基类指针调用基类和派生类中的同名虚函数时:
(1)若该指针指向一个基类的对象,那么被调用是基类的虚函数;
(2)若该指针指向一个派生类的对象,那么被调用的是派生类的虚函数。
这种机制就叫做“多态”。
例子:
class CBase {
public:
virtual void SomeVir ...
Unit 2 Linear Regression
这一章主要介绍了线性回归,这里回顾下基本操作。
课程地址:
https://www.edx.org/course/the-analytics-edge
读取数据,查看基本信息。
setwd("E:\\The Analytics Edge\\Unit 2 Linear Regression")
wine = read.csv("wine.csv")
str(wine)
'data.frame': 25 obs. of 7 variables:
$ Year : int 1952 1953 1955 1957 1958 1959 1960 1961 1962 1963 ...
$ Price : num 7.5 8.04 7.69 6.98 6.78 ...
$ WinterRain : int 600 690 502 420 582 485 763 830 697 608 ...
$ AGST : num 17.1 16.7 17.1 16.1 16.4 ...
...
Neural Networks for Machine Learning Lecture 13
课程地址:https://www.coursera.org/learn/neural-networks
老师主页:http://www.cs.toronto.edu/~hinton
备注:笔记内容和图片均参考老师课件。
这周介绍了Sigmoid Belief Networks,这里主要回顾下选择题。
对于一般的Sigmoid Belief Networks,网络及计算公式如下:
题目中的网络为
所以
\sigma(z) = \frac{1}{1+\exp(-z)}\\
P(v=1|h_1,h_2) =\sigma(w_1h_1 + w_2h_2)\\
P(h_1=1) =\sigma(0) =\frac 1 2 \\
P(h_2=1) =\sigma(0) =\frac 1 2$h_1,h_2$的概率是$\frac 1 2$是因为没有输入,由由于$h_1,h_2$没有连接,所以$h_1,h_2$独立,从而
P(v,h_1,h_2) = P(v|h_1,h_2) P(h_1,h_2) = P(v|h_1,h_2) P(h_1)P(h_2)选择题 2import numpy ...
Unit 1 An Introduction to Analytics
最近开始了Edx上The Analytics Edge课程的学习,这个课程主要讲授有关R语言的内容,这里会总结一些重点操作,这一章主要介绍了一些基本操作。
课程地址:
https://www.edx.org/course/the-analytics-edge
Basic Calculations来看几个基本运算
8*6
48
2^16
65536
Variables先定义几个变量
SquareRoot2 = sqrt(2)
SquareRoot2
1.4142135623731
HoursYear <- 365*24
HoursYear
8760
ls()操作可以看到有哪些变量。
ls()
‘HoursYear’ ‘SquareRoot2’
rm可以删除变量。
rm(HoursYear)
VectorsR中构建数组的方式是使用c(1,2)这样的形式,注意R中数组的索引从1开始
array = c(2,3,5,8,13)
array[1]
2
还有一种构建数组的方式是seq(0,100,2),类似于Python中的range(0,100,2),不同之处在于 ...
台大实分析单元 3 测度 1
这一讲将讨论测度以及可测性,介绍了非常重要的$\lambda -\pi$系方法。
Unit 2 Measurability2.1 Families of sets and set functions首先给出以下定义:
固定一个集合\Omega(称为全集)\\
\Phi :\Omega的非空子集族 \\
\tau: \Phi \to \overline {\mathbb R} = {\mathbb R} \bigcup \{-\infty ,\infty\} \\
\tau称为一个集合函数备注:这一章我们只考虑值域为正实数以及$\infty$的集合函数,即:
\tau: \Phi \to \overline {\mathbb R}^+ = {\mathbb R}^+ \bigcup \{\infty\}对于空集还做如下要求:
如果 {\varnothing} \in \Phi ,我们要求 \tau ({\varnothing}) = 0单调性:
我们称\tau是单调的,\\
如果A \subset B,A,B \in \Phi \Rightarrow \tau(A) \le ...
斯坦福算法专项课程Course1 week4习题解析
这一部分将带来Course1 week4的习题解析。
选择题选择题 1$n$个节点的树最多有多少个不同的minimum cuts?
$n$
$C_n^2$
$2^n -2$
$n-1$
树中minimum cuts对应的边的数量为$1$条,$n$个节点的树有$n-1$条边,每条边对应一个minimum cuts,所以一共有$n-1$个不同的minimum cuts
选择题 2让“output”表示Karger的min cut算法在给定$n$个点连通图上的结果,并令$p = \frac{1}{\binom n 2}$。
以下哪项陈述属实?
对于每个有$n$个顶点的图$G$和每个min cut $(A,B)$
\Pr [\text{out}=(A,B)] \le p
对于每个有$n$个顶点的图$G$,存在一个min cut $(A,B)$使得
\Pr [\text{out}=(A,B)] \ge p
对于每个有$n$个顶点的图$G$,存在一个min cut $(A,B)$使得
\Pr [\text{out}=(A,B)] \le p
对于每个有$n$个顶点的图$G$和每个mi ...
台大实分析单元 2 可加性
这一讲的内容是有关可加性。
先给出一个重要定义
对于a\in \mathbb R,按如下方式定义a^+,a^-\\
a^+=\begin{cases}
a, &a>0\\
0, & a\le 0
\end{cases} ,
a^-=\begin{cases}
-a, &a0, \exists A \in F(I),\\
s.t. 当B \in F(I), B \cap A =\varnothing时,|\sum_{\alpha \in B} C_\alpha|0\\
0, & a\le 0
\end{cases}所以
|\sum_{\alpha \in B} C_\alpha^{+}| = |\sum_{\alpha \in B'} C_\alpha| \\
B' \subset B又因为$B \cap A =\varnothing,B’ \subset B$,所以$B’ \cap A =\varnothing$,从而
\sum_{\alpha \in B} C_\alpha^{+} =|\sum_{\alpha \in B} C_\alpha^{+}| = |\sum ...
TensorFlow基本知识小结
在学习Coursera上MOOC时用到了TensorFlow,之前对这个内容不是很熟悉,这里稍微总结一些基本概念及其使用。
其实之前也看过TensorFlow,但是不是很理解其运作过程,直到MOOC中讲到计算图的时候总算是理解了,先看一个计算图:
我对TensorFlow的理解是TensorFlow先给出计算图的架构(tf.placeholder),将要计算的参数定义为变量(tf.get_variable),然后定义损失函数以及训练方法,注意这些步骤并没有涉及到实际运算,只是把上述计算图及一些相关量搭建好,等这个步骤完成之后,我们再喂入数据进行训练即可,具体流程如下:
来看一个例子,该例子来自于Coursera上Introduction to Deep Learning第二周的内容,这个例子是有关MNIST数据集手写数字识别,这里只给出部分重要的代码。
s = tf.InteractiveSession()
D = 784
### YOUR CODE HERE ### tf.placeholder(...) for flat X with shape[0] = None for ...