逻辑斯蒂回归(Logistic Regression)

逻辑斯蒂回归

定义x=<x1,x2,...xn>来表示n维特征向量,权重为w=<w1,w2,...wn>,同时,截距(Intercept)为b。则这种线性关系为:
f(w,x,b)=w^Tx+b
在分类问题中,为了使f属于01,设定一个函数,把f映射到01,这个函数就是逻辑斯谛函数。

逻辑斯蒂函数

它是一个连续函数,我们可以假设其上的点的值,就是取到其X的概率。在X靠近0的地方,概率较小,这也能说通,因为X=0处,就是Y=0与Y=1交界的地方,在那里容易判断出错,所以概率较小,越偏离0,概率越大。

代码如下:

import pandas as pd
import numpy as np

#创建特征列表
column_names=['Sample code number','Clump Thickness','Unfoemity of Cell Size','Unfoemity of Cell Shape','Marginal Adhesion','Single Epithelial Cell Size',
              'Bare Nuclei','Bland Chromatin','Normal Nucleoli','Mitoses','Class']
data=pd.read_csv('breast-cancer-wisconsin.data',names=column_names)
#将?替换为标准缺失值表示
data=data.replace(to_replace='?',value=np.nan)
#丢弃带有缺失值的数据
data=data.dropna(how='any')
print(data.shape)  #输出数据形状
from sklearn.cross_validation import train_test_split

#分割数据25%用于测试,75%用于训练
X_train,X_test,Y_train,Y_test=train_test_split(data[column_names[1:10]],data[column_names[10]],test_size=0.25,random_state=33)
#查看数据分布
print(Y_train.value_counts())
print(Y_test.value_counts())

#使用线性分类模型
from sklearn.preprocessing import  StandardScaler
from sklearn.linear_model import  LogisticRegression
 
#标准化数据,保证每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值而主导
ss=StandardScaler()
X_train=ss.fit_transform(X_train)
X_test=ss.transform(X_test)
#初始化 LogisticRegression 
lr=LogisticRegression()
 
#训练模型
lr.fit(X_train,Y_train)
#使用训练好的模型进行预测
lr_y_predict=lr.predict(X_test)
 
#预测的性能分析
from sklearn.metrics import classification_report
#使用逻辑斯蒂回归的评分函数score获得模型在测试集的准确性结果
print('Accurancy of LR Classifier:',lr.score(X_test,Y_test))
#利用classification_report获得LogisticRession其他三个指标的结果
print(classification_report(Y_test,lr_y_predict,target_names=['Benign','Malignant']))

 

注:数据来自范淼 李超《Python机器学习及实践》清华大学出版社 这本书提供的,链接:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本系列文章面向深度学习研发者,希望通过Image Caption Generation,一个有意思的具体任务,深入...
    imGeek阅读 5,870评论 0 8
  • 深入理解傅里叶变换Mar 12, 2017 这原本是我在知乎上对傅立叶变换、拉普拉斯变换、Z变换的联系?为什么要进...
    价值趋势技术派阅读 11,091评论 2 2
  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 13,770评论 0 5
  • 我的 “长生果” 游青 和书结下缘分要从七岁那一年开始算起。那年,我们村不知道什么原因大面积爆发了肝炎,一个平时一...
    绵绵远道阅读 3,627评论 0 1
  • 哈~,知不知道三年级四班的丸尾同学?咦,想不起来吗?那我就不卖关子啦,他是《樱桃小丸子》中小丸子班的班长。啊,想起...
    Janice_love阅读 4,258评论 0 0

友情链接更多精彩内容