基于双月数据集利用最小二乘法进行分类
1、加载数据集
import numpy as np
import matplotlib.pyplot as pltclass moon_data_class(object):def __init__(self,N,d,r,w):self.N=Nself.w=wself.d=dself.r=rdef sgn(self,x):if(x>0):return 1;else:return -1;def sig(self,x):return 1.0/(1+np.exp(x))def dbmoon(self):N1 = 10*self.Nr = self.rw2 = self.w/2d = self.ddone = Truedata = np.empty(0)while done:#generate Rectangular datatmp_x = 2*(r+w2)*(np.random.random([N1, 1])-0.5)tmp_y = (r+w2)*np.random.random([N1, 1])tmp = np.concatenate((tmp_x, tmp_y), axis=1)tmp_ds = np.sqrt(tmp_x*tmp_x + tmp_y*tmp_y)#generate double moon data ---upperidx = np.logical_and(tmp_ds > (r-w2), tmp_ds < (r+w2))idx = (idx.nonzero())[0]if data.shape[0] == 0:data = tmp.take(idx, axis=0)else:data = np.concatenate((data, tmp.take(idx, axis=0)), axis=0)if data.shape[0] >= N:done = False#print (data)db_moon = data[0:N, :]#print (db_moon)#generate double moon data ----downdata_t = np.empty([N, 2])data_t[:, 0] = data[0:N, 0] + rdata_t[:, 1] = -data[0:N, 1] - ddb_moon = np.concatenate((db_moon, data_t), axis=0)return db_moonN = 100
d = 1
r = 10
width = 6
data_source = moon_data_class(N, d, r, width)
data = data_source.dbmoon()a = 0.001
num_MSE = []
num_step = []x0 = [1 for x in range(1,201)]
x = np.array([np.reshape(data[0:2*N, 0], len(data)), np.reshape(data[0:2*N, 1], len(data))]).transpose()
w = np.array([ 0, 0])d_pre = [1 for y in range(1, 101)]
d_pos = [-1 for y in range(1, 101)]
d=d_pre+d_pos
2、利用最小二乘法进行计算
公式:
B = ( X T X ) − 1 X T Y B = (X^TX)^{-1}X^TY B=(XTX)−1XTY
XT = x.T
B=np.dot(np.dot(np.linalg.inv(np.dot(XT,x)),XT),d)
3、打印运算结果
x = np.array(range(-15, 25))y = -x*B[0]/B[1]plt.plot(x, y, 'g--')plt.plot(data[0:N, 0], data[0:N, 1], 'r*', data[N:2*N, 0], data[N:2*N, 1], 'b*')plt.show()
4、运行结果
基于双月数据集利用最小二乘法进行分类相关推荐
- 基于双月数据集利用感知层进行分类
1.生成数据集 class moon_data_class(object):def __init__(self,N,d,r,w):self.N=Nself.w=wself.d=dself.r=rdef ...
- ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)
ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式) 目录 基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两 ...
- ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略
ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略 目录 基于BigMartSales数 ...
- ML之FE:基于BigMartSales数据集利用Featuretools工具实现自动特征工程之详细攻略daiding
ML之FE:基于BigMartSales数据集利用Featuretools工具实现自动特征工程之详细攻略daiding 目录 基于BigMartSales数据集利用Featuretools工具实现自动 ...
- ML之LightGBM:基于titanic数据集利用LightGBM和shap算法实现数据特征的可解释性(量化特征对模型贡献度得分)
ML之LightGBM:基于titanic数据集利用LightGBM和shap算法实现数据特征的可解释性(量化特征对模型贡献度得分) 目录 基于titanic数据集利用LightGBM和shap算法实 ...
- ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
ML:基于自定义数据集利用Logistic.梯度下降算法GD.LoR逻辑回归.Perceptron感知器.支持向量机(SVM_Linear.SVM_Rbf).LDA线性判别分析算法进行二分类预测(决策 ...
- ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)
ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能) 目录 输出结果 设计思路 实现代码 输出结果 设计思路 1.使用均匀分布函数随机三个簇,每个簇周围1 ...
- DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码
DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码 目录 基于自定义数据集利用深度神经网络(输入层(10个 ...
- ML之LoR:基于信用卡数据集利用LoR逻辑回归算法实现如何开发通用信用风险评分卡模型之以toad框架全流程讲解
ML之LoR:基于信用卡数据集利用LoR逻辑回归算法实现如何开发通用信用风险评分卡模型之以toad框架全流程讲解 目录 基于信用卡数据集利用LoR逻辑回归算法实现如何开发通用信用风险评分卡模型之以to ...
最新文章
- JavaScript 小知识点
- Android开发--圆角按钮和绘制直线的实现
- pip包重新安装mysql_Ubuntu pip 安装 mysql-python包出错
- python与c语言在语法上的区别-C语言和Python编程先学习哪个
- webview300毫秒点击问题
- 【2】基于zookeeper,quartz,rocketMQ实现集群化定时系统
- expression tree to string
- QML中导入JavaScript资源
- Linux NAT网络连接权威指南
- HDU/HDOJ 2612 Find a way 双向BFS
- js 判断 浏览器 是否为 微信 浏览器
- [Java] 蓝桥杯BASIC-23 基础练习 芯片测试
- 工作中应该发火,勿感情用词
- python 四象限图_如何制作四象限气泡图表
- [ZZ]美图秀秀怎么加水印
- 董明珠下台 格力还能一统智能家居吗?
- 树莓派crt安装中文字库和中文输入法
- Excel小问题 - 前三个非空单元格数值之和
- Hulu在Content Embedding的探索与实践
- AssemblyInfo.cs文件中的程序集属性