kmeans

Python-根据成绩分析是否继续深造

ぃ、小莉子 提交于 2020-04-26 08:33:02
案例:该数据集的是一个关于每个学生成绩的数据集,接下来我们对该数据集进行分析,判断学生是否适合继续深造 数据集特征展示 1 GRE 成绩 (290 to 340 ) 2 TOEFL 成绩(92 to 120 ) 3 学校等级 (1 to 5 ) 4 自身的意愿 (1 to 5 ) 5 推荐信的力度 (1 to 5 ) 6 CGPA成绩 (6.8 to 9.92 ) 7 是否有研习经验 (0 or 1 ) 8 读硕士的意向 (0.34 to 0.97) 1.导入包 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import os,sys 2.导入并查看数据集 df = pd.read_csv( " D:\\machine-learning\\score\\Admission_Predict.csv " ,sep = " , " ) print('There are ',len(df.columns),'columns') for c in df.columns: sys.stdout.write(str(c)+', ' There are 9 columns Serial No., GRE Score, TOEFL Score,

机器学习经典算法之K-Means

喜欢而已 提交于 2020-04-26 07:41:30
一、简介 K-Means 是一种非监督学习,解决的是聚类问题。K 代表的是 K 类,Means 代表的是中心,你可以理解这个算法的本质是确定 K 类的中心点,当你找到了这些中心点,也就完成了聚类。 /*请尊重作者劳动成果,转载请标明原文链接:*/ /* https://www.cnblogs.com/jpcflyer/p/11117012.html * / 先请你和我思考一个场景,假设我有 20 支亚洲足球队,想要将它们按照成绩划分成 3 个等级,可以怎样划分? 二、 K-Means 的工作原理 对亚洲足球队的水平,你可能也有自己的判断。比如一流的亚洲球队有谁?你可能会说伊朗或韩国。二流的亚洲球队呢?你可能说是中国。三流的亚洲球队呢?你可能会说越南。 其实这些都是靠我们的经验来划分的,那么伊朗、中国、越南可以说是三个等级的典型代表,也就是我们每个类的中心点。 所以回过头来,如何确定 K 类的中心点?一开始我们是可以随机指派的,当你确认了中心点后,就可以按照距离将其他足球队划分到不同的类别中。 这也就是 K-Means 的中心思想,就是这么简单直接。你可能会问:如果一开始,选择一流球队是中国,二流球队是伊朗,三流球队是韩国,中心点选择错了怎么办?其实不用担心,K-Means 有自我纠正机制,在不断的迭代过程中,会纠正中心点。中心点在整个迭代过程中,并不是唯一的,只是你需要一个初始值

无监督学习-主成分分析和聚类分析

耗尽温柔 提交于 2020-04-26 06:32:46
聚类分析(cluster analysis)是将一组研究对象分为相对同质的群组(clusters)的统计分析技术,即将观测对象的群体按照相似性和相异性进行不同群组的划分,划分后每个群组内部各对象相似度很高,而不同群组之间的对象彼此相异度很高。 回归、分类、聚类的区别 : 有监督学习 --->> 回归、分类 / 无监督学习 --->>聚类 回归 -->>产生连续结果,可用于预测 分类 -->>产生连续结果,可用于预测 聚类 -->>产生一组集合,可用于降维 一、PCA主成分分析 二、PCA主成分的python实现方法 通过sklearn的PCA类实现,from sklearn.decomposition import PCA pca = PCA(n_components=1) # n_components参数表示最终维度 pca.fit(data) #创建模型 data_pca = pca.transform(data) #降维,创建模型和降维可通过一步实现fit_transform data_inverse = pca.inverse_transform(data_pca) #根据降维结果反算原始数据 1.二维数据降维 rng = np.random.RandomState(8 ) data = np.dot(rng.rand(2,2),rng.randn(2,200)).T #

Python机器学习入门(1)之导学+无监督学习

拥有回忆 提交于 2020-04-26 06:27:21
Python Scikit-learn *一组简单有效的工具集 *依赖Python的NumPy,SciPy和matplotlib库 *开源 可复用 sklearn库的安装 DOS窗口中输入 pip install ** NumPy(开源科学计算库),SciPy(集成多种数学算法和函数模块)和matplotlib(提供大量绘图工具)库基础上开发的,因此需要先装这些依赖库 安装顺序 SKlearn库中的标准数据集及基本功能 波士顿房价数据集 使用sklearn.datasets.load_boston即可加载相关数据集 return_X_y:表示是否返回target(即价格),默认为False,只返回data(即属性)。 鸢尾花数据集 使用sklearn.datasets.load_iris即可加载相关数据集 参数:return_X_y:若为True,则以(data,target)形式返回数据;默认为False,表示以字典形式返回数据全部信息(包括data和target) 手写数字数据集 使用sklearn.datasets.load_digits即可加载相关数据集 return_X_y:若为True,则以(data,target)的形式返回数据;默认为False,表示以字典形式返回数据全部信息包括(data和target) n_calss:表示返回数据的类别数,如:n_class=5

数据竞赛实战(4)——交通事故理赔审核

痞子三分冷 提交于 2020-04-24 23:03:47
前言 1,背景介绍   在交通摩擦(事故)发生后,理赔员会前往现场勘察、采集信息,这些信息往往影响着车主是否能够得到保险公司的理赔。训练集数据包括理赔人员在现场对该事故方采集的36条信息,信息已经被编码,以及该事故方最终是否获得理赔。我们的任务是根据这36条信息预测该事故方没有被理赔的概率 2,任务类型   入门二元分类模型 3,数据文件说明 train.csv        训练集    文件大小为15.6MB test.csv      预测集   文件大小为6.1MB sample_submit.csv   提交示例 文件大小为1.4MB 4,数据变量说明    训练集中共有200000条样本,预测集中有80000条样本。 5,评估方法   你的提交结果为每个测试样本未通过审核的概率,也就是Evaluation为1的概率。评价方法为精度-召回曲线下面积(Precision-Recall AUC),以下简称PR-AUC。   PR-AUC的取值范围是0到1。越接近1,说明模型预测的结果越接近真实结果。 5.1 精度和召回的定义和计算方式如下:  可以参考博文: 机器学习笔记:常用评估方法   首先,我们先从混淆矩阵聊起,混淆矩阵是用来总结一个分类器结果的矩阵,对于K元分类,其实它就是一个 k * k 的表格,用来记录分类器的预测结果。   对于最常见的二元分类来说

sklearn 中的聚类方法的使用

寵の児 提交于 2020-04-24 13:32:40
1.K-Means 算法: KMeans(n_clusters, init, n_init, max_iter, tol, precompute_distances, verbose, random_state, copy_x, n_jobs, algorithm) KMeans类的主要参数有:     1) n_clusters : 即我们的k值,一般需要多试一些值以获得较好的聚类效果。k值好坏的评估标准在下面会讲。     2) max_iter : 最大的迭代次数,一般如果是 凸数据集 的话可以不管这个值,如果数据集不是凸的,可能很难收敛,此时可以指定最大的迭代次数让算法可以及时退出循环。     3) n_init: 用不同的初始化质心运行算法的次数。由于K-Means是结果受初始值影响的局部最优的迭代算法,因此需要多跑几次以选择一个较好的聚类效果,默认是10,一般不需要改。如果你的k值较大,则可以适当增大这个值。     4) init: 即初始值选择的方式,可以为完全随机选择'random',优化过的'k-means++'或者自己指定初始化的k个质心。一般建议使用默认的'k-means++'。     5) algorithm :有“auto”, “full” or “elkan”三种选择。"full"就是我们传统的K-Means算法, “elkan

K-Means算法的Python实现

做~自己de王妃 提交于 2020-04-21 07:50:31
算法简介 K-Means是一种常用的聚类算法。聚类在机器学习分类中属于无监督学习,在数据集没有标注的情况下,便于对数据进行分群。而K-Means中的K即指将数据集分成K个子集合。 K-Means演示 从以下的动画、视频和计算过程可以较为直观了解算法的计算过程。 动画展示 视频展示 https://youtu.be/BVFG7fd1H30 在线展示 kmeans测试页面 使用场景 由于简单和低维度下高效的特性,K-Means算法被应用在人群分类,图像分段,文本分类以及数据挖掘前数据预处理场景中。 算法理解 计算流程 一下使用 $$ 分隔的内容为 LaTeX 编码的数学表达式,请自行解析。 假设有n个点$$x_{1}$$, $$x_{2}$$, $$x_{3}$$, ..., $$x_{n}$$ 以及子集数量K。 步骤1 取出K个随机向量作为中心点用于初始化 $$C = c_{1},c_{2},...,c_{k}$$ 步骤2 计算每个点$$x_{n}$$与K个中心点的距离,然后将每个点聚集到与之最近的中心点 $$\min_{c_{i} \in C} dist(c_{i},x)$$ dist函数用于实现欧式距离计算。 步骤3 新的聚集出来之后,计算每个聚集的新中心点 $$c_{i} = avg(\sum_{x_{i} \in S_{i}} x_{i})​$$

K-Means算法的Python实现

一世执手 提交于 2020-04-20 14:12:13
算法简介 K-Means是一种常用的聚类算法。聚类在机器学习分类中属于无监督学习,在数据集没有标注的情况下,便于对数据进行分群。而K-Means中的K即指将数据集分成K个子集合。 K-Means演示 从以下的动画、视频和计算过程可以较为直观了解算法的计算过程。 动画展示 视频展示 https://youtu.be/BVFG7fd1H30 在线展示 kmeans测试页面 使用场景 由于简单和低维度下高效的特性,K-Means算法被应用在人群分类,图像分段,文本分类以及数据挖掘前数据预处理场景中。 算法理解 计算流程 一下使用 $$ 分隔的内容为 LaTeX 编码的数学表达式,请自行解析。 假设有n个点$$x_{1}$$, $$x_{2}$$, $$x_{3}$$, ..., $$x_{n}$$ 以及子集数量K。 步骤1 取出K个随机向量作为中心点用于初始化 $$C = c_{1},c_{2},...,c_{k}$$ 步骤2 计算每个点$$x_{n}$$与K个中心点的距离,然后将每个点聚集到与之最近的中心点 $$\min_{c_{i} \in C} dist(c_{i},x)$$ dist函数用于实现欧式距离计算。 步骤3 新的聚集出来之后,计算每个聚集的新中心点 $$c_{i} = avg(\sum_{x_{i} \in S_{i}} x_{i})​$$

K均值算法--应用

霸气de小男生 提交于 2020-04-20 05:31:39
1. 应用K-means算法进行图片压缩 读取一张图片 观察图片文件大小,占内存大小,图片数据结构,线性化 用kmeans对图片像素颜色进行聚类 获取每个像素的颜色类别,每个类别的颜色 压缩图片生成:以聚类中收替代原像素颜色,还原为二维 观察压缩图片的文件大小,占内存大小 from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib.pyplot as plt import numpy as np import matplotlib.image as img import sys # 从库中读取一张照片 china = load_sample_image('china.jpg') # 显示原图片 plt.imshow(china) plt.show() # 压缩图片 image = china[::3, ::3] x = image.reshape(-1, 3) plt.imshow(image) plt.show() #使用机器学习K-Means算法压缩 # 定义聚类中心 n_colors = 64 model = KMeans(n_colors) #预测 label = model.fit_predict(x) colors = model

K均值算法

痴心易碎 提交于 2020-04-15 11:56:33
【推荐阅读】微服务还能火多久?>>> 一、概念   K-means中心思想:事先确定常数K,常数K意味着最终的聚类类别数,首先 随机选定初始点 为质心,并通过 计算 每一个样本与质心之间的 相似度 (这里为欧式距离),将样本点归到最相似的类中,接着,重新 计算每个类的质心 (即为类中心),重复这样的过程,直到质心 不再改变 ,最终就确定了每个样本所属的类别以及每个类的质心。由于每次都要计算所有的样本与每一个质心之间的相似度,故在大规模的数据集上,K-Means算法的收敛速度比较慢。 二、特点: 常用距离 a.欧式距离 b.曼哈顿距离 三、算法流程 K-means是一个反复迭代的过程,算法分为四个步骤: (x,k,y) (1) 选取数据空间中的K个对象作为初始中心,每个对象代表一个聚类中心;      def initcenter(x, k): kc (2) 对于样本中的数据对象,根据它们与这些聚类中心的欧氏距离,按距离最近的准则将它们分到距离它们最近的聚类中心(最相似)所对应的类;      def nearest(kc, x[i]): j     def xclassify(x, y, kc):y[i]=j (3) 更新聚类中心:将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;     def kcmean(x, y, kc, k): (4)