数据探索性分析
-
散点图法检验异常值很实用
-
pd.croostab:交叉列表,还可根据此画图(plot)
Pandas 基础(13) - Crosstab 交叉列表取值 -
sns.countplot是seaborn库中分类图的一种,作用是使用条形显示每个分箱器中的观察计数。
Python数据可视化-seaborn库之countplot -
sns.heatmap() (热力图)
官方文档
Seaborn5分钟入门(六)——heatmap热力图
特征工程
-
异常值处理的一个解决方法:
为什么要这么写,因为如果像是f1[][]这样会报错!修改Dataframe一列的最大值及loc,iloc用法
Pandas切片操作:很容易忽视的SettingWithCopyWarning
-
.value_counts() 可以查看数据分布情况
-
处理对取值2种类型以上的非数值特征:
采用 one-hot code,可用pandas.get_dummies()
pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)
支持对指定列进行get_dummies
pandas.get_dummies
one-hot 编码介绍 -
pandas中的sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。
建模调参
-
训练集数据划分为训练数据和测试数据:
random.shuffle(a):用于将一个序列中的元素打乱 。
random.sample的用法,多用于截取列表的指定长度的随机数,但是不会改变列表本身的排序,注意这属于切片!
注意区分pandas.sample()
Python-Pandas 如何shuffle(打乱)数据?
Pandas简单划分
此外,
-
random.uniform(x, y):随机生成下一个实数,它在 [x, y] 范围内,注意返回的是一个浮点数。
-
常用K折交叉验证:
补充:交叉验证主要用于防止模型过于复杂而引起的过拟合,是一种评价训练数据的数据集泛化能力的统计方法。其基本思想是将原始数据进行划分,分成训练集和测试集(也称验证集),训练集用来对模型进行训练,测试(验证集)集用来测试训练得到的模型,以此来作为模型的评价指标。
k折交叉验证
基于pandas实现K折交叉验证数据集划分 -
列表可以相加(拼接),不能相减,但集合满足条件可以相减。
-
system函数可以将字符串转化成命令在服务器上运行
python基础之os.system函数 -
numpy的mat函数:矩阵操作
Python中Numpy mat的使用
1.mat()函数中数据可以为字符串以分号(;)分割,或者为列表形式以逗号(,)分割。而array()函数中数据只能为后者形式。2.mat()函数中矩阵的乘积可以使用(星号) * 或 .dot()函数,其结果相同。而矩阵对应位置元素相乘需调用numpy.multiply()函数。相比之下,array()函数中矩阵的乘积只能使用 .dot()函数。而星号乘 (*)则表示矩阵对应位置元素相乘,与numpy.multiply()函数结果相同。
-
numpy累积函数的例子:
>>> a=np.array([[1,2,3],[4,5,6]]) >>> np.sum(a,axis=0) array([5, 7, 9]) # 每行相加,对列求和 >>> np.sum(a,axis=1) array([ 6, 15]) # 每列相加,对行求和
-
关于numpy array的迭代修改:
>>> a = np.arange(8) >>> a array([0, 1, 2, 3, 4, 5, 6, 7]) >>> for i in a: i= 2 >>> a array([0, 1, 2, 3, 4, 5, 6, 7]) >>>
-
Dataframe.insert(loc, column, value, allow_duplicates=False): 在Dataframe的指定列中插入数据。
-
随机梯度下降法:节省计算量,相比BGD每次只使用一个样本。因为它的特点,未改进的话准确率一般不如BGD。
深度学习必备:随机梯度下降(SGD)优化算法及可视化
监督学习——随机梯度下降算法(sgd)和批梯度下降算法(bgd) -
一个判断优化算法优劣的可靠方法是看它是否收敛,也就是说参数是否达到了稳定值,是否还会不断地变化。
-
return 1.0/(1+exp(-inX)) TypeError: only size-1 arrays can be converted to Python scalars # 这里是因为inX是一个numpy的矩阵,要调用numpy.exp处理 # 对numpy矩阵,有的时候调用math.function()也能用,但有的时候用不了(会出现不匹配的问题)
-
其他想法
还是基础太薄弱,再加上第一此编写有关、数据分析处理和机器学习的代码,交了不少学费。
此外,注意下最基本的程序结构,尤其是重置值问题,比如循环时中出现的累计运算。