File "sklearn/svm/libsvm_sparse.pyx", line 5, in init sklearn.svm.libsvm_sparse (sklearn/svm/libsvm_sparse.c:7615)
ImportError: cannot import name ConvergenceWarning
报错处理
sudo pip uninstall scikit-learn
sudo pip install scikit-learn
from sklearn import svm
X = [[0, 0], [1, 1], [1, 0]]#取样 y = [0, 1, 1]#
clf = svm.SVC() clf.fit(X, y)#训练 result = clf.predict([[2, 2]]) print clf print result
clt = svm.SVR() clt.fit(X, y) result = clt.predict([[2, 2]]) print result
输出及注解
```python
"""
输出
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
[1]
[ 0.70393476]
//[1] (将训练数据分类为y=1)
SVC参数解释
(1)C: 目标函数的惩罚系数C,用来平衡分类间隔margin和错分样本的,default C = 1.0。C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。;
(2)cache_size: 核函数cache缓存大小,默认为200;
(3)class_weight: 类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C);
(4)coef0:核函数中的常数项,'RBF' and 'Poly'有效;
(5)decision_function_shape : ‘ovo’ 一对一, ‘ovr’ 多对多 or None 无, default=None
(6)degree:多项式poly函数的维度,默认是3,选择其他核函数时会被忽略;
(7)gamma:核函数的系数('Poly', 'RBF' and 'Sigmoid'), 默认是gamma = 1 / n_features;
(8)kernel:核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’
0 – 线性:u'v
1 – 多项式:(gamma*u'*v + coef0)^degree
2 – RBF函数:exp(-gamma|u-v|^2)
3 –sigmoid:tanh(gamma*u'*v + coef0)
(9)max_iter: 最大迭代次数,default = 1, if max_iter = -1, no limited,无限次;
(10)probablity: 可能性估计是否使用(true or false);
(11)random_state :用于概率估计的数据重排时的伪随机数生成器的种子。
(12)shrinking:是否进行启发式;
(13)tol(default = 1e - 3): svm结束标准的精度;
(14)verbose: 允许冗余输出;
SVM: Support Vector Machines(支持向量机),可以用来做分类和回归。
SVC是SVM的一种Type,是用来的做分类的,SVR是SVM的另一种Type,是用来的做回归的。
"""
from numpy import *
a = matrix([ [1, 2], [3, 4] ])
print a
# 科学计算
import numpy as np print np.version.version # 获取当前numpy版本
a = np.array([1, 2, 3, 4]) b = np.array([1.0, 2, 3, 4]) print a, b
x = np.array( ((1, 2, 3), (4, 5, 6)) ) print x
y = np.array( [[1, 2, 3], [4, 5, 6]] ) print y
```python
# 数据类型设定与转换
# numpy ndarray数据类型可以通过参数dtype 设定,而且可以使用astype转换类型,在处理文件时候这个会很实用,注意astype 调用会返回一个新的数组,也就是原始数据的一份拷贝。
num_str = np.array(['1.2', '2', '4.5'], dtype=np.string_) # 从字符串拷贝
num_str = num_str.astype(float) # 设置新的类型 float64, int (需要array对应为整型)
print num_str
# 索引(index)、切片(slicing)
x = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
print x
print x[1, 2]
y = x[:, 1]
print y
y[0] = 10
print y
print x # 以上操作改变了x[0, 1]的值,所以由此获取的数组值改变,则原数组随之改变,为同一内存空间
# 获取不影响原数组的副本
arr_copy = x[1:3].copy()
arr_copy[0] = 24 # 第0行为24
arr_copy[:, 1] = 36 # 第1列为36
print arr_copy
# 切片
sl = range(10)
print sl
t1 = sl[4: 8]
t1[0] = 22
print t1
arr2d = np.arange(1, 10).reshape(3, 3) #将一维数组转换为二维数组
print arr2d
print arr2d[2]
print arr2d[0][1]
print arr2d==1 # 返回一个对应的二维数组,值为分别判断的结果
"""
[[ True False False]
[False False False]
[False False False]]
"""
data = np.array([[ 0.36762706, -1.55668952, 0.84316735, -0.116842],
[ 1.34023966, 1.12766186, 1.12507441, -0.68689309],
[ 1.27392366, -0.43399617, -0.80444728, 1.60731881],
[ 0.23361565, 1.38772715, 0.69129479, -1.19228023],
[ 0.51353082, 0.17696698, -0.06753478, 0.80448168],
[ 0.21773096, 0.60582802, -0.46446071, 0.83131122],
[ 0.50569072, 0.04431685, -0.69358155, -0.9629124 ]])
data[data < 0] = 0 # 将小于0的值全部替换为0
print data
"""
[[ 0.36762706 0. 0.84316735 0. ]
[ 1.34023966 1.12766186 1.12507441 0. ]
[ 1.27392366 0. 0. 1.60731881]
[ 0.23361565 1.38772715 0.69129479 0. ]
[ 0.51353082 0.17696698 0. 0.80448168]
[ 0.21773096 0.60582802 0. 0.83131122]
[ 0.50569072 0.04431685 0. 0. ]]
"""
# 数组文件输入、输出
# 数组以二进制格式保存到磁盘,np.save、np.load读写函数,默认情况下,数组以未压缩的原始二进制格式存储在.npy文件中
arr = np.arange(10)
np.save('some_array', arr) #存储
tt = np.load('some_array.npy') # 读取
print tt
arr = np.arange(1, 10).reshape(3, 3)
# np.savetxt('data1.txt', arr)
np.savetxt('data1.txt', arr, fmt='%d', delimiter=',')
# ac = np.loadtxt('data1.txt')
ac = np.loadtxt('data1.txt', dtype=int, delimiter=',')# 读取要与写入参数一致
print 'ac', ac
"""
1. 1.47368421 1.94736842 2.42105263 2.89473684
3.36842105 3.84210526 4.31578947 4.78947368 5.26315789
5.73684211 6.21052632 6.68421053 7.15789474 7.63157895
8.10526316 8.57894737 9.05263158 9.52631579 10.
"""
ad = np.loadtxt('data.txt', dtype=float, delimiter=' ')
print ad
# 构造矩阵
ma1 = np.arange(15).reshape(3, 5) # 先获取一个0到15的数组,之后变形为3行5列的二维数组
"""
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
"""
ma2 = np.linspace(1, 10, 20) # 从1 到 10, 随机出20个数
"""
[ 1. 1.47368421 1.94736842 2.42105263 2.89473684
3.36842105 3.84210526 4.31578947 4.78947368 5.26315789
5.73684211 6.21052632 6.68421053 7.15789474 7.63157895
8.10526316 8.57894737 9.05263158 9.52631579 10. ]
"""
ma3 = np.zeros((3, 4)) # 获得一个 3行 4列的 二维数组,元素均为0.
"""
[[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]]
"""
ma4 = np.ones((3, 4)) # 获得一个 3行 4列的 二维数组,元素均为1.
"""
[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]
"""
ma5 = np.eye(3) # 获得一个3行3列的矩阵,n行n列的元素均为1.,其他均为0.
"""
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]
"""
print ma5
# 数组属性
print 'ndim 维数', ma4.ndim # 维数
print 'shape 数组每一维的大小', ma4.shape # 数组每一维的大小
print 'size 元素个数', ma4.size # 元素个数
print 'dtype 元素类型', ma4.dtype # 元素类型
print 'itemsize 每个元素所占的字节数', ma4.itemsize # 每个元素所占的字节数
print ma4.flags # 数组信息
print ma4.data # Python buffer object pointing to the start of the array’s data.
print ma4.strides # Tuple of bytes to step in each dimension when traversing an array.
print ma4.base # Total bytes consumed by the elements of the array.
print ma4.nbytes # Base object if memory is from some other object.
"""
ndim 维数 2
shape 数组每一维的大小 (3, 4)
size 元素个数 12
dtype 元素类型 float64
itemsize 每个元素所占的字节数 8
C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
? ? ? ? ? ? ? ? ? ? ? ?
(32, 8)
None
96
"""
# 合并数组 (相当于连接)
# vstack(垂直方向),hstack(水平方向)
aa = np.ones((2, 2))
bb = np.eye(2)
print 'aa =\n', aa
print 'bb = \n', bb
print 'v =\n', np.vstack((aa, bb))
print 'h =\n', np.hstack((aa, bb))
"""
aa =
[[ 1. 1.]
[ 1. 1.]]
bb =
[[ 1. 0.]
[ 0. 1.]]
v =
[[ 1. 1.]
[ 1. 1.]
[ 1. 0.]
[ 0. 1.]]
h =
[[ 1. 1. 1. 0.]
[ 1. 1. 0. 1.]]
"""
# 矩阵运算 转置
t = np.array([[1, 0], [2, 3]])
print 't =\n', t
print '转置\n', t.transpose()
"""
t =
[[1 0]
[2 3]]
转置
[[1 2]
[0 3]]
"""
# 特征值特征向量
from numpy import linalg as nplg
print '求此矩阵的特征值与特征向量\n', t
w, v = nplg.eig(t)
print w # 特征值
print v #特征向量
"""
求此矩阵的特征值与特征向量
[[1 0]
[2 3]]
[ 3. 1.]
[[ 0. 0.70710678]
[ 1. -0.70710678]]
"""
# 数组
中文分词
# 中文分词
import jieba
seg_list = jieba.cut("北京野生动物园轿车遭黑熊围堵")
print "Default Mode:", ' '.join(seg_list)
简单绘图
import matplotlib.pyplot as plt
labels = 'frogs', 'hogs', 'dogs', 'logs' sizes = 15, 20, 45, 10 colors = 'yellowgreen', 'gold', 'lightskyblue', 'lightcoral' explode = 0, 0.1, 0, 0 plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=50) plt.axis('equal') plt.show()
> 如果无法运行,使用pip重新安装matplotlib,如果出现无权限的情况,在mac系统下,重启进入恢复模式下,右上角终端,输入csrutil disable,关闭SIP保护。重新启用,则使用csrutil enable即可。
```python
# 绘制坐标图
# 终端输入 python -m IPython notebook
# 进入notebook,此时绘制的图像,会在浏览器中直接显示
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt # 命令行风格函数的集合,可以类似Matlab
# from pylab import *
x = np.arange(-5.0, 5.0, 0.02) # 从-5.0到5.0之间每隔0.02取值
y1 = np.sin(x) # 获取每个值的sin值
plt.figure(1)
plt.subplot(211) # 把视图划分为2行1列,在第1个区域画图
plt.plot(x, y1) # 绘制
plt.subplot(212) # 在第二个区域绘制对象 2 行 2 列 绘制区域 2
xlim(-2.5, 2.5) # 设置x轴范围
ylim(-1, 1) # 设置y轴范围
plt.plot(x, y1)
# 当然也可以使用pycharm,会弹出一个窗口
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-5.0, 5.0, 0.4) # 从-5.0到5.0之间每隔0.02取值
y1 = np.sin(x) # 获取每个值的sin值
plt.figure(1) # 设置有几张图, 默认为一张,
plt.subplot(211) # 把视图划分为2行1列,在第1个区域画图
plt.plot(x, y1) # 绘制
plt.subplot(212, axisbg='y') # 在第二个区域绘制对象 2 行 2 列 绘制区域 2,可以设置背景色
plt.axis([-2.5, 2.5, -1, 1]) #x, y设置范围
plt.plot(x, y1, 'r') # 可以设置线的颜色,后面带 -- : 虚线, ^ :三角形,s :正方形
plt.figure(2) # 类似添加图片ID,下一张图开始
plt.plot([4, 5, 6])
plt.show()
# 绘制直方图
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000) # 从非标准正态分布中获取随机样本
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75) # 数据直方图
plt.xlabel('Smarts') # x 轴标题
plt.ylabel('Probability') # y 轴标题
plt.title('Histogram of IQ') # 顶部大标题
plt.text(60, 0.025, r'$\mu=100,\ \sigma=15$') # 显示在图中的间接,前两个为(x,y)位置
plt.axis([40, 160, 0, 0.03]) # x, y轴区域
plt.grid(True) # 背景分割虚线
plt.annotate('local max', xy=(100, 0.028), xytext=(140, 0.015), arrowprops=dict(facecolor='black', shrink=0.05)) # 文本注释, xy为被注释的位置, xytext为文本的位置
plt.show()
# 设置刻度、图例
plt.figure(figsize=(8, 6), dpi=80) # 创建一个8*6point的图像,分辨率为80
plt.subplot(1, 1, 1) # 1行1列1块
X = np.linspace(-np.pi, np.pi, 256, endpoint=True) # 类似arange,开始,结束,元素个数,是否包含终值
C, S = np.cos(X), np.sin(X)
plt.plot(X, C, color="blue", linewidth=2.5, linestyle="-", label="cosine") # 绘制,且带图例
plt.plot(X, S, color="red", linewidth=2.5, linestyle="-", label="sine")
plt.legend(loc='upper left') # 设置图例位置 上 左
plt.axis([-4, 4, -1.2, 1.2]) # 设置x,y轴范围
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$']) # 设置x轴刻度
plt.yticks([-1, 0, +1]) # 设置y轴刻度
plt.show()
# 特殊点注释 ,在上图的基础上
t = 2 * np.pi / 3
plt.plot([t, t], [0, np.cos(t)], color='blue', linewidth=2.5, linestyle='--')
plt.scatter([t, ], [np.cos(t), ], 50, color='blue')
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$', xy=(t, np.sin(t)), xycoords='data',xytext=(+10, +30), textcoords='offset points', fontsize=16, arrowprops=dict(arrowstyle='->', connectionstyle="arc3, rad=.2"))
plt.plot([t, t], [0, np.sin(t)], color='red', linewidth=2.5, linestyle='--')
plt.scatter([t, ], [np.sin(t), ], 50, color='red')
plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$', xy=(t, np.cos(t)), xycoords='data', xytext=(-90, -50), textcoords='offset points', fontsize=16, arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=.2'))
plt.show()
# 打印colors中name及对应的色值
for name,hex in mpl.colors.cnames.iteritems():
print name,hex
axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示 backend: 设置目标暑促TkAgg和GTKAgg figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置 font: 字体集(font family)、字体大小和样式设置 grid: 设置网格颜色和线性 legend: 设置图例和其中的文本的显示 line: 设置线条(颜色、线型、宽度等)和标记 patch: 是填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。 savefig: 可以对保存的图形进行单独设置。例如,设置渲染的文件的背景为白色。 verbose: 设置matplotlib在执行期间信息输出,如silent、helpful、debug和debug-annoying。 xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。
线条风格linestyle或ls 描述 线条风格linestyle或ls 描述 '-' 实线 ':' 虚线 '--' 破折线 'None',' ','' 什么都不画 '-.' 点划线
线条标记 标记maker 描述 标记 描述 'o' 圆圈 '.' 点 'D' 菱形 's' 正方形 'h' 六边形1 '*' 星号 'H' 六边形2 'd' 小菱形 '_' 水平线 'v' 一角朝下的三角形 '8' 八边形 '<' 一角朝左的三角形 'p' 五边形 '>' 一角朝右的三角形 ',' 像素 '^' 一角朝上的三角形 '+' 加号 '\ ' 竖线 'None','',' ' 无 'x' X
Theano Theano是我们关注的第一个 Python 深度学习库
Caffe Caffe 是一个深度学习框架 用 Caffe 实现 Google 的 #DeepDream
Nightmare
2022-08-01 07:43:11