# -*- coding: utf-8 -*-
"""
Created on Fri Mar 2 22:45:41 2018
@author: Administrator
"""
import numpy as np
import matplotlib.pyplot as plt
def generateData(opt='linear'):
# 正负样本个数
m_pos = 100;
m_neg = 100;
X = np.zeros((2,m_pos+m_neg))
Y = np.zeros((1,m_pos+m_neg))
# 分布类型:环形、线性函数、三次函数
if opt=='circle':
R1_range = 10
R2_range = 5
R_pos = R1_range*np.random.rand(1,m_pos)
R_neg = R2_range*np.random.rand(1,m_neg)+0.9*R1_range
Theta_pos = np.pi*np.random.randn(1,m_pos)
Theta_neg = np.pi*np.random.randn(1,m_neg)
# !不能用 X[0,0:m_pos] = R_pos*np.cos(Theta_pos);
# 左边是 "rank-1 array"
X[0:1,0:m_pos]=R_pos*np.cos(Theta_pos);
X[1:2,0:m_pos]=R_pos*np.sin(Theta_pos);
Y[0,0:m_pos]=1;
X[0:1,-m_neg:]=R_neg*np.cos(Theta_neg);
X[1:2,-m_neg:]=R_neg*np.sin(Theta_neg);
Y[0,-m_neg:]=0;
if opt=='linear':
x1 = np.random.normal(loc=-1,scale=3,size=(1,m_pos))
X[0:1,0:m_pos] = x1;
# 整体线性分布
X[1:2,0:m_pos] = 2*x1+10+
python numpy实现简单logistic回归
最新推荐文章于 2022-11-17 12:45:22 发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)