# -*- coding: utf-8 -*-
'''
Created on 2018年1月12日
@author: Jason.F
@summary: Scikit-Learn库逻辑斯蒂回归分类算法
'''from sklearn import datasets
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt
#数据导入
iris=datasets.load_iris()
X=iris.data[:,[2,3]]
y=iris.target
print (np.unique(y))
#训练集和测试集划分
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)
#标准化
sc=StandardScaler()
sc.fit(X_train)#计算样本的均值和标准差
X_train_std=sc.transform(X_train)
X_test_std=sc.transform(X_test)#逻辑斯蒂回归
lr=LogisticRegression(C=1000.0,random_state=0)
lr.fit(X_train_std,y_train)
#模型预测
y_pred=lr.predict_proba(X_test_std[0,:])
print (y_pred[:,1])
#绘制决策边界
def plot_decision_regions(X,y,classifier,test_idx=None,resolution=0.02):# 设置标记点和颜色markers = ('s','x','o','^','v')colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')cmap = ListedColormap(colors[:len(np.unique(y))])# 绘制决策面x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),np.arange(x2_min, x2_max, resolution))Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)Z = Z.reshape(xx1.shape)plt.contourf(xx1, xx2, Z, alpha=0.4, cmap=cmap)plt.xlim(xx1.min(), xx1.max())plt.ylim(xx2.min(), xx2.max())#绘制所有样本X_test,y_test=X[test_idx,:],y[test_idx]for idx,cl in enumerate(np.unique(y)):plt.scatter(x=X[y==cl,0],y=X[y==cl,1],alpha=0.8,c=cmap(idx),marker=markers[idx],label=cl)#高亮预测样本if test_idx:X_test,y_test =X[test_idx,:],y[test_idx]plt.scatter(X_test[:,0],X_test[:,1],c='',alpha=1.0,linewidths=1,marker='o',s=55,label='test set')
X_combined_std=np.vstack((X_train_std,X_test_std))
y_combined=np.hstack((y_train,y_test))
plot_decision_regions(X=X_combined_std, y=y_combined, classifier=lr, test_idx=range(105,150))
plt.xlabel('petal length[standardized]')
plt.ylabel('petal width[standardized]')
plt.legend(loc='upper left')
plt.show()#观察正则化参数C的作用:减少正则化参数C的值相当于增加正则化的强度
#观察:减小参数C值,增加正则化强度,导致权重系数逐渐收缩
weights,params=[],[]
for c in np.arange(-5,5,dtype=float):lr=LogisticRegression(C=10**c,random_state=0)lr.fit(X_train_std,y_train)weights.append(lr.coef_[1])params.append(10**c)
weights=np.array(weights)
plt.plot(params,weights[:,0],label='petal length')
plt.plot(params,weights[:,1],label='petal width',linestyle='--')
plt.ylabel('weight coefficient')
plt.xlabel('C')
plt.legend(loc='upper left')
plt.xscale('log')
plt.show()

结果:

【Python-ML】SKlearn库逻辑斯蒂回归(logisticregression) 使用相关推荐

  1. 机器学习(二)--sklearn之逻辑斯蒂回归和朴素贝叶斯

    文章目录 1.逻辑斯蒂回归 2.朴素贝叶斯 3.三种分类算法的比较 上回说到,sklearn中的k近邻算法解决多分类问题.k近邻的基本步骤是:收集数据.创建分类器.训练.预测.评估性能.调参(参数就是 ...

  2. python做逻辑斯蒂二分类_Python实现逻辑斯蒂回归

    Python实现逻辑斯蒂回归 本实验室根据两次考试成绩与是否通过的数据,通过logistic回归,最后获得一个分类器. 逻辑斯蒂回归 导入数据 import numpy as np def loadd ...

  3. ML之NBLoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+TfidfVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测

    ML之NB&LoR:利用NB(朴素贝叶斯).LoR(逻辑斯蒂回归)算法(+TfidfVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析-五分类预测 目录 输出结果 ...

  4. ML之NBLoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测

    ML之NB&LoR:利用NB(朴素贝叶斯).LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析-五分类预测 目录 输出结果 ...

  5. SKlearn——逻辑斯蒂回归(LR)参数设置

    sklearn-逻辑斯蒂回归 SKlearn--逻辑斯蒂回归(LR) 1. from skearn.linear_model import LogisticRegression 2.其中部分参数设置 ...

  6. 机器学习Python学习——逻辑斯蒂回归(Logistic Regression)

    目录 1. 基本概念 2. 数学原理 3.  代码实现 3.1 代码分析 3.2 数据集分类实现 4. 总结 1. 基本概念 Logistic回归也是一种分类方法,用于两分类问题.其基本思想为:(1) ...

  7. 局部加权回归、逻辑斯蒂回归、感知器算法—斯坦福ML公开课笔记3

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...

  8. 最大熵阈值python_第六章-逻辑斯蒂回归和最大熵模型

    逻辑斯谛回归是统计学习中的经典分类方法,和最大熵模型相比,具有以下的共同点和区别:共同点都属于概率模型,该模型要寻找的是给定一个x,得到输出变量Y的概率分布P(Y|x),如果是二分类,Y取值为0或1, ...

  9. 机器学习笔记之(3)——Logistic回归(逻辑斯蒂回归)

    本博文为逻辑斯特回归的学习笔记.由于仅仅是学习笔记,水平有限,还望广大读者朋友多多赐教. 假设现在有一些数据点,我们用一条直线对这些点进行拟合(该直线称为最佳拟合直线),这个拟合的过程就称为回归. 利 ...

最新文章

  1. MacOS 终于可以完美使用 Podman 了!
  2. 【MM模块】Basic Invoice Verification 发票校验
  3. 剑指offer-99.调整数组顺序使奇数位于偶数前面
  4. c++17(18)-static_cast
  5. Windows 注册表开机启动总结
  6. 关于两个php.ini的说明
  7. 纪中B组模拟赛总结(2020.2.7)
  8. jsp javabean mysql_jsp mysql JavaBean
  9. Django获取请求参数方式
  10. MySQL_数据库表记录的操作
  11. 陕西机关事业单位工勤计算机考试成绩,2020年陕西省机关事业单位工人技术等级岗位考核公告发布 6月22日开始报名 9月中旬以后考核...
  12. 带参数的插入语句的问题
  13. Google 重返中国的忧虑
  14. 设计高性能大并发WEB系统架构注意点
  15. 请求并操作指定url处的xml文件
  16. CSDN 输入公式的方法
  17. 第十届中国开源黑客松等你来
  18. python unpack_Python使用struct处理二进制(pack和unpack用法)
  19. 高性能mysql学习笔记一
  20. 排队模型和排队系统仿真

热门文章

  1. 江苏有线门户网站服务器地址,江苏有线手机客户端的登录服务器
  2. linux内核版本 2.6.39,linux – 为什么这个内核模块在2.6.39上被标记为永久
  3. 服务器如何管理?分享九款服务器管理工具
  4. postgres外部表
  5. ubuntu服务器在虚拟机中的配置
  6. AngularJs快速上手掌握
  7. 怎么快速掌握一门新技术
  8. 自动生成get,set方法
  9. Spring Security默认的用户登录表单 页面源代码
  10. 解决 Mysql下使用EF Code First 指定表Engine无效的思路