文档章节

logistics多分类

o
 osc_isezqdgg
发布于 2019/09/18 15:01
字数 321
阅读 10
收藏 0

精选30+云产品,助力企业轻松上云!>>>

multiclassification

#DATASET: https://archive.ics.uci.edu/ml/datasets/Glass+Identification
import
numpy as np import matplotlib.pyplot as plt import pandas as pd import sklearn import sklearn.preprocessing as pre
df=pd.read_csv('data\glassi\glass.data')
X,y=df.iloc[:,1:-1],df.iloc[:,-1]
X,y=np.array(X),np.array(y)

for idx,class_name in enumerate(sorted(list(set(y)))):
    y[y==class_name]=idx
    
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.15,random_state=66)
f_mean, f_std = np.mean(X_train, axis=0), np.std(X_train, axis=0)
X_train = (X_train - f_mean) / f_std
X_test = (X_test - f_mean) / f_std

#add a constant parameter
X_train = np.concatenate((np.ones((X_train.shape[0], 1)), X_train), axis=1)
X_test = np.concatenate((np.ones((X_test.shape[0], 1)), X_test), axis=1)
#gradient descent function

def get_classifier(X_train,y_train,num_epoch=10000,alpha=0.01):
    theta=np.zeros(X_train.shape[1])
    for epoch in range(num_epoch):
        logist=np.dot(X_train,theta)
        h=1/(1+np.exp(-logist)) #hypothesis function
        cross_entropy_loss=(-y_train*np.log(h)-(1-y_train)*np.log(1-h)).mean()
        gradient=np.dot((h-y_train),X_train)/y_train.size
        theta-=alpha*gradient #update
    return theta
def multi_classifier(X_train,y_train):
    num_class=np.unique(y_train)
    parameter=np.zeros((len(num_class),X_train.shape[1])) #each has an array of parameters
    for i in num_class:       
        label_t=np.zeros_like(y_train) #use label_t to label the target class!!!
        num_class=np.unique(y_train)
        label_t[y_train==num_class[i]]=1 #important, 
        parameter[i,:]=get_classifier(X_train,label_t) #each array stands for one class's parameter
    return parameter
params = multi_classifier(X_train, y_train)
def pred(parameter,X_test,y_test):
    f_size=X_test.shape
    l_size=y_test.shape
    assert (f_size[0]==l_size[0])
    logist=np.dot(X_test,np.transpose(parameter)).squeeze()
    prob=1/(1+np.exp(-logist))
    pred=np.argmax(prob,axis=1)
    accuracy = np.sum(pred == y_test) / l_size[0] * 100   
    return prob, pred, accuracy
_, preds, accu = pred(params, X_test, y_test)
print("Prediction: {}\n".format(preds))
print("Accuracy: {:.3f}%".format(accu))
Prediction: [0 1 0 4 1 5 1 0 0 1 0 1 0 0 5 1 1 1 1 0 5 4 0 1 5 0 0 1 1 0 3 1 0]

Accuracy: 66.667%
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Softmax Classifier

Softmax Classifier softmax分类器和logistics regression有点像,softmax其实就是从logistics发张过来的。由于是多分类了,需要走更多的概率来表示每一个分类。softmax的公式: 问题来了,为...

sqdewf
2019/02/12
5
0
2.1、Softmax Regression模型

Softmax Regression模型   由于Logistics Regression算法复杂度低,容易实现等特点,在工业中的到广泛的使用,但是Logistics Regression算法主要用于处理二分类问题,若需要处理的是多分类...

osc_9z5br62t
2018/05/29
4
0
【机器学习】逻辑斯谛回归

在logistics回归中,我们采用sigmoid函数作为激励函数,所以它被称为sigmoid回归或是对数几率回归。但是,需要注意的是,虽然它的名字中带有回归两个字,但是它并不是一个回归算法,而是一种...

kuangd_1992
2018/01/27
0
0
二分类

二分类 分类问题是机器学习中非常重要的一个课题。现实生活中有很多实际的二分类场景,如对于借贷问题,我们会根据某个人的收入、存款、职业、年龄等因素进行分析,判断是否进行借贷;对于一...

osc_67z4ojk9
2018/08/17
1
0
softmax回归---sigmoid(1)

介绍softmax之前先讲讲sigmoid: 逻辑回归模型常用的函数:sigmoid函数(用来做二分类) 表达式:f(x)=L/(1+exp-k(x-x0)) 其图像: 本质:将一个真值映射到(0,1)之间 softmax函数(用作多分...

osc_ma60u6gg
2018/02/28
4
0

没有更多内容

加载失败,请刷新页面

加载更多

PO设计模式-实现移动端自动化测试

开发环境:python 3.6.5 + selenium 2.48.0 + pytest框架 + Android 5.1 工具:pycharm + Appium + Genymotion 测试机型:Samsung Galaxy S6 #需求:设计3个测试用例#1.实现点击设置->显示-...

osc_cl1ufvfd
21分钟前
20
0
Android之TabLayout和ViewPager组合跳转到指定页面

1 问题 TabLayout和ViewPager组合跳转到具体一个页面 2 解决办法 viewPager?.setCurrentItem(index) index为0说明是第一页,如果是1的话就是第二页,以此类推。...

osc_w4g8kpwc
23分钟前
17
0
Android之解决多语言适配部分TextView内容左对齐和内容一行不排满就到第二行问题

1 问题 1、多语言适配部分TextView内容左对齐 2、内容一行不排满就到第二行问题 2 解决办法 问题1、在TextView里面加入下面参数 android:gravity="center" 问题2、 import android.conte...

osc_u61lmlkv
23分钟前
17
0
SpringBoot2.0+Shiro+MyBatisPlus权限管理系统

项目描述 Hi,大家好,今天分享的项目是《SpringBoot+Shiro权限管理系统》,这是一个SpringBoot+Layui后台管理系统,使用Shiro安全框架,加入访问权限,对不同角色有不同的访问权限,其他管理...

ericxu1116
25分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部