机器学习之数据处理过程小知识
- 画图
fig,ax = plt.subplots()的理解
这个fig,ax = plt.subplots()的意思是,建立一个fig对象,建立一个axis对象。
不然要用更复杂的方式来建如下:
fig=plt.figure()
ax=fig.add_subplot(111)
pandas.DataFrame()中的iloc和loc用法
- iloc(index locate ):用index(索引)进行定位,所以参数是整型
如:df.iloc[10:20, 3:5],左边是行,右边是列- loc,则可以使用column名 和index名 进行定位
如:df.loc[‘image1’:‘image10’, ‘age’:‘score’]
- 两者区别是:一个用索引调用,一个用索引名调用
在iloc使用索引定位的时候,因为是索引,所以会按照索引的规则取值
- 如:[1:5] 会取出 1,2,3,4 这4个值。
但是loc按照label标签取值则不是这样的
- 如:[‘A’:‘C’] A,B,C 都会取出来。
*Sklearn-train_test_split随机划分训练集和测试集
https://blog.csdn.net/CherDW/article/details/54881167
*sklearn.model_selection.train_test_split随机划分训练集和测试集
官网文档:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html#sklearn.model_selection.train_test_split
一般形式:
train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取train data和testdata,形式为:
X_train, X_test, y_train, y_test = cross_validation.train_test_split(train_data, train_target, test_size=0.4, random_state=0 )
参数解释:
*train_data:所要划分的样本特征集
*train_target:所要划分的样本结果
*test_size:样本占比,如果是整数的话就是样本的数量
*random_state:是随机数的种子。
随机数种子:
其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。
*subplot和subplots绘制子图
https://blog.csdn.net/sinat_35930259/article/details/80002213
*python dataframe describe 参数 什么意思
describe()查看数据的分布情况
可返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数等相关信息
*列表推导式
[x*x for x in range(1,8)] # 这里不仅可以用for,也可以用if,while等循环或者判断语句
Out[115]: [1, 4, 9, 16, 25, 36, 49]
*Numpy数据类型转换astype,dtype
https://blog.csdn.net/A632189007/article/details/77989287
*pycharm中使用正则表达式批量添加print括号
https://blog.csdn.net/m511655654/article/details/83142206
*打开这个csv可以发现数据已经整理好,没有非法数据,因此不需要做预处理。但是这些数据并没有归一化,也就是转化为均值0,方差1的格式。也不用我们搞,后面scikit-learn在线性回归时会先帮我们把归一化搞定。
https://www.cnblogs.com/pinard/p/6016029.html
*识别缺失数据的数目、分布和模式有两个目的:
分析生成缺失数据的潜在机制,评价缺失数据对回答实质性问题的影响。
我们需要弄清楚以下几个问题:
*缺失数据的比例多大?
*缺失数据是否集中在少数几个变量上,或者广泛存在?
*缺失是随机产生的吗?
*缺失数据间的相关性或与可观测数据间的相关性,是否可以表明产生缺失值的机制?
*pandas中apply函数的用法
https://blog.csdn.net/TH_NUM/article/details/80435666
*Sklearn-train_test_split随机划分训练集和测试集
https://blog.csdn.net/cherdw/article/details/54881167
*Pandas—排序sort_values
https://blog.csdn.net/wendaomudong_l2d4/article/details/80648633
*统计数据:pd.describe()
https://www.cnblogs.com/vvlj/p/10639050.html
*为什么要对数据进行标准化处理
数据标准化主要功能就是消除变量间的量纲关系,从而使数据具有可比性
举个简单的例子:
一个百分制的变量与一个5分值的变量在一起怎么比较?只有通过数据标准化,都把它们标准到同一个标准时才具有可比性
一般标准化采用的是Z标准化
即均值为0,方差为1,当然也有其他标准化,比如0–1标准化等等,可根据自己的研究目的进行选择。
*数据标准化的几种方法是什么?
方法一:规范化方法
也叫离差标准化,是对原始数据的线性变换,使结果映射到[0,1]区间。
方法二:正规化方法
这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。
z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
spss默认的标准化方法就是z-score标准化。
用Excel进行z-score标准化的方法:在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。
步骤如下:
1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;
2.进行标准化处理:
zij=(xij-xi)/si
其中:zij为标准化后的变量值;xij为实际变量值。
3.将逆指标前的正负号对调。
标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。
*某些列满足特定条件,然后改变另外的某些列的值(Python)
https://blog.csdn.net/a19990412/article/details/79609422
*Python数据可视化-seaborn使用
https://blog.csdn.net/sinat_23338865/article/details/80405567
*Pandas中Json数据处理
https://www.yuque.com/u86460/osqfxm/mbtq5w#5dc99f6e
*Seaborn 使用教程
https://blog.csdn.net/mengenqing/article/details/80658163
*房价预测(kaggle调试笔记)
https://blog.csdn.net/m0_37870649/article/details/80979783
语法
listdir()方法语法格式如下:
os.listdir(path)
参数
path – 需要列出的目录路径
返回值
返回指定路径下的文件和文件夹列表。
*np.vstack, np.hstack的使用
https://blog.csdn.net/u012609509/article/details/70319293
*机器学习之离散值处理
https://blog.csdn.net/qq_30374549/article/details/81805613
*归一化与标准化
https://blog.csdn.net/u012101561/article/details/72506273/
*在pandas里面常用value_counts确认数据出现的频率。
如果想升序排列,设置参数 ascending = True:
如果想得出计数占比,可以加参数 normalize=True:
*利用pandas实现连续数据的离散化处理(分箱操作)
https://blog.csdn.net/qq_41080850/article/details/88806989
*正则表达式[\s\S]**?怎么解释?
可以匹配文档中任何一个位置。
\s 空白符
\S 非空白符
[\s\S]任意字符
[\s\S]* 0个到任意多个字符
[\s\S]*? 0个字符,匹配任何字符前的位置。
正则表达式中 \s代表一个空白字符(可能是空格、制表符、其他空白)。
\\s代表查找两个字符\和s,因为\在正则中有特殊意义,所有需要转义,写成了\\。