机器学习:kmeans模型的结果
课堂讲解笔记 散点绘制的目前没学,是老师代码直接放在这里了。
#%%
# 导入一些包
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets import make_blobs
#%%
# 模拟出一些数据集出来
#r = np.random.randint(1,100)
r = 4
#print(r)
k = 3
x , y = make_blobs(n_samples = 50,cluster_std = [0.3, 0.3, 0.3],centers = [[0,0],[1,1],[-1,1]],random_state = r)
sim_data = pd.DataFrame(x, columns = ['x', 'y'])
sim_data['label'] = y
sim_data.head(5)datasets = sim_data.copy()# 设置测试点
p = [0.5, 0.5]
plt.scatter(sim_data['x'], sim_data['y'], c = y)
plt.scatter(0.5, 0.5, c = 'red', marker = 'x')
以下是本次课堂内容的详细笔记: 重点内容!!!!!!#%% # 计算每一个点到样本的距离 # x=datasets.iloc[:,:-1]#[所有的行,除了最后一列所有的列] # y=datasets.iloc[:,-1]#[所有的行,最后一列] #numpy pandas 广播的功能 #选取一个测试点到所有样本的距离 #X.iloc[0,:]#所有样本 #p任意一个点 # np.power(A-B,2)#A-B平方的意思 # np.power(X.iloc[0,:]-p,2).sum() #上面这个公式的换成中学数学就是d平方=(Xa1-Xb1)的平方+(Xa2-Xb2)的平方 # d_sq=[] # for i in X.index: # d_sq.append(np.power(X.iloc[i,:]-p,2).sum()) #尽量不用for循环,循环代替如下 #np.power(X-[0.5,0.5],2).sum(axis=1)#axis默认列相加,=1是行相加 #可以把[0.5,0.5]改成p #d=np.power(X-p,2).sum(axis=1)#%% # 把计算出来的距离与标签拼接起来 #把d和y拼接 #创造一个dataframe() #pd.DataFrame({}) # df_dist=pd.DataFrame({'dist':d,'label':y})#列名d,列是y#%% # 确认前k个点 #k=3#%% # 开始投票 #排序 #df_dist.sort_values(by='dist').iloc[k,:]#提取前五行 #众数的计算,提取mode() #values[0]提取值,不要索引,第0个元素 #最后预测的结果就是标签0 #iloc可以直接用 head(5)就直接提取前五行了 #df_dist.sort_values(by='dist').iloc[:k,:].mode().values[0]#%% # 封装成一个函数 # def knn_classify(p,datasets,k):#名字随便 # x=datasets.iloc[:,:-1] # y=datasets.iloc[:,-1] # d=np.power(X-p,2).sum(axis=1) # df_dist=pd.DataFrame({'dist':d,'label':y}) # df_dist.sort_values(by='dist').iloc[:k,:].mode().values[0] # return predict#%% # 测试 # knn_classify(p=[0,0],datasets=datasets,k=5)#后面的datasets是自己的数据集,前面的是参数 # knn_classify(p=[1,1],datasets=datasets,k=5) # knn_classify(p=[-1,1],datasets=datasets,k=5)
机器学习:kmeans模型的结果相关推荐
- azure模型训练_如何在Azure Machine Learning Studio上开发K-Means模型
azure模型训练 In this article, we will discuss the k-means algorithm and how can we develop a k-means mo ...
- 机器学习 --- k-means
k-means是属于机器学习里面的非监督学习,通常是大家接触到的第一个聚类算法,其原理非常简单,是一种典型的基于距离的聚类算法. 聚类算法中,将相似的数据划分为一个集合,一个集合称为一个簇. k-me ...
- 机器学习实验(一):运用机器学习(Kmeans算法)判定家庭用电主因
声明:版权所有,转载请联系作者并注明出处 http://blog.csdn.net/u013719780?viewmode=contents 博主简介:风雪夜归子(Allen),机器学习算法攻城狮, ...
- python 机器学习——Kmeans之K值的选取原理
Kmeans之K值的选取 参考 一般而言,没有所谓最好的选择聚类数的方法,通常情况下是需要根据不同的问题,人工进行选择的.选择的时候思考我们运用 K-means 算法聚类的动机是什么,然后选择能最好服 ...
- R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等
R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录
- 机器学习中模型参数和模型超参数分别是什么?有什么区别?
机器学习中模型参数和模型超参数分别是什么?有什么区别? 目录 机器学习中模型参数和模型超参数分别是什么?有什么区别?
- 机器学习--判别式模型与生成式模型
原文地址为:机器学习--判别式模型与生成式模型 一.引言 本材料参考Andrew Ng大神的机器学习课程 http://cs229.stanford.edu 在上一篇有监督学习回归模型中,我们利用训练 ...
- python网格搜索核函数_机器学习笔记——模型调参利器 GridSearchCV(网格搜索)参数的说明...
算法 数据结构 机器学习笔记--模型调参利器 GridSearchCV(网格搜索)参数的说明 GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数.但是这个 ...
- ML之Validation:机器学习中模型验证方法的简介、代码实现、案例应用之详细攻略
ML之Validation:机器学习中模型验证方法的简介.代码实现.案例应用之详细攻略 目录 模型验证方法的简介 1.Hold-out验证 2.K-折交叉验证 3.自助重采样 模型验证方法的代码实现 ...
- Scikit-Learn 机器学习笔记 -- 模型训练
Scikit-Learn 机器学习笔记 – 模型训练 参考文档: handson-ml import numpy as np from matplotlib import pyplot as plt# ...
最新文章
- 面板什么都看不到 unity_杨幂今年第一封太敷衍!最新大片不露脸不秀身材,什么都看不到...
- linux shell 创建序列数组(list,array)方法
- ios 权限提示语_撩妹神技?iOS 微信偷偷上线“拍一拍”
- 关于IAR的一些总结 -- ARM调试和Flash调试的区别
- python报错 TypeError: an integer is required
- Readiness 探测 - 每天5分钟玩转 Docker 容器技术(144)
- 用GSON 获取JSON数组属性
- MySQL 5.6 rpm安装方法和碰见的问题
- python在线怎么发音-Python如何实现文本转语音
- “进度条”博客——第十三周
- pyqt5 显示更新进度条_python如何通过pyqt5实现进度条
- Java小游戏之飞翔的小鸟
- Mathpix小工具下载
- oracle 11g sga_target=0,Oracle 11g sga_target 参数设置
- C++程序实现自我复制
- 财务自开发系统的一些想法(实现篇)
- java异常之-ClassNotFoundException: .......web.context.ContextLoaderServlet
- Eclipse导出JavaDoc中文乱码问题解决
- 【乐理知识】第一章谱表
- Json-server简单实现mock数据
热门文章
- c语言百人搬百砖答案,C语言程序设计实验四:循环结构
- 《趣学算法(第2版)》读书笔记 Part 1 :如何高效学习算法
- html弹性盒子作用,CSS3 什么是弹性盒子?
- 基于预训练模型的军事领域命名实体识别研究
- 【报错】route config “component“ for path: /test cannot be a string id. Use an actual component instead.
- firefox 火狐浏览器 跨域设置
- python使用opencv调取摄像头捕获图片或视频通用模板
- 计网----物理层:EIA-232接口标准与X.21标准
- ajax 给select赋值,jquery操作select取值赋值与设置选中
- ARM QT交叉编译