您的位置:首页 > 编程语言 > Python开发

机器学习之python基础(python3.7)

2017-12-19 22:40 337 查看
1、概率论与凸优化:

 (1)贝叶斯公式:P(A/B)=(P(B/A)P(A))/P(B)

2、回归模型与应用:

 (1)线性回归

 (2)逻辑回归

3、关于机器学习:

 (1)有监督学习:会给定一个标准答案y

 (2)无监督学习:不会给定一个标准答案y

4、降维也属于无监督学习

5、分类的问题:有监督的学习,因为要确定它属于你规定的哪一类

6、线性回归(有监督的学习):

 (1)f(x)=(w^T)*x

 (2)平方损失:每一个点(y的值)减去预测值的点的平方加和,然后整体除以m个点,再除以2

 (3)线性回归中平方损失是一个凸函数,即有一个最低点

 (4)梯度下降算法:平方损失中逐步最小化损失函数

 (5)学习率与梯度下降:如果步长太大的话,会震动。如果步长很小的话,速度会很慢,所以步长的选择很重要,即学习率

 (6)欠拟合与过拟合:

  (1)欠拟合(没有拟合到现在的样本点):模型本身的能力不足以去学习现在的样本点

  (2)过拟合:对模型拟合太多了,模型很复杂,会丧失一般性.把所有的点都算进去,但是拿出新的点的话,就很难进行对其进行处理

 (7)正则化:

  (1)控制参数的幅度

  (2)限制参数搜索空间

 (8)线性回归判断是否是正样本:结果与0比

7、损失:

 (1)平方损失

 (2)log损失

8、优化方向:修改损失函数

9、逻辑回归(输出p):

 (1)逻辑回归的东西是一个概率(使用以下函数求概率)

 (2)Sigmoid函数:g(x)=1/(1+e^(-x))

 (3)回归出来的值是(0,1)之间的,类似于p

 (4)log损失

 (5)逻辑回归判断是否是正样本:结果与0.5比

10、机器学习步骤:通过选择损失算法,找到一个凸函数,然后利用梯度下降算法(找到最好的学习率),梯度算法是对函数进行求导

11、numpy是python当中用来表示矩阵或者高维数组的一个库

12、python基础:

 (1)安装pip、numpy、pandas、scipy、matplotlib(https://www.lfd.uci.edu/~gohlke/pythonlibs/)

 (2)将python2代码转化为python3:python 2to3.py -w xxx.py

 (3)2to3.py:

  #!/usr/bin/env python

  import ...

  sys.exit(main("lib2to3.fixes"))

python基础代码:

#!/usr/bin/python

# -*- coding:utf-8 -*-

import numpy as np;

from array import array

L=[1,2,3,4,5,6]

print (L)

a=np.array(L)

print (a)

print (type(L),type(a))

b=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

print (b)

print (a.shape)

print (b.shape)

b.shape=4,3

print (b)

b[0][0]=300

print(b)
print("------------------")
a=np.arange(1,20,dtype=float)

print(a)

b=range(1,4,1)

print(b)
print("************************")

b=np.linspace(1,10,200)

print(b)
print("+++++++++++++++++++++++++")

c=np.logspace(1,4,4,endpoint=True,base=2)

print(c)
s='abcd'

g= np.fromstring(s,dtype=np.int8)

print(g)
print("222222222222222222222222222")

f=[1,2,3,4,5,6]

print(f[3:5])

print(f[:5])

print(f[3:])

print("333333333333333333333333")
##步长2

print(f[1:5:2])
##反转

print(f[::-1])
##修改值

f[3:5]=10,100

print(f)
print("444444444444444444444444")
a=np.arange(0,60,10)

print(a)

b=a.reshape((-1,1))

print (b)

c=np.arange(6)

print(c)

f=b+c

print(f)

print("55555555555555555555555555")
print(f[[0,1,2],[2,3,4]])

print(f[4,[2,3,4]])

print(f[4:,[2,3,4]])

print(f[4:,3:])

##一元去重

#np.array(list(set([tuple(t) for t in c])))

##stack以及axis使用

a = np.arange(1, 7).reshape((2, 3))

b = np.arange(11, 17).reshape((2, 3))

c = np.arange(21, 27).reshape((2, 3))

d = np.arange(31, 37).reshape((2, 3))

print ('a = \n', a)

print ('b = \n', b)

print ('c = \n', c)

print ('d = \n', d)

s = np.stack((a, b, c, d), axis=0)

print ('axis = 0 ', s.shape, '\n', s)

s = np.stack((a, b, c, d), axis=1)

print ('axis = 1 ', s.shape, '\n', s)

s = np.stack((a, b, c, d), axis=2)

print ('axis = 2 ', s.shape, '\n', s)

print("6666666666666666666666666666")
##乘法

a = np.arange(1, 10).reshape(3,3)

print (a)

b = a + 10

print (b)

print (np.dot(a, b))

print (a * b)
##连接

a = np.arange(1, 10)

print (a)

b = np.arange(20,25)

print (b)

print (np.concatenate((a, b)))

     

结果:

[1, 2, 3, 4, 5, 6]

[1 2 3 4 5 6]

<class 'list'> <class 'numpy.ndarray'>

[[ 1  2  3  4]

 [ 5  6  7  8]

 [ 9 10 11 12]]

(6,)

(3, 4)

[[ 1  2  3]

 [ 4  5  6]

 [ 7  8  9]

 [10 11 12]]

[[300   2   3]

 [  4   5   6]

 [  7   8   9]

 [ 10  11  12]]

------------------

[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

 19.]

range(1, 4)

************************

[ 1.          1.04522613  1.09045226  1.13567839  1.18090452  1.22613065

  1.27135678  1.31658291  1.36180905  1.40703518  1.45226131  1.49748744

  1.54271357  1.5879397   1.63316583  1.67839196  1.72361809  1.76884422

  1.81407035  1.85929648  1.90452261  1.94974874  1.99497487  2.04020101

  2.08542714  2.13065327  2.1758794   2.22110553  2.26633166  2.31155779

  2.35678392  2.40201005  2.44723618  2.49246231  2.53768844  2.58291457

  2.6281407   2.67336683  2.71859296  2.7638191   2.80904523  2.85427136

  2.89949749  2.94472362  2.98994975  3.03517588  3.08040201  3.12562814

  3.17085427  3.2160804   3.26130653  3.30653266  3.35175879  3.39698492

  3.44221106  3.48743719  3.53266332  3.57788945  3.62311558  3.66834171

  3.71356784  3.75879397  3.8040201   3.84924623  3.89447236  3.93969849

  3.98492462  4.03015075  4.07537688  4.12060302  4.16582915  4.21105528

  4.25628141  4.30150754  4.34673367  4.3919598   4.43718593  4.48241206

  4.52763819  4.57286432  4.61809045  4.66331658  4.70854271  4.75376884

  4.79899497  4.84422111  4.88944724  4.93467337  4.9798995   5.02512563

  5.07035176  5.11557789  5.16080402  5.20603015  5.25125628  5.29648241

  5.34170854  5.38693467  5.4321608   5.47738693  5.52261307  5.5678392

  5.61306533  5.65829146  5.70351759  5.74874372  5.79396985  5.83919598

  5.88442211  5.92964824  5.97487437  6.0201005   6.06532663  6.11055276

  6.15577889  6.20100503  6.24623116  6.29145729  6.33668342  6.38190955

  6.42713568  6.47236181  6.51758794  6.56281407  6.6080402   6.65326633

  6.69849246  6.74371859  6.78894472  6.83417085  6.87939698  6.92462312

  6.96984925  7.01507538  7.06030151  7.10552764  7.15075377  7.1959799

  7.24120603  7.28643216  7.33165829  7.37688442  7.42211055  7.46733668

  7.51256281  7.55778894  7.60301508  7.64824121  7.69346734  7.73869347

  7.7839196   7.82914573  7.87437186  7.91959799  7.96482412  8.01005025

  8.05527638  8.10050251  8.14572864  8.19095477  8.2361809   8.28140704

  8.32663317  8.3718593   8.41708543  8.46231156  8.50753769  8.55276382

  8.59798995  8.64321608  8.68844221  8.73366834  8.77889447  8.8241206

  8.86934673  8.91457286  8.95979899  9.00502513  9.05025126  9.09547739

  9.14070352  9.18592965  9.23115578  9.27638191  9.32160804  9.36683417

  9.4120603   9.45728643  9.50251256  9.54773869  9.59296482  9.63819095

  9.68341709  9.72864322  9.77386935  9.81909548  9.86432161  9.90954774

  9.95477387 10.        ]

+++++++++++++++++++++++++

[ 2.  4.  8. 16.]

[ 97  98  99 100]

222222222222222222222222222

[4, 5]

[1, 2, 3, 4, 5]

[4, 5, 6]

333333333333333333333333

[2, 4]

[6, 5, 4, 3, 2, 1]

[1, 2, 3, 10, 100, 6]

444444444444444444444444

[ 0 10 20 30 40 50]

[[ 0]

 [10]

 [20]

 [30]

 [40]

 [50]]

[0 1 2 3 4 5]

[[ 0  1  2  3  4  5]

 [10 11 12 13 14 15]

 [20 21 22 23 24 25]

 [30 31 32 33 34 35]

 [40 41 42 43 44 45]

 [50 51 52 53 54 55]]

55555555555555555555555555

[ 2 13 24]

[42 43 44]

[[42 43 44]

 [52 53 54]]

[[43 44 45]

 [53 54 55]]

a =

 [[1 2 3]

 [4 5 6]]

b =

 [[11 12 13]

 [14 15 16]]

c =

 [[21 22 23]

 [24 25 26]]

d =

 [[31 32 33]

 [34 35 36]]

axis = 0  (4, 2, 3)

 [[[ 1  2  3]

  [ 4  5  6]]
 [[11 12 13]

  [14 15 16]]
 [[21 22 23]

  [24 25 26]]
 [[31 32 33]

  [34 35 36]]]

axis = 1  (2, 4, 3)

 [[[ 1  2  3]

  [11 12 13]

  [21 22 23]

  [31 32 33]]
 [[ 4  5  6]

  [14 15 16]

  [24 25 26]

  [34 35 36]]]

axis = 2  (2, 3, 4)

 [[[ 1 11 21 31]

  [ 2 12 22 32]

  [ 3 13 23 33]]
 [[ 4 14 24 34]

  [ 5 15 25 35]

  [ 6 16 26 36]]]

6666666666666666666666666666

[[1 2 3]

 [4 5 6]

 [7 8 9]]

[[11 12 13]

 [14 15 16]

 [17 18 19]]

[[ 90  96 102]

 [216 231 246]

 [342 366 390]]

[[ 11  24  39]

 [ 56  75  96]
 [119 144 171]]

[1 2 3 4 5 6 7 8 9]

[20 21 22 23 24]

[ 1  2  3  4  5  6  7  8  9 20 21 22 23 24]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐