机器学习
文章平均质量分 63
Baoli1008
233
展开
-
Stanford 机器学习 Week2 作业: Linear Regression
Plotting the Datadata = load('ex1data1.txt'); % read comma separated dataX = data(:, 1); y = data(:, 2);m = length(y); % number of training examplesplot(x, y, 'rx', 'Mar原创 2016-02-08 22:37:09 · 1465 阅读 · 0 评论 -
Stanford 机器学习笔记 Week8 Unsupervised Learning
ClusteringK-Means Algorithm一种经典的聚类算法,步骤很简单,分4步:1.首先随机选择K个聚类中心 2.对于Training Set中的每个点i,计算离i最近的中心c(i),将该点标记为c(i) 3.对于每个中心k,重新计算该位置为:所有标记为k的点的平均位置 4.如果所有中心的位置都不变,算法结束。否则回到步骤2当在第2步时发现对于某中心没有属于的点,可以直接将该中心原创 2016-03-19 21:12:03 · 1273 阅读 · 0 评论 -
Stanford 机器学习笔记 Week8 Dimensionality Reduction
MotivationMotivation I: Data Compression降维可以做数据压缩,减少冗余信息从而减小存储空间。2D向1D降维: cm 和 inches都表示长度,属于冗余信息,可以用z向量做新的维度,用1维就可以表示长度。3D向2D降维: 在左侧的原始数据中,所有点都接近一个平面,这说明存在冗余维度。将所有点投影到该平面形成中间图。用向量z1,z2做新的维度,降到2维原创 2016-03-19 23:16:33 · 1084 阅读 · 0 评论 -
《机器学习实战》实践心得 kNN篇
生成数据:首先建立一个模块KNN.py,写一个生成数据的函数from numpy import *import operatordef createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B'] return group, labels在pyt原创 2016-02-23 16:26:23 · 2383 阅读 · 0 评论 -
Stanford 机器学习笔记 Week10 Large Scale Machine Learning
Gradient Descent with Large DatasetsLearning With Large Datasets在处理海量数据时对算法会有更高的要求。比如在计算偏导数时,当m很大时对m个元素求和的开销会很大。因此在将算法应用于海量数据时最好先确定算法没有high-bias,方法就是绘制leaning curve,左图是high-varience的,增大数据量会改善算法表现,而右图hi原创 2016-03-30 14:46:58 · 1561 阅读 · 0 评论 -
Stanford 机器学习 Week4 作业 Multi-class Classification and Neural Networks
Vectorizing regularized logistic regressionm = length(y); % number of training examplesJ = 0;grad = zeros(size(theta));J = sum( -y .* log(sigmoid(X*theta)) - (1 - y) .* log(1 - sigmoid(X*theta))) /原创 2016-02-22 14:20:48 · 2690 阅读 · 1 评论 -
Stanford 机器学习 Week8 作业:K-means Clustering and Principal Component Analysis
FindClosestCentroidsfor i = 1:size(X,1) dis = sum((centroids - X(i,:)) .^ 2, 2); [t, idx(i)] = min(dis);endComputeCentroidsfor i = 1:K id = find(idx == i); tot = X(id,:); centroids原创 2016-03-20 23:22:41 · 1864 阅读 · 0 评论 -
为什么logistic regression要使用sigmoid函数
转自:JUN’S TECH BLOG http://leijun00.github.io/2014/08/logistic-regression/我们知道,线性回归模型输出的是一个连续值,如果我们要输出的不是连续值,该怎么做呢?假设我们的输出只有 1 和 -1. 逻辑回归模型形式上是把线性回归模型做一个变换,让其输出是一个 0 到 1 之间的数,假设我们的变换叫做 g(z)g(z),然后在变换后转载 2016-03-23 16:58:27 · 7795 阅读 · 0 评论 -
Stanford 机器学习笔记 Week3 Classification and Representation
Classification and RepresentationClassification分类问题的预测返回值为离散量。以0,1两种返回值为例。线性回归算法不适用于解决分类问题,因为画成图像后,数据点的y值只有0,1两种,因此边界上的一个单独的点会对回归直线造成很大影响。Hypothesis Representation相对于线性回归模型会出现预测值>1和<0的情况,逻辑回归(logistic原创 2016-02-15 19:17:17 · 914 阅读 · 0 评论 -
Stanford 机器学习笔记 Week9 Anomaly Detection
Density EstimationProblem Motivation这个算法的目的是发现一个training set中的不规则点。给定一个training set ,如果我们能设计一个模型p,使得p(test) 等于该点是常规点的概率。那么我们就能通过判断p(test)< ε 来确定test是一个不规则点。 显然越接近原training set的中心p(test)越大。该算法可用于质量检测等许原创 2016-03-22 16:42:49 · 1588 阅读 · 0 评论 -
Stanford 机器学习笔记 Week9 Recommender Systems
Predicting Movie RatingsProblem Formulation推荐系统举例: 根据各个用户的打分记录,预测某用户对一没看过的电影的打分情况。Content Based Recommendations解决上一节问题的一个方法: 对于每个电影抽象出2个属性,romance 和 action,并手动赋值。再加上bias unit x0 = 1,就构成了表示每个电影属性的向量原创 2016-03-26 23:35:33 · 1812 阅读 · 0 评论 -
Stanford 机器学习笔记 Week7 Support Vector Machines
Large Margin ClassificationOptimization Objective在logistic回归中,cost function使用了sigmoid函数,从而将θTx的值映射到(0 , 1)范围内。 在SVM中提出了另一种函数cost来替代sigmoid函数,如图: 上图中曲线部分是sigmoid函数,而两段线段组成的部分就是新提出的cost函数,它也满足值域在(0,1)内并原创 2016-03-11 10:19:59 · 1015 阅读 · 0 评论 -
Stanford 机器学习笔记 Week4 Neural Networks: Representation
MotivationsNon-linear Hypotheses线性回归不能解决的问题:在分类问题中,分类边界实际上是一个由各个参数构成的多项式。当参数很少时(比如只有x1,x2),多项式还可以构造出来,但是当参数很多(假设有x1….x100),构造出的多项式的项数将非常多。对于n个参数的2次多项式,项数大约是n^2/2个。一个问题:给定一幅图,如何确定是不是一辆汽车?一种方法是把图片的每个像素点作原创 2016-02-21 15:26:21 · 939 阅读 · 0 评论 -
Stanford 机器学习笔记 Week2
一.多变量线性回归1.1 n个变量的线性回归估计函数为 h(X)=k0+k1x1+k2x2+….+knxn 每个训练样本的n个变量构成一个n维向量X,为方便,在第一个位置添加一个x0=1,(与常数项k0相乘),这样就构成了一个n+1维向量。 同时k0~kn这个n+1个参数构成了另一个n+1维向量K。 那么估计函数就等于 K的转置*X1.2 多变量线性回归中,对于不同的参数向量K,同样有一个原创 2016-02-08 20:39:34 · 1118 阅读 · 0 评论 -
Octave 基础操作及解决安装绘图工具gnuplot时出现unknown terminal错误
查询关键字信息 help 关键字修改提示符 PS1=(’修改内容’)显示变量的值 disp(var)格式化输出 disp(sprintf(‘任意内容 %0.2f’, var))改变默认数据类型 format long\short生成矩阵 A = [1 2; 3 4; 5 6] %生成一个3*2的矩阵生成均匀数列 v = 起始值:步长:结束值 v = 1:原创 2016-02-07 15:44:11 · 2988 阅读 · 0 评论 -
Stanford 机器学习笔记 Week 1
一.监督学习(supervised learning): 输入中的每个元素都给定了明确的类型,包含: 回归问题:给定训练集,预测输出为一些连续值。 分类问题:给定训练集,预测输出为一些离散值。二.无监督学习(unsupervised learning): 输入中的每个元素都没有指定明确类型,使用聚类算法,按照数据的结构将其分为多个聚类。 cocktail party算法原创 2016-01-29 10:25:32 · 859 阅读 · 0 评论 -
Stanford 机器学习笔记 Week5 Neural Networks: Learning
Cost Function and BackpropagationCost Function在求取神经网络权重矩阵时,第一步也是要先写出cost function。它的cost function就是带rugularization 的logistic regression的加强版,因为在多种类分类中每个数据不再只有一个输出y(i),而是有K个0/1输出组成一个向量(K为种类数),因此神经网络的cost原创 2016-02-25 11:24:17 · 1671 阅读 · 0 评论 -
Stanford 机器学习 Week5 作业: Neural Networks: Learning
randInitializeWeightepsilon_init = 0.12;W = rand(L_out, 1 + L_in) * 2 * epsilon_init - epsilon_init;sigmoidGradientg = sigmoid(z) .* (1 - sigmoid(z));nnCostFunctionTheta1 = reshape(nn_params(1:hidden_原创 2016-02-29 16:11:52 · 1548 阅读 · 0 评论 -
Stanford 机器学习笔记 Week3 Regularization
RegularizationThe Problem of Overfitting拟合效果不好有两种情况:欠拟合(Underfitting),指的是预测值和training set匹配程度较差。过拟合(Overfitting),指的是拟合曲线过度追求吻合training set,可能被一些噪音干扰,偏离实际情况。当数据的参数过多时容易发生这种情况。解决过拟合有两种方法:1.减少参数数量,可以人为选择使原创 2016-02-15 19:27:31 · 996 阅读 · 0 评论 -
Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning
Evaluating a Learning AlgorithmDeciding What to Try Next当算法效果不好时,你可能会尝试:1. 收集更多数据 2. 增加属性 3.减少属性 4.修改regularition参数lambda,下面几节会告诉你如何选择正确的做法。Evaluating a Hypothesis如何判定是否过拟合了?一种方法是拿出原训练集的70%做新训练集,计算出θ,然原创 2016-03-02 21:14:40 · 1302 阅读 · 0 评论 -
Stanford 机器学习 Week6 作业:Regularized Linear Regression and Bias v.s. Variance
linearRegCostfunctionm = length(y); J = 0;grad = zeros(size(theta));J = 1.0 / 2 / m * ( sum( (X * theta - y) .^ 2) + lambda * sum(theta(2:end) .^2) );grad = 1 / m * ((X * theta - y)' * X)';grad(2:en原创 2016-03-04 12:28:16 · 1518 阅读 · 0 评论 -
Stanford 机器学习 Week3 作业 Logistic Regression
Visualizing the datapos = find(y==1); neg = find(y == 0);plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ... 'MarkerSize', 7);plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ... 'M原创 2016-02-14 20:40:34 · 1546 阅读 · 0 评论 -
Stanford 机器学习笔记 Week6 Machine Learning System Design
Building a Spam ClassifierPrioritizing What to Work On本节将会设计一个垃圾邮件分类器,具体方法是这样的:首先设定一些经常在垃圾邮件中出现的单词,比如buy, discount, deal等等,假如有m个。然后对于一封邮件,用一个长度为m的0/1向量表示这些单词是否在这封邮件中出现过。一般来说,这些单词不是人工设定的,而是从训练集中选择出现频率最高原创 2016-03-05 14:36:24 · 1833 阅读 · 0 评论 -
Stanford 机器学习笔记 Week11 Application Example: Photo OCR
Photo OCRProblem Description and PipelineOCR: Optical Character Recognition 步骤: 1.识别包含文字的图片区域 2.将每块图片中的各个文字分隔开 3.对每个文字进行识别这种算法流程被称为pipeline,前一个模块的输出是下一个模块的输入。Sliding Windows本节分别介绍一下上述三个步骤的实现过程:1.T原创 2016-04-07 19:54:46 · 1376 阅读 · 0 评论