机器学习之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]
(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]
相关文章推荐
- 机器学习之深入理解神经网络理论基础、BP算法及其Python实现
- Python 机器学习基础(二)——Numpy
- 从0到1 | 0基础/转行 如何用3个月学会Python机器学习
- 小白学习Machine Learning in Action-机器学习实战------Python基础
- 【备忘】冲击年薪50万之从数学基础python机器学习到深度学习算法学习路线视频教程
- 1.1机器学习基础-python深度机器学习
- python基础 - 机器学习笔记
- 【备忘】冲击年薪50万之从数学基础python机器学习到深度学习算法学习路线视频教程 共321G
- 从变量到封装:一文带你为机器学习打下坚实的Python基础 By 机器之心2017年10月13日 10:43 本文整体梳理了 Python 的基本语法与使用方法,并重点介绍了对机器学习十分重要的且常
- python机器学习基础语法入门
- 【备忘】2018年最新北风网零基础学习机器学习(Python语言、算法、Numpy库、MatplotLib)视频教程)
- 【Numpy】python机器学习包Numpy基础知识学习
- python机器学习及实战-Python基础综合实践
- python机器学习日志.02——Python编程的基础知识
- CS231n-机器学习中Python基础教程.md
- 1.2机器学习基础下--python深度机器学习
- 机器学习基础(二十)—— 数学语言与 Python 代码
- 机器学习(4):python基础及fft、svd、股票k线图、分形等实践
- 从变量到封装:一文带你为机器学习打下坚实的Python基础
- Python机器学习(一)--Numpy基础