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. 基于双月数据集利用感知层进行分类

    1.生成数据集 class moon_data_class(object):def __init__(self,N,d,r,w):self.N=Nself.w=wself.d=dself.r=rdef ...

  2. ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式)

    ML之catboost:基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两种方式) 目录 基于自定义数据集利用catboost 算法实现回归预测(训练采用CPU和GPU两 ...

  3. ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略

    ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略 目录 基于BigMartSales数 ...

  4. ML之FE:基于BigMartSales数据集利用Featuretools工具实现自动特征工程之详细攻略daiding

    ML之FE:基于BigMartSales数据集利用Featuretools工具实现自动特征工程之详细攻略daiding 目录 基于BigMartSales数据集利用Featuretools工具实现自动 ...

  5. ML之LightGBM:基于titanic数据集利用LightGBM和shap算法实现数据特征的可解释性(量化特征对模型贡献度得分)

    ML之LightGBM:基于titanic数据集利用LightGBM和shap算法实现数据特征的可解释性(量化特征对模型贡献度得分) 目录 基于titanic数据集利用LightGBM和shap算法实 ...

  6. ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)

    ML:基于自定义数据集利用Logistic.梯度下降算法GD.LoR逻辑回归.Perceptron感知器.支持向量机(SVM_Linear.SVM_Rbf).LDA线性判别分析算法进行二分类预测(决策 ...

  7. ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)

    ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能) 目录 输出结果 设计思路 实现代码 输出结果 设计思路 1.使用均匀分布函数随机三个簇,每个簇周围1 ...

  8. DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码

    DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码 目录 基于自定义数据集利用深度神经网络(输入层(10个 ...

  9. ML之LoR:基于信用卡数据集利用LoR逻辑回归算法实现如何开发通用信用风险评分卡模型之以toad框架全流程讲解

    ML之LoR:基于信用卡数据集利用LoR逻辑回归算法实现如何开发通用信用风险评分卡模型之以toad框架全流程讲解 目录 基于信用卡数据集利用LoR逻辑回归算法实现如何开发通用信用风险评分卡模型之以to ...

最新文章

  1. JavaScript 小知识点
  2. Android开发--圆角按钮和绘制直线的实现
  3. pip包重新安装mysql_Ubuntu pip 安装 mysql-python包出错
  4. python与c语言在语法上的区别-C语言和Python编程先学习哪个
  5. webview300毫秒点击问题
  6. 【2】基于zookeeper,quartz,rocketMQ实现集群化定时系统
  7. expression tree to string
  8. QML中导入JavaScript资源
  9. Linux NAT网络连接权威指南
  10. HDU/HDOJ 2612 Find a way 双向BFS
  11. js 判断 浏览器 是否为 微信 浏览器
  12. [Java] 蓝桥杯BASIC-23 基础练习 芯片测试
  13. 工作中应该发火,勿感情用词
  14. python 四象限图_如何制作四象限气泡图表
  15. [ZZ]美图秀秀怎么加水印
  16. 董明珠下台 格力还能一统智能家居吗?
  17. 树莓派crt安装中文字库和中文输入法
  18. Excel小问题 - 前三个非空单元格数值之和
  19. Hulu在Content Embedding的探索与实践
  20. AssemblyInfo.cs文件中的程序集属性

热门文章

  1. 半导体器件物理【1】量子理论扫盲——从Planck到态叠加原理
  2. 水溶性/脂溶性/Cy3/Cy3.5/Cy5 NHS ester 染料在活体成像中的应用
  3. VSCode下载及安装
  4. Pr:导出设置之元数据
  5. victoriaMetrics无法获取抓取target的问题
  6. python-igraph基本用法(一)
  7. Java集合框架中隐藏的设计套路
  8. 小学生计算机课如何上,如何上好小学信息技术课
  9. 网吧管理系统的设计与实现
  10. cdr怎么把矩形去掉一个边_如何把一个矩形的四个角变形?