python的字典,key不可以是列表
dict3 = {
[1, 1, 1]: “列表”}
这种形式是不被允许的
alist=[1,2,3,["a","b"]]
1.直接赋值,当原始列表发生改变,被赋值列别也发生改变
b=alist
print(b)
#[1, 2, 3, ['a', 'b']]
alist.append(5)
print(alist)
print(b)
#[1, 2, 3, ['a', 'b'], 5]
#[1, 2, 3, ['a', 'b'], 5]
2.copy浅拷贝
>>> import copy
>>> c=copy.copy(alist)
>>> print alist;print c
[1, 2, 3, ['a', 'b']]
[1, 2, 3, ['a', 'b']]
>>> alist.append(5)
>>> print alist;print c
[1, 2, 3, ['a', 'b'], 5]
[1, 2, 3, ['a', 'b']]
>>> alist[3]
['a', 'b']
>>> alist[3].append('cccc')
>>> print alist;print c
[1, 2, 3, ['a', 'b', 'cccc'], 5]
[1, 2, 3, ['a', 'b', 'cccc']]
3.深拷贝deepcopy,无论原始对象如何改变,拷贝对象都不会改变
>>> import copy
>>> d=copy.deepcopy(alist)
>>> print alist;print d
[1, 2, 3, ['a', 'b']]
[1, 2, 3, ['a', 'b']]
>>> alist.append(5)
>>> print alist;print d
[1, 2, 3, ['a', 'b'], 5]
[1, 2, 3, ['a', 'b']]
>>> alist[3]
['a', 'b']
>>> alist[3].append("ccccc")
>>> print alist;print d
[1, 2, 3, ['a', 'b', 'ccccc'], 5]
[1, 2, 3, ['a', 'b']]
L = [x*x for x in range(5)]
print(L)
#[0, 1, 4, 9, 16]
L = (x*x for x in range(5))
print(L)
# at 0x0000020E0A325CC8>
当使用中括号"[ ]“号时,产生的L是一个列表,当使用小括号”( )"时,L就变成了一个生成器
init__方法为初始化方法,为类的实例提供一些属性或完成一些动作
new 方法创建实例对象供__init 方法使用,__init__方法定制实例对象
继承不可变数据类型时需要用到__new__方法
[1-9][0-9]{4,}
[1-9]表示1-9任意一个数字
[0-9]表示0-9任意一个数字
{4,}表示这个正则表达式的长度不受限制
删除包含空值的记录
自动补全
手动补全缺失值
分箱
回归
计算机检查与人工检查结合
聚类
K-means
Mean-Shift
基于密度的带噪声的空间聚类的应用(DBSCAN)
基于高斯混合模型(GMM)的期望最大化(EM)聚类
凝聚层次聚类
线性回归
逻辑回归
SVM(支撑向量机)
NBayes(朴素贝叶斯)
K近邻
决策树
Apriori算法
两种方法都是为了解决过拟合问题
不同的是,岭回归(Ridge Regression)可以理解为在线性回归的损失函数的基础上,加,入一个L2正则项,来限制W不要过大。而Lasso可以理解为在线性回归基础上加入一个L1正则项,同样来限制W不要过大。Lasso由于使用L1正则项,所以具有一定的特征选择功能,因为L1正则倾向于产生稀疏稀疏,它可以将一些“对标签没有用处”的特征对应的系数压缩为0,进而将对结果有较大影响的特征突显出来,而岭回归中L2正则项不具备这个功能。
在逻辑回归中,同时加入L1和L2正则项不会使结果更加准确。
线性核函数
多项式核函数
径向基核函数
傅里叶核函数
样条核函数
Sigmoid核函数
集成学习中,各个模型之间有低相关性