数据下载: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. Cause: java.sql.SQLException: Could not retrieve transation read-only status server

    背景 最近在部署一套完整的项目,部署过程中遇到很多的问题,在来总结一些如标题的这个错误! 环境说明: 使用分布式数据库,使用的是mysql! ### Cause: java.sql.SQLExcept ...

  2. Xamarin iOS教程之视图显示图像

    Xamarin iOS教程之视图显示图像 Xamarin iOS显示图像 在主视图中显示一个图像,可以让开发者的应用程序变的更有趣,例如,在一些应用程序开始运行时,都会通过图像来显示此应用程序的玩法或 ...

  3. j.u.c系列(10)---之并发工具类:Semaphore

    写在前面 Semaphore是一个计数信号量,它的本质是一个"共享锁". 信号量维护了一个信号量许可集.线程可以通过调用acquire()来获取信号量的许可:当信号量中有可用的许可 ...

  4. 2015 年度新增开源软件排名 TOP 100 - 开源中国社区

    2015 年度新增开源软件排名 TOP 100 - 开源中国社区 39.ABTestingGateway http://www.oschina.net/news/69808/2015-annual-r ...

  5. 玩转ptrace(转)

    下面是转帖的内容,写的很详细.但是不同的linux发行版中头文件的路径和名称并不相同.如在某些发行版中<linux/user.h>就不存在,其中定义的变量出现在<asm/ptrace ...

  6. C#怎么通过一个按钮Button,实现点击这个按钮可以打开一个文件或者文件夹?

    string path1 = @"d:\log.txt";  //打开D盘下的log.txt文件 System.Diagnostics.Process.Start(path1); ...

  7. 聚币网API使用教程 demo

    原文 http://30daydo.com/article/181 目前还在完善,等功能完善了,就更新到csdn. 更新 2017-05-27 官方有API的文档,可是这个文档就像一个草稿一样,两个基 ...

  8. LAMP学习路线图

    站点开发概述 LAMP开发概述 HTML基础 CSS基础 DIV+CSS Javascript Jquery(Ajax) WAMP 环境搭建 PHP基本的语法,变量.数据类型,表达式,常量,流程控制, ...

  9. .NET中常见的内存泄漏和解决办法

    在.NET中,虽然CLR的GC垃圾回收器帮我们自动回收托管堆对象,释放内存,最大程度避免了"内存泄漏"(应用程序所占用的内存没有得到及时释放),但.NET应用程序"内存泄 ...

  10. AutoMapper在MVC中的运用小结

    配置.单元测试.AOP注入 Decimal转换成String类型 源数组转换成目标数组 源中的集合(数组)属性转换成目标中的集合(数组)属性 子类父类间的映射 源字典集合转换成目标字典集合 枚举映射 ...