数据下载:http://archive.ics.uci.edu/ml/datasets/Adult

数据描述:http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.names

这是针对美国某区域的一次人口普查结果,共32561条数据。具体字段如下表:


字段名

含义

类型

age

年龄

连续变量

workclass

工作类别

分类变量,用0-7表示,Private, Self-emp-not-inc, Self-emp-inc, Federal-gov, Local-gov, State-gov, Without-pay, Never-worked,

fnlwgt

序号

连续变量

education

教育程度

分类变量,0-15表示,Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10th, Doctorate, 5th-6th, Preschool.

education_num

受教育时间(年)

连续变量

maritial_status

婚姻状况

分类变量,用0-6表示

Married-civ-spouse, Divorced, Never-married, Separated, Widowed, Married-spouse-absent, Married-AF-spouse

occupation

职业

分类变量,0-13表示

Tech-support, Craft-repair, Other-service, Sales, Exec-managerial, Prof-specialty, Handlers-cleaners, Machine-op-inspct, Adm-clerical, Farming-fishing, Transport-moving, Priv-house-serv, Protective-serv, Armed-Forces.

relationship

社会关系

分类变量,0-5表示

Wife, Own-child, Husband, Not-in-family, Other-relative, Unmarried

race

种族

分类变量,0-4表示

White, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black

sex

性别

分类变量,0-1表示

Female, Male

capital_gain

资本收益

连续变量

capital_loss

资本消耗

连续变量

hours_per_week

每周工作小时数

连续变量

native_country

原籍(国家)

分类变量0-39表示

United-States, Cambodia, England, Puerto-Rico, Canada, Germany, Outlying-US(Guam-USVI-etc), India, Japan, Greece, South, China, Cuba, Iran, Honduras, Philippines, Italy, Poland, Jamaica, Vietnam, Mexico, Portugal, Ireland, France, Dominican-Republic, Laos, Ecuador, Taiwan, Haiti, Columbia, Hungary, Guatemala, Nicaragua, Scotland, Thailand, Yugoslavia, El-Salvador, Trinadad&Tobago, Peru, Hong, Holand-Netherlands.

income

收入

分类变量0,1 表示

<=50K, >50K

首先我们根据分类预处理数据,把具体的分类字符串替换成相应的数字,以便运用logistic回归计算模型参数。对于数据中有?的字段,直接剔除掉。

处理完毕后得到adult_train.txt和verify.txt,用logstic算法训练参数,得到的参数用以验证verfiy.txt中的数据,通过比较,发现正确率仅89%,比较结果放在result.xlsx

https://pan.baidu.com/s/1qYT2bbm

clear all; close all; clc

data = load('adult_train.txt');
x = data(:,1:14);
y = data(:,15);
m = length(y); % 样本数目
x = [ones(m, 1), x]; % 输入特征增加一列,x0=1
meanx = mean(x);%求均值
sigmax = std(x);%求标准偏差
x(:,2) = (x(:,2)-meanx(2))./sigmax(2);
x(:,3) = (x(:,3)-meanx(3))./sigmax(3);
x(:,4) = (x(:,4)-meanx(4))./sigmax(4);
x(:,5) = (x(:,5)-meanx(5))./sigmax(5);
x(:,6) = (x(:,6)-meanx(6))./sigmax(6);
x(:,7) = (x(:,7)-meanx(7))./sigmax(7);
x(:,8) = (x(:,8)-meanx(8))./sigmax(8);
x(:,9) = (x(:,9)-meanx(9))./sigmax(9);
x(:,10) = (x(:,10)-meanx(10))./sigmax(10);
x(:,11) = (x(:,11)-meanx(11))./sigmax(11);
x(:,12) = (x(:,12)-meanx(12))./sigmax(12);
x(:,13) = (x(:,13)-meanx(13))./sigmax(13);
x(:,14) = (x(:,14)-meanx(14))./sigmax(14);
x(:,15) = (x(:,15)-meanx(15))./sigmax(15);
theta = zeros(size(x(1,:)))'; % 初始化theta g = inline('1.0 ./ (1.0 + exp(-z))'); %定义logistic函数 % Newton's method
MAX_ITR = 7;
J = zeros(MAX_ITR, 1); for i = 1:MAX_ITR
% Calculate the hypothesis function
z = x * theta;
h = g(z);%转换成logistic函数 % Calculate gradient and hessian.
% The formulas below are equivalent to the summation formulas
% given in the lecture videos.
grad = (1/m).*x' * (h-y);%梯度的矢量表示法
%diag(h),返回向量h为对角线元素的方阵
H = (1/m).*x' * diag(h) * diag(1-h) * x;%hessian矩阵的矢量表示法 % Calculate J (for testing convergence)
J(i) =(1/m)*sum(-y.*log(h) - (1-y).*log(1-h));%损失函数的矢量表示法 theta = theta - H\grad;%H\逆矩阵
end
% Display theta
theta
data1 = load('verify.txt');
x1 = data1(:,1:14);
y1 = data1(:,15);
m1 = length(y1);
x1 = [ones(m1, 1), x1]; meanx1 = mean(x1);%求均值
sigmax1 = std(x1);%求标准偏差
x1(:,2) = (x1(:,2)-meanx1(2))./sigmax1(2);
x1(:,3) = (x1(:,3)-meanx1(3))./sigmax1(3);
x1(:,4) = (x1(:,4)-meanx1(4))./sigmax1(4);
x1(:,5) = (x1(:,5)-meanx1(5))./sigmax1(5);
x1(:,6) = (x1(:,6)-meanx1(6))./sigmax1(6);
x1(:,7) = (x1(:,7)-meanx1(7))./sigmax1(7);
x1(:,8) = (x1(:,8)-meanx1(8))./sigmax1(8);
x1(:,9) = (x1(:,9)-meanx1(9))./sigmax1(9);
x1(:,10) = (x1(:,10)-meanx1(10))./sigmax1(10);
x1(:,11) = (x1(:,11)-meanx1(11))./sigmax1(11);
x1(:,12) = (x1(:,12)-meanx1(12))./sigmax1(12);
x1(:,13) = (x1(:,13)-meanx1(13))./sigmax1(13);
x1(:,14) = (x1(:,14)-meanx1(14))./sigmax1(14);
x1(:,15) = (x1(:,15)-meanx1(15))./sigmax1(15)
y2 = g(x1*theta);
y2

matlib实现logistic回归算法(序一)的更多相关文章

  1. 机器学习之Logistic 回归算法

    1 Logistic 回归算法的原理 1.1 需要的数学基础 我在看机器学习实战时对其中的代码非常费解,说好的利用偏导数求最值怎么代码中没有体现啊,就一个简单的式子:θ= θ - α Σ [( hθ( ...

  2. 机器学习之logistic回归算法与代码实现原理

    Logistic回归算法原理与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10033567.html ...

  3. Logistic回归算法梯度公式的推导

    最近学习Logistic回归算法,在网上看了许多博文,笔者觉得这篇文章http://blog.kamidox.com/logistic-regression.html写得最好.但其中有个关键问题没有讲 ...

  4. 机器学习算法-logistic回归算法

    Logistic回归算法调试 一.算法原理 Logistic回归算法是一种优化算法,主要用用于只有两种标签的分类问题.其原理为对一些数据点用一条直线去拟合,对数据集进行划分.从广义上来讲这也是一种多元 ...

  5. logistic回归算法及其matlib实现

    一般来说,回归不用在分类问题上,因为回归是连续型模型,而且受噪声影响比较大.如果非要使用回归算法,可以使用logistic回归. logistic回归本质上是线性回归,只是在特征到结果的映射中多加入了 ...

  6. 机器学习算法( 五、Logistic回归算法)

    一.概述 这会是激动人心的一章,因为我们将首次接触到最优化算法.仔细想想就会发现,其实我们日常生活中遇到过很多最优化问题,比如如何在最短时间内从A点到达B点?如何投入最少工作量却获得最大的效益?如何设 ...

  7. 自己动手写Logistic回归算法

    假设一个数据集有n个样本,每个样本有m个特征,样本标签y为{0, 1}. 数据集可表示为: 其中,x(ij)为第i个样本的第j个特征值,y(i)为第i个样本的标签. X矩阵左侧的1相当于回归方程的常数 ...

  8. 《转》Logistic回归 多分类问题的推广算法--Softmax回归

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...

  9. Logistic回归 python实现

    Logistic回归 算法优缺点: 1.计算代价不高,易于理解和实现2.容易欠拟合,分类精度可能不高3.适用数据类型:数值型和标称型 算法思想: 其实就我的理解来说,logistic回归实际上就是加了 ...

随机推荐

  1. 001.WordPress建站部署

    一 WordPress简介 WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统( ...

  2. 使用Django简单编写一个XSS平台

    1) 简要描述        原理十分简单2333,代码呆萌,大牛勿喷 >_< 2) 基础知识 XSS攻击基本原理和利用方法 Django框架的使用 3) Let's start 0x01 ...

  3. .NET 4.0 和 .NET 4.0 Client Profile 区别

    Visual Studio 2010如期发布了,我怀着迫不及待的心情马上下载了最新的ISO来安装和感受一下. .NET Framework 自从 2002 年发展至今,已经历了好几个版本,1.0, 1 ...

  4. Beta冲刺准备

    过去存在的问题: 界面不够美观 推荐不够人性化 代码不够符合开闭原则 我们已经做了哪些调整/改进: 本来想引入springAndroid,但看了下google的官方文档,不建议引入第三方框架:代码重构 ...

  5. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem I. Plugs and Sockets 费用流

    Problem I. Plugs and Sockets 题目连接: http://www.codeforces.com/gym/100253 Description The Berland Regi ...

  6. Dell PowerEdge R710服务器内存条插法/Dell 11G/12G系列服务器内存条插法(转)

    说明:以我的经验,其实插3/6/9这个顺序去一定没有错. DELL PowerEdge R710服务器支持 DDR3的 DIMM (RDIMM) 或 ECC非缓冲的 DIMM(UDIMM).单列和双列 ...

  7. JSP Servlet学习笔记——使用fileupload上传文件

    关键代码如下: index.jsp <body> <center> <h3>文件上传</h3> <font color="red&quo ...

  8. [Go] 如何正确地 抛出 错误 和 异常(error/panic/recover)?

    序言 错误 和 异常 是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从表面上看,一切皆错误的思路 ...

  9. java之jvm学习笔记十三(jvm基本结构) 通俗易懂的JVM 文件,没有之一

    http://blog.csdn.net/yfqnihao/article/details/8289363

  10. delphi 启动停止windows服务 转

    http://blog.csdn.net/haiou327/article/details/6106233 不用cmd用delphi如何实现启动停止windows服务建议参考一下Delphi的Sckt ...