liblinear

Task3:逻辑回归

╄→гoц情女王★ 提交于 2020-01-13 17:29:54
逻辑回归 1.逻辑回归与线性回归的联系与区别 2.逻辑回归的原理 3.逻辑回归损失函数推导及优化 4.正则化与模型评估指标 5.逻辑回归的优缺点 6.样本不均匀问题解决办法 7.Sklean参数 8.代码实现 1.逻辑回归与线性回归的联系与区别 线性回归解决的是连续变量的问题,但离散性变量,在分类任务中使用线性回归,效果不理想。` 例子: 图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为1,不购买标注为0,拟合后取当0.5值为阈值来划分类别。 y ^ = { 1 , f ( x ) > 0.5 , 0 , f ( x ) < 0.5 \hat y =\begin{cases} 1, f(x)>0.5, \\\\0, f(x)<0.5\end{cases} y ^ ​ = ⎩ ⎪ ⎨ ⎪ ⎧ ​ 1 , f ( x ) > 0 . 5 , 0 , f ( x ) < 0 . 5 ​ 可以看到,在途中,年龄的区分点约为19岁。 但当数据点不平衡时,很容易影响到阈值,见以下图: 可以看到,0值样本的年龄段往高年龄端偏移后,真实的阈值依然是19岁左右,但拟合出来的曲线的阈值往后边偏移了。可以想想,负样本越多,年龄大的人越多,偏移越严重。 实际情况是60岁的老人和80岁的老人都不会购买玩具,增加几位80岁的老人,并不会影响20岁以下人群购买玩具的概率

logistic回归算法进行分类的python实现

放肆的年华 提交于 2020-01-10 14:07:53
在分类问题中,比如判断邮件是否为垃圾邮件,判断肿瘤是否为阳性,目标变量是离散的,只有两种取值,通常会编码为0和1。这时候如果我们用线性回归去拟合一条直线:hθ(X) = θ+θ1X,若Y≥0.5则判断为1,否则为0。这样我们也可以构建出一个模型去进行分类,但是会存在很多的缺点,比如稳健性差、准确率低。而逻辑回归对于这样的问题会更加合适。 逻辑回归假设函数如下,它对θTX作了一个函数g变换,映射至0到1的范围之内,而函数g称为sigmoid function或者logistic function SIGMOID函数 s(z)=1/(1+e^-z) Z的范围实数域,而值域为0-1 。当我们输入特征,得到的hθ(x)其实是这个样本属于1这个分类的概率值 p=1/(1+exp(-wtX)) LN(P/1-P)=wTx logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释,多类可以使用softmax方法进行处理。实际中最为常用的就是二分类的logistic回归。 下面基于logistic回归对乳腺癌分类进行研究 import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import pandas as pd import warnings import

Multi-label prediction using LIBLINEAR

浪子不回头ぞ 提交于 2019-12-13 04:34:20
问题 I am using LIBLINEAR and i need to know whether Multi-Label Prediction in windows is possible or not.I tried google but no luck I want the output to be produced the following way I train some 10 documents with three class labels 1,2,3 and now when i feed a test document to the classifier and if the document belongs to label 1 and 2 then it should produce 1,2 or something else which shows that document belongs to 1 and 2 both the class labels I want an example in windows Thanks 回答1: By default

Multi-class classification using LIBLINEAR

独自空忆成欢 提交于 2019-12-11 17:49:50
问题 I am a beginner to SVM which i have successfully implemented one-class classification.Now i want to know about multi-class classification which am very much confused about. I went through How to do multi class classification using Support Vector Machines (SVM) which i want the exact same output but the link does not have a specific example using windows.If anyone can help me out with an example in windows for both “ONE-AGAINST-ONE”,”ONE-AGAINST-ALL” methods of multi-class classification

A--利用梯度下降求解逻辑回归的python实现

旧时模样 提交于 2019-12-05 05:31:37
#导入必要的包 import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt %matplotlib inline BGD求解逻辑回归 In [2]: #⾸先定义联系函数sigmoid函数 def sigmoid(inX): return 1.0/(1+np.exp(-inX)) In [7]: #自定义一个归一化函数(此函数的前提是我的数据是一个矩阵) def regularize(xMat): inMat = xMat.copy()#创建一个副本,这样对inmat进行操作不会影响到xmat inMeans = np.mean(inMat,axis = 0) #求均值 inVar = np.std(inMat,axis = 0) #求标准差 inMat = (inMat - inMeans)/inVar #归一化 return inMat In [4]: #编写批量梯度下降的自定义函数 def logisticReg_0(dataSet,eps=0.01,numIt=50000): xMat = np.mat(dataSet.iloc[:, :-1].values) yMat = np.mat(dataSet.iloc[:, -1].values).T

Why can't LinearSVC do this simple classification?

廉价感情. 提交于 2019-12-04 23:10:59
问题 I'm trying to do the following simple classification using the LinearSVC object in scikit-learn . I've tried using both version 0.10 and 0.14. Using the code: from sklearn.svm import LinearSVC, SVC from numpy import * data = array([[ 1007., 1076.], [ 1017., 1009.], [ 2021., 2029.], [ 2060., 2085.]]) groups = array([1, 1, 2, 2]) svc = LinearSVC() svc.fit(data, groups) svc.predict(data) I get the output: array([2, 2, 2, 2]) However, if I replace the classifier with svc = SVC(kernel='linear')

通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战

天大地大妈咪最大 提交于 2019-12-04 09:04:44
前情提要: 通俗地说逻辑回归【Logistic regression】算法(一) 逻辑回归模型原理介绍 上一篇主要介绍了逻辑回归中,相对理论化的知识,这次主要是对上篇做一点点补充,以及介绍sklearn 逻辑回归模型的参数,以及具体的实战代码。 1.逻辑回归的二分类和多分类 上次介绍的逻辑回归的内容,基本都是基于二分类的。那么有没有办法让逻辑回归实现多分类呢?那肯定是有的,还不止一种。 实际上二元逻辑回归的模型和损失函数很容易推广到多元 逻辑回归。比如总是认为某种类型为正值,其余为0值。 举个例子,要分类为A,B,C三类,那么就可以把A当作正向数据,B和C当作负向数据来处理,这样就可以用二分类的方法解决多分类的问题,这种方法就是最常用的one-vs-rest,简称OvR。而且这种方法也可以方便得推广到其他二分类模型中(当然其他算法可能有更好的多分类办法)。 另一种多元逻辑回归的方法是Many-vs-Many(MvM),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。 听起来很不可思议,但其实确实是能办到的。比如数据有A,B,C三个分类。 我们将A,B作为正向数据,C作为负向数据,训练出一个分模型。再将A,C作为正向数据,B作为负向数据,训练出一个分类模型。最后B,C作为正向数据,C作为负向数据,训练出一个模型。 通过这三个模型就能实现多分类,当然这里只是举个例子

Why can't LinearSVC do this simple classification?

℡╲_俬逩灬. 提交于 2019-12-03 15:04:47
I'm trying to do the following simple classification using the LinearSVC object in scikit-learn . I've tried using both version 0.10 and 0.14. Using the code: from sklearn.svm import LinearSVC, SVC from numpy import * data = array([[ 1007., 1076.], [ 1017., 1009.], [ 2021., 2029.], [ 2060., 2085.]]) groups = array([1, 1, 2, 2]) svc = LinearSVC() svc.fit(data, groups) svc.predict(data) I get the output: array([2, 2, 2, 2]) However, if I replace the classifier with svc = SVC(kernel='linear') then I get the result array([ 1., 1., 2., 2.]) which is correct. Does anyone know why using LinearSVC

sklearn逻辑回归(Logistic Regression,LR)调参指南

本秂侑毒 提交于 2019-12-03 06:43:09
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share sklearn逻辑回归官网调参指南 https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html sklearn.linear_model .LogisticRegression class sklearn.linear_model. LogisticRegression ( penalty=’l2’ , dual=False , tol=0.0001 , C=1.0 , fit_intercept=True , intercept_scaling=1 , class_weight=None , random_state=None , solver=’warn’ , max_iter=100 , multi_class=’warn’ , verbose=0 , warm_start=False , n_jobs=None , l1

sklean学习之LogisticRegression(逻辑斯蒂回归分类器)【使用方法】

匿名 (未验证) 提交于 2019-12-03 00:19:01
本文是根据sklean官方文档进行翻译和学习的,如果理解有误欢迎留言指正,谢谢。 参考地址: http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html# sklearn.linear_model.LogisticRegression sklearn.linear_model .LogisticRegression sklearn.linear_model. LogisticRegression ( penalty=’l2’ dual=False tol=0.0001 C=1.0 fit_intercept=True intercept_scaling=1 class_weight=None random_state=None solver=’liblinear’ max_iter=100 multi_class=’ovr’ verbose=0 warm_start=False n_jobs=1 ) [source] Parameters: penalty dual 对偶式或者原始式. dual=False tol 停止时能接受的容差 C fit_intercept Specifies if a constant (a.k.a. bias or