精华内容
下载资源
问答
  • PySpark机器学习案例--分类与聚类
    千次阅读
    2019-05-20 06:57:05

     

    案例一:基于逻辑回归算法的机器学习(分类)

    要求:text含有“spark”的 lable 标记为1,否则标记为0

      训练数据集:

    # 训练数据
    id	text	 		label
    0	"a b c d e spark"	1.0
    1	"b d"			0.0
    2	"spark f g h"		1.0
    3	"hadoop mapreduce"	0.0

      测试数据集:

    # 测试数据
    id	text	
    4	"spark i j k"
    5	"l m n"	
    6	"spark hadoop spark"
    7	"apache hadoop"
    

    可以看到:

    训练数据集包含有id,text,label三个字段;

    测试数据集只有id,text两个字段,没有的label字段就是要我们用机器学习方法预测出来的值,具体方式如下:

    1.用训练数据通过逻辑回归算法,训练出模型(经验)

    2. 测试数据经过模型处理得到预测值

    完整代码:

    example1.py 

    from pyspark.ml import Pipeline
    from pyspark.ml.classification import LogisticRegression
    from pyspark.ml.feature import HashingTF, Tokenizer
    from pyspark.sql import SparkSession
    spark = SparkSession.builder.getOrCreate()
    
    # 程序实现识别文本行中是否包含spark,如果包含标记列为1,否则为0
    
    # 训练数据集
    # Prepare training documents from a list of (id, text, label) tuples.
    training = spark.createDataFrame([
        (0, "a b c d e spark", 1.0),
        (1, "b d", 0.0),
        (2, "spark f g h", 1.0),
        (3, "hadoop mapreduce", 0.0)
    ], ["id", "text", "label"])
    
    # 配置一个pipeline管道,包括转换器和评估器
    # Configure an ML pipeline, which consists of three stages: tokenizer, hashingTF, and lr.
    tokenizer = Tokenizer(inputCol="text", outputCol="words")
    hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), outputCol="features")
    lr = LogisticRegression(maxIter=10, regParam=0.001)
    pipeline = Pipeline(stages=[tokenizer, hashingTF, lr])
    
    # 用管道训练出模型
    # Fit the pipeline to training documents.
    model = pipeline.fit(training)
    
    # 测试数据,测试数据没有label标签
    # Prepare test documents, which are unlabeled (id, text) tuples.
    test = spark.createDataFrame([
        (4, "spark i j k"),
        (5, "l m n"),
        (6, "spark hadoop spark"),
        (7, "apache hadoop")
    ], ["id", "text"])
    
    # 用测试数据来预测,
    # Make predictions on test documents and print columns of interest.
    prediction = model.transform(test)
    # 打印出感兴趣的列
    selected = prediction.select("id", "text", "probability", "prediction")
    for row in selected.collect():
        rid, text, prob, prediction = row
        print("(%d, %s) --> prob=%s, prediction=%f" % (rid, text, str(prob), prediction))
    

    注意:运行该项目需要先安装numpy 

    运行方法:

    至少有3种运行方式

    1. 如果是linux终端下运行,则输入以下命令运行(推荐使用)

    $ spark-submit example1.py

    或者 

    $ python3 example1.py

    2. 如果是在pycharm里编程,配置好spark相关文件后,则直接右键运行 

    3. 如果是在pyspark命令行下,那么就逐行输入,依次运行,需要点耐心和细心。

     

    运行结果:

    (4, spark i j k) --> prob=[0.1596407738787475,0.8403592261212525], prediction=1.000000
    (5, l m n) --> prob=[0.8378325685476744,0.16216743145232562], prediction=0.000000
    (6, spark hadoop spark) --> prob=[0.06926633132976037,0.9307336686702395], prediction=1.000000
    (7, apache hadoop) --> prob=[0.9821575333444218,0.01784246665557808], prediction=0.000000
    

    从运行结果来看,符合我们的预期,即包含spark的行预测值为1,否者为0。

     

     

    案例二:基于K-Means算法的机器学习案例(聚类)

    要求:对空间中的6个点进行K-Means聚类分析,K=2,得到2个中心点坐标

    数据集的数据格式为支持向量机数据(libsvm),如下:

    id	Feature
    0 	1:0.0 2:0.0 3:0.0
    1 	1:0.1 2:0.1 3:0.1
    2 	1:0.2 2:0.2 3:0.2
    3 	1:9.0 2:9.0 3:9.0
    4 	1:9.1 2:9.1 3:9.1
    5 	1:9.2 2:9.2 3:9.2

    从数据集可以画出三维坐标轴中的6个点

     

    预想的结果是通过数据集训练出一个模型,这个模型可以自动找出2个簇的中心点坐标,如下:

     

    完整代码:

    example2.py

    from pyspark.ml.clustering import KMeans
    from pyspark.ml.evaluation import ClusteringEvaluator
    
    from pyspark.sql import SparkSession
    spark = SparkSession.builder.getOrCreate()
    
    # 程序主要完成对空间点的聚类,6个空间点x,y,z坐标如下
    # 0 1:0.0 2:0.0 3:0.0
    # 1 1:0.1 2:0.1 3:0.1
    # 2 1:0.2 2:0.2 3:0.2
    # 3 1:9.0 2:9.0 3:9.0
    # 4 1:9.1 2:9.1 3:9.1
    # 5 1:9.2 2:9.2 3:9.2
    
    # Loads data. 注意修改txt文件路径
    dataset = spark.read.format("libsvm").load("data.txt")
    
    # 训练一个kmeans模型,将K设置为2,将分为两个簇
    kmeans = KMeans().setK(2).setSeed(1)
    model = kmeans.fit(dataset)
    
    # 预测 Make predictions
    predictions = model.transform(dataset)
    
    # 评估:创建评估器对象及评估 Evaluate clustering by computing Silhouette score
    evaluator = ClusteringEvaluator()
    
    silhouette = evaluator.evaluate(predictions)
    print("Silhouette with squared euclidean distance = " + str(silhouette))
    
    # 打印中心点Shows the result.
    centers = model.clusterCenters()
    print("Cluster Centers: ")
    for center in centers:
        print(center)
    
    

    准备数据

    $ nano data.txt

    内容如下:

    0 1:0.0 2:0.0 3:0.0
    1 1:0.1 2:0.1 3:0.1
    2 1:0.2 2:0.2 3:0.2
    3 1:9.0 2:9.0 3:9.0
    4 1:9.1 2:9.1 3:9.1
    5 1:9.2 2:9.2 3:9.2

    运行

    $ spark-submit example2.py

    结果:

    Silhouette with squared euclidean distance = 0.9997530305375207
    Cluster Centers:
    [0.1 0.1 0.1]
    [9.1 9.1 9.1]
    

     

    完成!enjoy it!

    更多相关内容
  • 大数据培训期间,课堂教材
  • python机器学习案例

    2022-03-18 17:59:49
    python机器学习案例
  • 机器学习案例

    2018-07-25 09:57:40
    python 机器学习示例代码,此代码为线性回归算法示例。
  • 机器学习案例源码

    2018-02-12 15:41:39
    机器学习各种方法的案例源码 由浅入深 完整 可编译运行
  • 机器学习案例ppt.zip

    2020-11-12 17:19:31
    机器学习案例ppt.zip
  • 用序列模型建立的简单的财务数据预测,python实现,内含代码和测试数据
  • 本压缩包包括6个机器学习实战案例及代码,包括kaggle的泰坦尼克号分析,用朴素贝叶斯实现语种检测以及聊天机器人等,有完整代码和案例分析,对于机器学习有兴趣的同学很有帮助
  • 构造一个端对端的房地产案例描述。主要分为以下几个步骤:1.观察大局,2.获得数据,3.从数据可视化中获得洞见,4.机器学习算法的数据准备,5.选择和训练模型,6.微调模型,7.展示解决方案,8.启动、监控和维护系统
  • matlab中的三十个经典机器学习案例源码
  • Python机器学习案例学习 英文文字版 pdf 格式 216页 已去水印 2017年
  • Python数据分析与机器学习实战教程,该课程精心挑选真实的数据集为案例,通过python数据科学库numpy,pandas,matplot结合机器学习库scikit-learn完成一些列的机器学习案例。课程以实战为基础,所有课时都结合代码演示...
  • 机器学习实战一书中chapter02所有案例的代码,带详细讲解说明,很全面
  • 亚马逊云科技7个典型的机器学习案例机器学习业界领先七大用例 2021.pdf
  • 经典书籍:Python机器学习的经典实例
  • 分享视频教程——基于Python数据分析与机器学习案例实战教程,课程很棒,附源码和课件,完整版资料,喜欢的同学赶紧下载吧
  • 机器学习案例研究

    2021-02-13 21:36:33
    机器学习案例研究
  • 机器学习实战源码.zip

    2022-03-26 17:28:31
    机器学习实战源码 适合机器学习初学者加深形象的理解,而不是仅限于理论 内含4个实战项目,代码精到,注释准确详细
  • 机器学习
  • 本篇文章主要介绍了python机器学习案例教程——K最近邻算法的实现,详细的介绍了K最近邻算法的概念和示例,具有一定的参考价值,有兴趣的可以了解一下
  • 机器学习案例——基于朴素贝叶斯算法的文本分类(垃圾邮件过滤)的数据集,见本人的这篇博客!!!这个资源是本人搜集的支撑数据包!
  • 机器学习案例讲解

    千人学习 2019-09-15 16:32:33
    该课程针对机器学习案例进行了讲解,主要是介绍了机器学习常用算法在实际项目中的应用。机器学习针对的是算法的实现,通过案例讲解能够让学习者快速掌握机器学习的经典算法,该课程是以案例的方式讲解,这样便于...
  • 机器学习
  • 课程背景基于数据分析与机器学习领域,使用python作为课程的实战语言,随着大数据与人工智能领域日益火爆,数据分析和机器学习建模成了当下最热门的技术,课程旨在帮助同学们快速掌握python数据分析包以及经典机器学习...

    %E8%AF%BE%E7%A8%8B%E8%83%8C%E6%99%AF.jpg

    课程背景基于数据分析与机器学习领域,使用python作为课程的实战语言,随着大数据与人工智能领域日益火爆,数据分析和机器学习建模成了当下最热门的技术,课程旨在帮助同学们快速掌握python数据分析包以及经典机器学习算法并通过对真实数据集分析进行实战演示。

    %E8%AF%BE%E7%A8%8B%E7%A0%94%E5%8F%91%E7%8E%AF%E5%A2%83%E5%8F%8A%E5%86%85%E5%AE%B9%E7%AE%80%E4%BB%8B.jpg

    1.课程研发环境

    课程基于windows环境进行讲解与代码演示,需要同学们搭建Python环境,推荐根据课时(使用Anaconda搭建python环境)来进行python和其依赖库的安装。

    2.内容简介

    课程风格通俗易懂,基于真实数据集案例实战。主体课程分成三个大模块(1)python数据分析,(2)机器学习经典算法原理详解,(3)十大经典案例实战。通过python数据科学库numpy,pandas,matplot结合机器学习库scikit-learn完成一些列的机器学习案例。算法课程注重于原理推导与流程解释,结合实例通俗讲解复杂的机器学习算法,并以实战为主,所有课时都结合代码演示。算法与项目相结合,选择经典kaggle项目,从数据预处理开始一步步代码实战带大家快速入门机器学习。旨在帮助同学们快速上手如何使用python库来完整机器学习案例。选择经典案例基于真实数据集,从数据预处理开始到建立机器学习模型以及效果评估,完整的讲解如何使用python及其常用库进行数据的分析和模型的建立。对于每一个面对的挑战,分析解决问题思路以及如何构造合适的模型并且给出合适评估方法。在每一个案例中,同学们可以快速掌握如何使用pandas进行数据的预处理和分析,使用matplotlib进行可视化的展示以及基于scikit-learn库的机器学习模型的建立。

    %E8%AE%B2%E5%B8%88%E4%BB%8B%E7%BB%8D.jpg

    唐宇迪老师,深度学习领域多年一线实践研究专家,计算机博士。主要研究和从事深度学习领域,

    计算机视觉,图像识别。精通机器学习,热爱各种开源技术尤其人工智能方向。多年数据领域

    培训经验,主要负责机器学习和深度学习的教学工作,在图像识别领域有着丰富经验,实现过包

    括人脸识别,物体识别,关键点检测等多种应用的最新算法。课程风格通俗易懂,乐于钻研,

    解开每一个问题,把复杂的问题简单表达呈。

    图片9(13).png

    %E8%AF%BE%E7%A8%8B%E5%A4%A7%E7%BA%B2.jpg

    Python数据分析与机器学习实战:

    第一讲:Python数据分析与机器学习实战课程简介

    第二讲:Python快速入门

    第三讲:Python科学计算库Numpy

    第四讲:Python数据分析处理库Pandas

    第五讲:Python可视化库Matplotlib

    第六讲:回归算法

    第七讲:模型评估

    第八讲:K近邻算法

    第九讲:决策树与随机森林算法

    第十讲:支持向量机

    第十一讲:贝叶斯算法

    第十二讲:神经网络

    第十三讲:Adaboost算法

    第十四讲:SVD与推荐

    第十五讲:聚类算法

    第十六讲:案例实战:使用Python库分析处理Kobe Bryan职业生涯数据

    第十七讲:案例实战:信用卡欺诈行为检测

    第十八讲:案例实战:泰坦尼克号获救预测

    第十九讲:案例实战:鸢尾花数据集分析

    第二十讲:案例实战:级联结构的机器学习模型

    第二十一讲:案例实战:员工离职预测

    第二十二讲:案例实战:使用神经网络进行手写字体识别

    第二十三讲:案例实战:主成分分析

    第二十四讲:案例实战:基于NLP的股价预测

    第二十五讲:案例实战:借贷公司数据分析

    %E8%AF%BE%E7%A8%8B%E6%88%AA%E5%9B%BE.png

    图片1(77).png

    图片2(60).png

    图片3(48).png

    图片4(44).png

    图片5(35).png

    图片6(34).png

    %E5%AD%A6%E4%B9%A0%E7%9B%AE%E6%A0%87.png

    目标一. 掌握Python数据分析的4个神器(Numpy,Pandas,Matplotlib,Scikit-learn)

    目标二. 机器学习经典算法的原理推导和建模流程

    目标三. 真实数据集演示如何对数据进行预处理

    目标四. 机器学习算法建模与调参技巧

    目标五. 完整演示如何对数据进行分析处理与可视化展示

    目标六. 经典的kaggle竞赛项目,挑战极限

    %E8%AF%BE%E7%A8%8B%E4%BA%AE%E7%82%B9.png

    亮点一、全程实战,十大真实数据集案例实战

    亮点二、通俗易懂,幽默风趣的讲解

    亮点三、机器学习算法与实战结合

    亮点四、python数据分析必备神器讲解

    %E8%AF%BE%E7%A8%8B%E9%92%88%E5%AF%B9%E4%BA%BA%E7%BE%A4%E5%8F%8A%E8%AE%B2%E5%B8%88%E5%BB%BA%E8%AE%AE%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95.jpg

    1.课程针对人群

    本课程需要有一些编程经验以及基本的数学基础,针对于对数据领域感兴趣的同学们,帮助大家快速上手使用python进行数据分析,结合机器学习算法展开建模与评估。

    2.我该怎么学,如何才能学好这门课程,给些建议。

    4.1、时间上的安排建议

    本课程共25讲,如果您时间上充分,建议以每天2-3讲的进度往前学习。

    4.2、学习要求

    如果您没有基础,建议还是中规中矩的按照课程进度一点一点仔细观看学习,并一定要把看完的视频中的代码自己手敲一遍,以加深理解和记忆

    如果您有基础,可不必按步就搬进行,可以拿你感兴趣的部分去学习,但一定要注意实践,并学会举一反三

    4.3、讲师建议

    1.动手实践很重要!最好看完视频之后,抛开视频,独立自己去把上课中的案例分析代码写一遍,看自己是否理解,如何遇到问题可以回过头看再看下视频,如果反复,达到真正理解和熟练掌握的目的。

    2.对于机器学习算法,如果对数学公式有些困惑可以先从整个流程的角度去理解

    3. 建议一般听视频,一般拿个纸和笔,做一些记录和笔记,这是一种非常好的学习习惯。

    4. 最后祝您学有所成

    %E8%83%BD%E5%81%9A%E4%BB%80%E4%B9%88.png

    课程应用面非常广,可以就职于以下岗位

    1.数据分析师

    2.机器学习工程师

    3.数据挖掘领域

    图片7(23).png

    图片8(18).png

    展开全文
  • 机器学习的很多示例代码,包括模型估计与优化的房屋价格预测、监督学习、集成学习、强化学习、神经网络的内容示例应用示例
  • 机器学习房价预测实战案例:输入数据集,train和test分别是训练集和测试集,关注房价分布,剔除离群样本;进行特征工程,训练回归模型,stacking 集成学习以及多模型线性融合。
  • 通过案例展示其特点和本质,快速掌握机器学习模型的核心理论,将重点回归到机器学习算法本身。 本课程选取了机器学习经典的4大编码项目涉及机器学习基本算法,神经网络和开源学习软件weka数据挖掘:, 再也不用...
  • 良/恶性乳腺癌肿瘤预测问题是一个十分经典的机器学习问题,简单来说我们需要利用肿块厚度和细胞尺寸这两个特征来判断肿瘤的类型(良性或者是恶性)。数据的下载网站如下:...

    良/恶性乳腺癌肿瘤预测

    良/恶性乳腺癌肿瘤预测问题是一个十分经典的机器学习问题,简单来说我们需要利用肿块厚度和细胞尺寸这两个特征来判断肿瘤的类型(良性或者是恶性)。数据的下载网站如下:http://note.youdao.com/groupshare/?token=C6B145FA919F41F8ACAAC39EE775441C&gid=93772390
    我们首先来看一下部分数据
    在这里插入图片描述
    Clump Thickness 表示肿块厚度(取值被人为划分为1到10,共10个等级),Cell Size 表示细胞尺寸(同样取值被人为划分为1到10,共10个等级),Type表示肿瘤的类型:0代表良性肿瘤,1代表恶性肿瘤。

    下面我们来分析一下这个问题,根据机器学习的定义我们需要知道任务,经验和性能评估。
    1、我们的任务是利用肿块厚度和细胞尺寸这两个特征来判断肿瘤的类型(良性或者是恶性)。
    2、我们的经验就是我们的训练数据。
    3、我们的评价指标就是对测试集数据预测的正确率。

    为什么要划分训练集和测试集呢?

    我们的目标是要让我们的模型能够对未来的数据有比较好的预测效果,即泛化能力要强。而目前我们的数据有限,没有未来的数据,所以一个自然的想法就是把所有的数据集分成两份,一份用于训练模型,另一部分用来评估模型的效果(作为泛化能力的一个近似)。
    一般来说在数据量在万级别以下的情况下,我们将数据的75%作为训练集用于训练模型,25%的数据作为测试集用于评估模型的效果。

    数据可视化

    下面我们绘制了测试集数据的散点图,其中横坐标为肿块厚度,纵坐标为细胞尺寸,红点代表良性肿瘤,黑色的叉代表恶性肿瘤:
    在这里插入图片描述
    从图中我们大致可以看出恶性肿瘤一般集中在图的右上方,良性的肿瘤一般集中在图的左下方。

    本文暂时不介绍模型(logistic 回归),只是给一个感性上的或者直觉上的认知,后续会具体介绍。

    随机初始化分类器的效果

    如果我们打算用一条直线来划分良性肿瘤和恶性肿瘤的话,那么我们需要拟合一条ax+by+c=0这样的一条直线,也就是需要估计三个参数。如果我们随机的取值的话,一种情况如下图所示:
    在这里插入图片描述
    我们可以看到黄色的这条线就是我们随机初始化得到的分类器,显然这条直线的分类效果很差。

    使用10条训练集数据训练模型得到的分类器效果

    在这里插入图片描述
    我们可以看到绿色的这条线就是我们现在得到的分类器。使用了10条训练数据以后,模型的参数得到了改进,分类器现在的分类效果得到了显著的提升。

    使用所有条训练集数据训练模型得到的分类器效果

    在这里插入图片描述
    蓝色的这条线就是我们使用全部训练数据得到的分类器。该模型的参数得到了进一步改进,分类器现在的分类效果进一步得到了提升。

    【小结】通过这个案例我们就可以知道,随着训练数据的增加,模型的预测效果也会不断改善。业界有一个基本共识:有价值的数据量的大小决定了模型最终的效果,使用数据量越多的模型,模型的泛化能力越强。数据的质量以及数据量的大小决定了模型效果的上限,而我们建立的模型只能不断的逼近这个上线罢了。这也就是业界如此强调特征工程的原因,关于特征工程的定义以及具体如何操作我们后续再说。

    参考

    范淼,李超.Python机器学习及实践——从零开始通往Kaggle竞赛之路

    展开全文
  • 机器学习案例实操——鸢尾花

    千次阅读 多人点赞 2020-10-16 14:24:48
    机器学习案例实操——鸢尾花 本文做要给大家回归一下Numpy的基础知识,毕竟python 中的sklearn中使用的是这种数据类型。然后用一个鸢尾花分类实例给大家演示机器学习的整个过程,让你快速入门机器学习。 1.Numpy...

    机器学习案例实操——鸢尾花

     本文做要给大家回归一下Numpy的基础知识,毕竟python 中的sklearn中使用的是这种数据类型。然后用一个鸢尾花分类实例给大家演示机器学习的整个过程,让你快速入门机器学习。
    

    1.Numpy基础知识回顾
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    import numpy as np
    arr1=np.array([2,3,4,5,6])#数值型数组
    arr2=np.array((2,3,4,5,6))#数值型数组
    arr3=np.array(['a','b','c','d'])#字符串型数组
    arr4=np.array([(1,2,3),(4,5,6)])#二维数组
    print("数组1的各维度:{},数组4的各维度:{}".format(arr1.shape,arr4.shape))
    print("数组1的元素个数:{},数组4的元素个数:{}".format(arr1.size,arr4.size))
    print("数组1的维度:{},数组4的维度:{}".format(arr1.ndim,arr4.ndim))
    print("数组1的数据类型:{},数组4的数据类型:{}".format(arr1.dtype,arr4.dtype))
    

    在这里插入图片描述

    #数据类型转换
    arr1=np.arange(6)
    print("将数组arr1元素转为浮点型:{}".format(arr1.astype(np.float64)))
    arr2=np.arange(1.0,1.5,0.1)#小数转为整数,小数部分会截断
    print("将数组arr2元素转为整型:{}".format(arr2.astype(np.int32)))
    arr3=np.array(['1','1.2','1.5'])#含有小数,不能直接转为整数
    print("将数组arr3元素转为浮点型:{}".format(arr3.astype(np.float)))
    print("将数组arr1元素转为arr3元素类型:{}".format(arr1.astype(arr3.dtype)))
    print("将数组arr2元素转为arr3元素类型:{}".format(arr2.astype(arr3.dtype)))
    

    在这里插入图片描述

    #数据类型转换
    arr1=np.arange(6)
    print("将数组arr1元素转为浮点型:{}".format(arr1.astype(np.float64)))
    arr2=np.arange(1.0,1.5,0.1)#小数转为整数,小数部分会截断
    print("将数组arr2元素转为字符串型:{}".format(arr2.astype(np.int32)))
    arr3=np.array(['1','1.2','1.5'])#含有小数,不能直接转为整数
    print("将数组arr3元素转为浮点型:{}".format(arr3.astype(np.float)))
    print("将数组arr1元素转为arr3元素类型:{}".format(arr1.astype(arr3.dtype)))
    print("将数组arr2元素转为arr3元素类型:{}".format(arr2.astype(arr3.dtype)))
    

    在这里插入图片描述

    #数据预处理
    arr1=np.array([1,2,np.nan,4])
    print("一维数组arr1:{}".format(arr1))
    print("判断arr1所有元素是否有缺失值:\n{}".\
          format(np.isnan(arr1)))
    arr1[np.isnan(arr1)]=0#缺失值填充
    print("将arr1中缺失值替换为0:{}".format(arr1))
    
    
    arr2=np.array([1,2,2,3,3,4])
    print("将arr2去重后为:{}".format(np.unique(arr2)))
    print("将arr2用set去重后为:{}".\
          format(np.array(list(set(arr2)))))
    

    2.辨异识花
    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述

    import csv
    import numpy as np
    with open('iris.csv','r') as  f :
        rows=csv.reader(f)
        for row in rows:
            print(row)
    

    在这里插入图片描述

    import csv
    import numpy as np
    with open('iris.csv','r') as  f :
        rows=csv.reader(f)
        data_file=np.array(list(rows))#将数据转换为数组
        print(data_file.shape)#查看数组的形状
        print(data_file.size)#查看数组的元素个数
        print(data_file.ndim)#查看数组维数
    

    在这里插入图片描述

    Data=data_file[1:,1:5].astype(float)#将字符串转为浮点
    print(np.isnan(Data).any())#检查是否有缺失值
    Labels=data_file[1:,-1]#鸢尾花类型标识
    print(Labels[Labels==""].shape)#检查是否有缺失值
    

    在这里插入图片描述

    from sklearn import datasets
    iris_data = datasets.load_iris()
    data = iris_data.data#训练样本的值
    feature = iris_data.feature_names  #训练样本的值对应的名称
    target = iris_data.target  # 所有样本的目标值
    target_names = iris_data.target_names  # 目标值对应的名称
    X_train = data[:,0:2]  # 训练样本的特征
    y_train = target  # 训练样本的结果
    #目前取得样本特征和结果依旧是一一对应的关系
    #X_train = data[:,2:4]  # 训练样本的特征
    import matplotlib.pyplot as plt
    plt.scatter(X_train[:,0],X_train[:,1],c=y_train)
    plt.xlabel('Sepal length')  #设置x轴的标签
    plt.ylabel('Sepal width')  #设置y轴的标签
    #plt.scatter(X_train[:,0],X_train[:,1],c=y_train)
    #plt.xlabel('Petal length')  #设置x轴的标签
    #plt.ylabel('Petal width')  #设置y轴的标签
    plt.show()
    

    在这里插入图片描述
    在这里插入图片描述

    #机器学习
    from sklearn.neighbors import KNeighborsClassifier
    np.random.seed(0)#设置随机种子,产生的随机数一样
    indices = np.random.permutation(len(Data))#随机打乱数组
    print(indices)
    Data_train = Data[indices[:-10]]#随机选取140样本作为训练集
    Labels_train = Labels[indices[:-10]]#随机选取140样本标签作为训练集
    
    Data_test = Data[indices[-10:]]#剩下10个样本作为测试集
    Labels_test = Labels[indices[-10:]]#剩下10个样本标签作为测试集
    

    在这里插入图片描述
    在这里插入图片描述

    knn = KNeighborsClassifier()#定义一个knn分类器对象
    knn.fit(Data_train,Labels_train)#接收两个参数:训练数据集及其样本标签
    Labels_predict = knn.predict(Data_test) #调用该对象的测试方法,主要接收一个参数:测试数据集
    probility=knn.predict_proba(Data_test)#计算各测试样本基于概率的预测
    
    score=knn.score(Data_test,Labels_test,sample_weight=None)#调用该对象的打分方法,计算出准确率
    print('Labels_predict = ')
    print(Labels_predict )#输出测试的结果
    print('Labels_test = ')
    print(Labels_test)#输出原始测试数据集的正确标签
    print('Accuracy:',score)#输出准确率计算结果
    print(probility)
    

    更新每页代码给大家O(∩_∩)O

    
    编写打磨课件不易,走过路过别忘记给咱点个赞,小女子在此(❁´ω`❁)谢过!
    
    
    
    
    
    
    
    
    
    
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 131,463
精华内容 52,585
关键字:

机器学习案例