前言

我是一个完全没用过python的人,所以,想写机器学习,就得从语法入手。

首先上W3cSchool去学习基础语法。

基础语法都差不多,重点看一下函数,模块,面向对象。

函数的写法稍有不同,格式上类似yml的写法;模块会介绍import的相关信息;面向对象会介绍类的相关信息。

参考网站:

https://www.w3cschool.cn/python3/

https://www.w3cschool.cn/python3/python3-eam72ylh.html

理论上,2~3个小时就能学完。

K-means机器学习

我这里使用VSCode进行开发,随便打开一个文件夹,然后创建一个KmeansTest.py的文件,然后点运行(右上角的三角),然后系统会提示安装python。

因为我电脑是Window11,所以会弹窗提示我安装python3的包,点击安装即可;如果不是window11,就自己下个python包,配置一下环境变量,这个过程不复杂。

然后,因为我是完全没有python经验的,所以我也不知道要安装什么插件,所以我就打开扩展窗口,输入python搜索,随便按几个最上面的插件。

然后,先在终端里执行下面代码:

 pip install scikit-learn
pip install matplotlib

scikit-learn是做机器学习的,matplotlib是一个绘图的库。

然后我们定义个数组做为学习的源数据.

X1 = [
[0.0,0.0],
[0.0,0.3],
[0.3,0.0],
[9.0,0.0],
[9.0,0.6],
[9.6,0.0]]

然后编写代码:

from sklearn.cluster import KMeans
# 按F2可以重命名
xList = [
[0.0,0.0],
[0.0,0.3],
[0.3,0.0],
[9.0,0.0],
[9.0,0.6],
[9.6,0.0]]
n_clusters = 2
cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(xList) xLable = cluster.labels_
# xlable 是上面那个集合,每个元素的所属分组
print ("xLable",xLable) xListGroup1 =[]
xListGroup2 =[]
# 使用range时,循环的是索引,python里叫序列
for index in range(len(xList)) : cluster = xLable[index]
if(cluster==1):
xListGroup1.append( xList[index])
if(cluster==0):
xListGroup2.append( xList[index]) print ("xListGroup1",xListGroup1)
print ("xListGroup2",xListGroup2)

调试得到结果:

如我们期待的一样,前3个数据比较接近,后三个比较接近,所以,分两组的话,就是前3个一组,后3个一组。

经验

调试时,删除终端再建一个,不然有时候会出现莫名奇妙的异常,而实际上,代码并没有错误,这个非常耽误时间。

使用matplotlib

使用matplotlib的make_blobs函数,生成一个大一点的数据源测试,代码如下:

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans xList, y = make_blobs(n_samples=500,n_features=2,centers=4,random_state=1) n_clusters = 2
cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(xList) xLable = cluster.labels_
# xlable 是上面那个集合,每个元素的所属分组
print ("xLable",xLable) xListGroup1 =[]
xListGroup2 =[] # 使用range时,循环的是索引,python里叫序列
for index in range(len(xList)) :
cluster = xLable[index]
if(cluster==1):
xListGroup1.append( xList[index])
if(cluster==0):
xListGroup2.append( xList[index]) print ("xListGroup1",xListGroup1)
print ("xListGroup2",xListGroup2)

结语

通过上面代码,我们简简单单的实现了一个机器学习。

如果想让这个功能跟项目沟通,那就学习一下网络编程,写一个http监听,然后接一组数据,用上面代码处理完,返回一组数据即可。

同理,上面的代码可以换成opencv的,可以换成TensorFlow的。


注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!



若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!

https://www.cnblogs.com/kiba/p/18085072

没有Python基础,如何学习用Python写机器学习的更多相关文章

  1. 『Python基础-1 』 编程语言Python的基础背景知识

    #『Python基础-1 』 编程语言Python的基础背景知识 目录: 1.编程语言 1.1 什么是编程语言 1.2 编程语言的种类 1.3 常见的编程语言 1.4 编译型语言和解释型语言的对比 2 ...

  2. Python基础:四、python的优缺点

    python是一门动态解释性的强类型语言 python的优点: 1. python的定位是"优雅"."明确"."简单" python程序看上 ...

  3. Python基础入门教程,Python学习路线图

    给大家整理的这套python学习路线图,按照此教程一步步的学习来,肯定会对python有更深刻的认识.或许可以喜欢上python这个易学,精简,开源的语言.此套教程,不但有视频教程,还有源码分享,让大 ...

  4. python基础(1)---python简介

    一.python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.目前Python已经成为实际上除了中国最流行的开发语 ...

  5. (Python基础教程之八)Python中的list操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  6. Python基础:二、python介绍

    Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言 python的创始人为GuidovanRossum.1989年圣诞节期间,Guido再阿姆斯特丹未来打发时间,决心开发一个新的脚本解释程序 ...

  7. python基础篇_001_初识Python

    一.Python环境 windows环境安装Python步骤 .下载安装包:https://www.python.org/downloads/windows/  .安装:默认安装路径:C:\pytho ...

  8. Python基础学习笔记(一)python发展史与优缺点,岗位与薪资

    相信有好多朋友们都是第一次了解python吧,可能大家也听过或接触过这个编程语言.那么到底什么是python呢?它在什么机缘巧合下诞生的呢?又为什么在短短十几年时间内就流行开来呢?就请大家带着疑问,让 ...

  9. python基础【2】——python数据类型之字符串

    python数据类型-字符串 一. 字符串的表示方法(str) 作用: 记录文本信息 表示方法:' ' 单引号 " "双引号 ''' '''三单引号 ""&qu ...

  10. python基础入门教程《python入门经典》

    第一章 在python中使用数字 1.用变量存储信息 1.1变量的类型 变量,用于存储很多不同的数据类型的信息. 基本数据类型 数据类型 存储内容 示例 integer 整   float 浮点   ...

随机推荐

  1. NC16591 [NOIP2010]关押罪犯

    题目链接 题目 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气 ...

  2. Linux 中hdparm命令使用说明——带实例

    详解Linux中hdparm命令查看硬盘信息的用法 功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ][-a ][-A <0或1>][-c ][-d ...

  3. 解决maven打包compliation failure程序包不存在

    1.问题说明 spring boot项目,在cmd中使用mvn clean package打包报错如下: 说这个程序包不存在,而实际上在eclipse中查看是能找到的. 2.问题原因 后来看了一下这个 ...

  4. Oracle日期格式化问题:to_date(sysdate,'yyyy-MM-dd')与 to_date(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd')区别

    1.需求描述 对系统日期进行格式化,并仍保持日期类型 2.错误方法 直接使用to_date()实现 SELECT TO_DATE(SYSDATE,'YYYY-MM-DD') FROM DUAL; 这样 ...

  5. 2.Go 的指针

    Go的指针 1. 变量内存地址 var age = 18 // & + 变量 = 变量内存地址 fmt.Println("age:",&age) 2. 指针变量 / ...

  6. 数据结构(三):舞伴配对问题(C++,队列)

    好家伙, 题目如下: 1.舞伴配对问题:假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队.跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴. 2.若两队初始人数不相同,则较长的那一队中未配 ...

  7. Html飞机大战(十三): 暂停状态编辑

    好家伙,本篇介绍如何添加暂停状态 按照惯例我们依旧先分析思路 什么时候游戏应该暂停? 当我的鼠标不在游戏画面内了,我们就可以直接暂停了 在当我的鼠标回来以后,我们继续进行游戏 所以我们可以监听一个鼠标 ...

  8. [Rust] 变量的属性: 不可变(immutable), 可变(mutable), 重定义(shadowing), 常量(const), 静态(static)

    [Rust] 变量的属性: 不可变(immutable), 可变(mutable), 重定义(shadowing), 常量(const), 静态(static) 变量的可变性 在 Rust 中, 变量 ...

  9. 逆向实战32——某东最新h5st4.4算法分析

    前言 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6 ...

  10. 【Azure Redis 缓存】Azure Cache for Redis 服务的导出RDB文件无法在自建的Redis服务中导入

    问题描述 使用微软云的Redis服务,导出它的RDB文件后,想把数据恢复到本地自建的Redis服务中,发现出现如下错误: 15000:S 21 Jun 08:14:11.199 * Retrying ...