首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习篇(七)

机器学习篇(七)

作者头像
不断折腾
发布2019-09-23 11:22:27
4310
发布2019-09-23 11:22:27
举报
非监督学习

非监督学习的特点:只有特征值没有目标值。

当没有目标值时,只能把相似的特征归为一个类别。

这种分析方法叫做聚类。

聚类的过程:

如果知道可以划分为多少个类别:

这里以划分x个类别为例:

1、随即在数据中抽取x个样本,当做x个类别的中心点

2、计算其他点分别到这三个点的距离(欧氏距离),距离那个中心点近就划分为那个类别

3、计算每个类别的平均值,这个这个值于中心点相同,结束聚类。

如果不相同,以计算出的平均值为中心点,再次重复2,3步。

如果不知道需要划分为几类,就需要当做超参数处理。

模块:

sklearn.cluster.KMeans()

参数n_clusters:聚类中心的数量(需要分多少类)

参数init:初始化方法,默认为k-means++

性能评估标准:轮廓系数

深度学习之Tensorflow

深度学习和机器学习的区别:简单来说就是算法的区别和应用领域的区别。

深度学习常用于图像理解,语音识别,自然语言处理,无人驾驶等。

安装Tensorflow,分为cup版和gup版。

安装步骤查看:https://tensorflow.google.cn/install/pip?lang=python3&hl=zh-CN

因版本不同,会有部分差异。

测试是否安装成功:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
# 输出:Hello, TensorFlow!代表安装成功。

在Tensorflow中的名词:

将数据称之为tensor:张量

operstion(op):运算的操作节点,(所有的操作都是一个op),例如上面的hello就是一个op。

图(graph):整个程序的结构

会话:运算程序的图

Tensorflow是计算密集型的框架而Django,Flask,Scrapy是IO密集型框架。

图:

调用:

1、tf.get_default_graph()

2、op、sess、tensor的graph属性。

图的作用相当于给程序分配一个内存。

实例:

import tensorflow as tf
a = tf.constant("Hello, TensorFlow!")
b = tf.constant("Hello, Python")
# 查看默认的图
graph = tf.get_default_graph()
print("graph:",graph)
with tf.Session() as sess:
print(a.graph)
print(b.graph)
print(sess.graph)
'''
输出:
<tensorflow.python.framework.ops.Graph object at 0x00000273EFC99908>
<tensorflow.python.framework.ops.Graph object at 0x00000273EFC99908>
<tensorflow.python.framework.ops.Graph object at 0x00000273EFC99908>
'''

上面是默认的图,同时自己也可以创建:

也就是再创建一个图存放我们的程序,让两段程序不干扰。

# 创建一个图

import tensorflow as tf
g = tf.Graph()
print(g)
# 使用该图
with g.as_default():
    s = tf.constant(1.0)
    print(s.graph)
'''
会输出:
<tensorflow.python.framework.ops.Graph object at 0x000001A758ED5518>
<tensorflow.python.framework.ops.Graph object at 0x000001A758ED5518>
'''

又分配了一个新的内存运行该部分程序。互不干扰。

op:

op和tensor组成一张图。

op:只要使用了tensorflow里定义的函数定义的都是op

tensor(张量):代指数据

op中装tensor。

那些是op:

简单来说就是一些运算,例如标量运算,向量运算,矩阵运算等等。

会话:

会话的作用:

1、运行图的结构

2、分配资源计算

3、掌握资源

开启一个会话:tf.Session()

tf.Session()运行的是默认的图。

参数graph:可以指定运行的图。

tf.Session(graph=g)运行g图。

sess = tf.Session()

sess.run()相当于启动整个图。

sess.close()在计算结束需要释放内存。用with就可以不用写了。

会话中的run方法:

常用参数:

fetches:运行op或者计算tensor,可以列表,元组

feed_dict:用于实时提供数据,相当于一个占位符,运行的时候可以指定参数。

张量(tensor):和numpy中的数组是一样的东西。是Tensorflow中基本的数据格式。

打印出一个tensor会有三部分:名字,形状,数据类型。

名字是op类型。形状也就是shape。

张量的阶:

在numpy中叫做维度,在Tensorflow中叫做阶。

张量的数据类型:

张量的常用属性:

graph:张量所在的图

op:张量的操作名

name:张量的字符串描述

shape:张量的形状

# 0维:() 1维:(x) 2维:(x,y) 3维:(x,y,z)

改变张量的形状:

在Tensorflow中,张量具有动态形状与静态形状

主要区别:有没有生成一个新的张量

静态形状:

tf.Tensor.get_shape:获取静态形状

tf.Tensor.set_shape:改变Tensor的形状

一旦形状确定不能再被修改:

实例:

# 创建一个张量,可以多行4列的数据

plt = tf.placeholder(tf.float32,[None,4])

print(plt)

# 改变形状

plt.set_shape([3,4])

print(plt)

# 再次改变会报错

plt.set_shape([2,6])

print(plt)

'''

Tensor("Placeholder:0", shape=(?, 4), dtype=float32)

Tensor("Placeholder:0", shape=(3, 4), dtype=float32)

报错

'''

动态形状:

tf.reshape():创建一个新张量。

可以创建一个新的张量可以修改:

实例:

tf_reshape = tf.reshape(plt,[2,6])

print(tf_reshape )

'''

Tensor("Reshape:0", shape=(2, 6), dtype=float32)

'''

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python入门到放弃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档