目录
一、模型评估与选择
在本周的学习中,主要阅读了《机器学习》的一、二章,了解了机器学习的相关概念。在机器学习中,我们需要通过某种方法:留出法、交叉验证法或自助法,将数据分为训练集和测试集;在训练集上的误差为经验误差,在测试集上的误差为泛化误差,出现“过拟合”时,模型可能在训练集上表现良好,但在测试集中表现较差;通过验证集,我们可以在训练集上不断调参,选择合适的模型,再在测试集上进行测试。
有时错误率和精确度不能完全体现泛化能力,我们需要查准率P和查全率R来进行衡量,因为P和R时一对矛盾的度量,我们可以通过平衡点、F1度量、Fβ度量衡量P-R曲线的好坏。在混淆矩阵中,TPR和FPR又组成了ROC曲线,TPR指真正例率,FPR指假正例率,则TPR越大越好,FPR越小越好,ROC下的面积AUC可以用来衡量曲线的好坏。
二、NumPy和Pandas
1、NumPy
numpy是使用Python进行科学计算的基础软件包,它封装了ndarray对象,方便通过矩阵进行运算。在本周的学习中,主要对numpy的基础结构、矩阵运算、常用函数等相关内容进行了了解。
2、Pandas
Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。在Pandas中,主要有DataFrame和Series两种数据结构,分别存储二维数据和一维数据。其中,index表示行,columns表示列。
三、使用Pandas练习数据预处理
# 读取文件
import pandas as pd
import numpy as np
df=pd.read_csv('titanic.csv')
df.head()
# 显示后5行
df.tail()
# 读取某一行
print(df.loc[0])
# 使用[i:j]切片查找行,包含j行
print(df.loc[3:6])
# 读取某一具体的值
df['Age'][3]
# 读取某一列,显示前5行,默认加上索引
age=df['Age']
print(age[:5])
# 读取多列
df[['Age','Sex']]
# 处理缺失值,True表示为缺失值,可以将True/False作为索引
age_is_null=pd.isnull(df['Age'])
print(age_is_null)
age_null=df['Age'][age_is_null]
print(age_null)
# 不处理缺失值,造成错误
mean_age=sum(age)/len(age)
print(mean_age)
# 去掉缺失值
age_not_null=age[age_is_null==False]
right_mean_age=sum(age_not_null)/len(age_not_null)
print(right_mean_age)
print(age.mean())
# 查找最大值
max_age=age.max()
min_age=age.min()
print(max_age)
print(min_age)
# 归一化处理
normalized_age=(df['Age']-min_age)/(max_age-min_age)
df['Normalized_Age']=normalized_age
print(df['Normalized_Age'])
# pivot_table(),查看船舱等级和获救人数的关系,values传递多参数时使用[],aggfunc默认为np.mean
survival=df.pivot_table(index='Pclass',values='Survived')
print(survival)
# apply(),使用自定义函数
# 查找第100个值
def hundred_row(column):
return column.loc[99]
hundredth_row=df.apply(hundred_row)
print(hundredth_row)

被折叠的 条评论
为什么被折叠?



