Python机器学习:逻辑回归007scikit-learn中的逻辑回归
Scikt-learn中使用的正则化
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(666)
#生成数据
np.random.seed(666)
X = np.random.normal(0,1,size = (200,2))
y = np.array(X[:,0] ** 2 + X[:,1] < 1.5, dtype='int')#给数据加上标签了。。
#添加一些噪音
for _ in range(20):y[np.random.randint(200)] = 1
plt.scatter(X[y==0,0],X[y==0,1],color = 'red')
plt.scatter(X[y==1,0],X[y==1,1])
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=666)
from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression()
log_reg.fit(X_train,y_train)
log_reg.score(X_train,y_train)
0.7933333333333333
log_reg.score(X_test,y_test)
0.86
决策边界绘制函数
def plot_decision_boundary(model, axis):x0, x1 = np.meshgrid(np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1, 1),np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1, 1),)X_new = np.c_[x0.ravel(), x1.ravel()]y_predict = model.predict(X_new)zz = y_predict.reshape(x0.shape)from matplotlib.colors import ListedColormapcustom_cmap = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)
plot_decision_boundary(log_reg,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
#添加多项式项
#使用多项式回归
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import PolynomialFeatures
def PolynomialLogisticRegression(degree):return Pipeline([('poly',PolynomialFeatures(degree=degree)),('std_scaler',StandardScaler()),('logistic_reg',LogisticRegression())])
多项式回归
poly_log_reg = PolynomialLogisticRegression(degree=2)
poly_log_reg.fit(X_train,y_train)
poly_log_reg.score(X_train,y_train)
0.9066666666666666
poly_log_reg.score(X_test,y_test)
0.94
plot_decision_boundary(poly_log_reg,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
degree = 20,过拟合
poly_log_reg2 = PolynomialLogisticRegression(degree=20)
poly_log_reg2.fit(X_train,y_train)
poly_log_reg2.score(X_train,y_train)
0.94
poly_log_reg2.score(X_test,y_test)
0.92
plot_decision_boundary(poly_log_reg2,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
逻辑回归正则化
#逻辑回归正则化
def PolynomialLogisticRegression(degree,C):return Pipeline([('poly',PolynomialFeatures(degree=degree)),('std_scaler',StandardScaler()),('log_reg',LogisticRegression(C = C))])
poly_log_reg3 = PolynomialLogisticRegression(degree=20,C = 0.1)
poly_log_reg3.fit(X_train,y_train)
poly_log_reg3.score(X_train,y_train)
0.84
poly_log_reg3.score(X_test,y_test)
0.92
plot_decision_boundary(poly_log_reg3,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
def PolynomialLogisticRegression(degree,C,penalty='l2'):return Pipeline([('poly',PolynomialFeatures(degree=degree)),('std_scaler',StandardScaler()),('log_reg',LogisticRegression(C = C,penalty=penalty,solver='liblinear'))])
poly_log_reg4 = PolynomialLogisticRegression(degree=20,C = 0.1,penalty= 'l1')
poly_log_reg4.fit(X_train,y_train)
plot_decision_boundary(poly_log_reg4,axis=[-4,4,-4,4])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
效果非常好!
Python机器学习:逻辑回归007scikit-learn中的逻辑回归相关推荐
- Python机器学习及实践——简介篇3(逻辑回归)
前面两篇都是介绍性的文字,这篇详细介绍完整的"良/恶性乳腺癌肿瘤预测"问题的Python源代码. 根据前两篇的描述,大家可以确定"良/恶性乳腺癌肿瘤预测"的问题 ...
- ai逻辑回归_人工智能中的逻辑是什么?
ai逻辑回归 人工智能逻辑 (Logic in Artificial Intelligence) Logic, as per the definition of the Oxford dictiona ...
- 学Java的逻辑测试题_面试中的逻辑题测试及答案.doc
面试中的逻辑题测试及答案 面试中的逻辑题测试及答案魔豆之路 首页业界观察Android技术iOS技术分享HTML5技术JAVA & JVM测试技术分享WORDPRESS home 程序员面试秘 ...
- 【机器学习实战】利用sklearn中的逻辑回归对癌症分类预测-良/恶性乳腺癌肿瘤预测
1. 数据集 数据下载地址:https://archive.ics.uci.edu/ml/machine-learning-databases/ 数据描述 (1)699条样本,共11列数据,第一列用语 ...
- Python机器学习:KNN算法02scikit-learn中的机器学习算法封装
学习scikit-learn中的knn使用 并自己实现一个封装 学习scikit-learn中的knn使用 ps:代码块加标题会让字变红 python 首先引入库 在这里插入代码片 #在这个库里面所有 ...
- Python机器学习及实践——基础篇9(SVM回归)
小贴士:核函数是一项非常有用的特征映射技巧,同时在数学描述上也略为复杂.因此这里不做过度引申.简单一些理解,便是通过某种函数计算,将原有的特征映射到更高维度的空间,从而尽可能达到新的高维度特征线性可分 ...
- 8、Python 机器学习基础知识Pandas库中的DataFrom(二)
DataFrom DataFrame 是一种二维的数据结构,非常接近于电子表格或者类似 mysql 数据库的形式.它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index, ...
- python随机森林特征重要性_Python中随机森林回归的特征重要性
当涉及到决策树时,特征重要性不是一个黑匣子.来自DecisionTreeRegressor的文档:The importance of a feature is computed as the (nor ...
- Python机器学习:KNN算法08scikit-learn中的Scaler
归一化 from sklearn import datasets import numpy as np iris = datasets.load_iris() X = iris.data y = ir ...
- Python机器学习算法入门教程(四)
Python机器学习算法入门教程(四) 文章目录 Python机器学习算法入门教程(四) Logistic回归算法(分类问题) 什么是分类问题? Logistic回归算法 数学解析Logistic回归 ...
最新文章
- 燕赵志愿云如何认证_如何获得云安全专家CCSP认证
- 【Fibonacci-PEG,LDPC】基于Fibonacci-PEG算法的LDPC码校验矩阵的构造
- Javascript ECMA-3 (数组,Date,正则)
- html按钮按下效果_您应该在网站中尝试的8种惊人的HTML按钮悬停效果,让您的网站令人难忘...
- 【python教程入门学习】零基础想转行学python,过来人提醒大家几点
- python3 global_Python3基础 global 在函数内部对全局变量进行修改
- python编程入门与案例详解-清华大学出版社-图书详情-《Python编程入门与案例详解》...
- java性能检测工具_老李分享:JAVA性能监控工具
- BeyondCompare3密钥过期如何处理。
- bay——RAC 表空间时数据文件误放置到本地文件系统-介质恢复.txt
- 51单片机:stc烧录软件下载.hex文件遇到无法下载问题的解决方法(虚拟串口占用实际下载串口)
- 小程序开发教程 微信小程序视频教程
- 三维全景从制作到上传
- linux系统——窗口管理器和桌面环境的区别
- 做视频自媒体,选择一个合适的剪辑软件很重要,这些或许适合你
- win10玩不了星际战甲怎么办?
- [乐意黎原创]车胎花纹类型 K193 和 K935 的比较
- 十六年开发经验的三十八岁程序员创业十年故事(一)
- Saturn Console部署图文示例
- mybatis防止sql注入原理