python用于数据科学教程

此博文是对原文的一个理解和知识点整理(个人理解可能有误),只是方便以后快速查阅。不是对原文的完全翻译,原文详细链接点击打开链接

一:python数据分析基础

二:python库和数据结构

三:pandas用于数据探索

(1)导入库

(2)读入数据:pd.read_csv()

(3)查看:

df.head() 大致查看数据前几行,了解内容

df.describe() 计数,平均值,中位数,偏差等  可以基本看出缺失值和平均值和中位数了解数据偏差

(4)对于非数值型查看频率分布  Series.value_counts()

(5)研究各种变量的分布:

Series.hist() 直方图

df.boxplot(column='') 盒图

df.boxplot(column='B',by='A')通过A取值分割 画B的盒图

df.pivot_table() 透视表

pd.crosstab(df['A'],df['B']).plot(kind='bar',stacked=True,color=[],grid=) 堆叠图表


四:pandas用于数据整理

(1)处理缺失值

df.apply(lambda x:sum(x.isnull()),axis = 0)了解各列的缺失值   

.fillna(df ['A'].mean(),inplace = True)均值替换

创建特征利用监督学习模型预测缺失值

df['A'].fillna(众数,inplace=True) 如果分布差别特别明显,则填补很多的那类更保险
若发现C的取值与AB取值组合有明显关系:统计AB取值众数,对应查看该用户的AB决定C
table = df.pivot_table(values='C', index='A' ,columns='B', aggfunc=np.median)
def fage(x):
 return table.loc[x['A'],x['B']]
df['C'].fillna(df[df['C'].isnull()].apply(fage, axis=1), inplace=True
table = df.pivot_table(values='LoanAmount', index='Self_Employed' ,columns='Education', aggfunc=np.median)
# Define function to return value of this pivot_table
def fage(x):
 return table.loc[x['Self_Employed'],x['Education']]
# Replace missing values
df['LoanAmount'].fillna(df[df['LoanAmount'].isnull()].apply(fage, axis=1), inplace=True)

(2)处理异常值:不切实际的值

对于明显偏离的值但是实际中有可能存在的,不应该视为异常值:

采用log转换,消除影响 df['a']=np.log(df['a'])  hist()查看效果

增加和值特征

增加比例特征

五:用Python构建一个预测模型

sklearn要求所有输入都是数字的,所以我们应该通过对类别进行编码,将所有的分类变量转换为数值

sklearn.preprocessing.LabelEncoder     model.fit_transform(df[''])

sklearn.cross_validation.KFold

编写一个通用的函数

def classification_model(model,data,feature,label):

       model.fit(data[feature],data[label])

      predictions=model.predict(data[feature])

      accuracy=merics.accuracy_score(predictions,data[label])

      print 'auuracy:%s' % '{0:.3%}'.format(accuracy)

      .........

不同的特征选择,不同的模型尝试

当测试集上准确度提高但是交叉验证得分降低,说明过拟合。需要减少特征量(查看重要特征排序,取前几个),调整模型参数

pd.Series(model.feature_importances_,index =之前特征量).sort_values(ascending = False)

  1. 使用更复杂的模型不能保证更好的结果。
  2. 避免使用复杂的建模技术作为黑盒子而不了解基本概念。这样做会增加过拟合的趋势,从而使模型不可解释
  3. 特征工程是成功的关键。













不同的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值