机器学习篇(七)

无论是风里,还是在雨里,我都在这里守候着你~

非监督学习

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

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

这种分析方法叫做聚类。

聚类的过程:

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

这里以划分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)

'''

长按识别二维码

了解,学习python

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页