机器学习|Titanic预测生还分析

Day1 2017-09-11
[耐心]我们都特别迫切自己一天[短期]锁获得的成长,而低估自己一年、两年[长期]所获得的成长。

#导入Re模块(正则表达式模块)
import re
#导入numpy模块,numpy别称np
import numpy as np
#导入pandas模块,pandas模块别称pd
import pandas as pd
#导入random模块,别称rd,random模块用于生成随机数
import random as rd
#从机器学习模块sklearn模块中引入preprocessing类
from sklearn import preprocessing
#从sklearn.cluster中导入KMeans算法
from sklearn.cluster import KMeans
#从sklearn.ensemble中导入随机森林算法RandomForestRegressor
from sklearn.ensemble import RandomForestRegressor
#从sklearn.decomposition中导入主成分分析PCA
from sklearn.decomposition import PCA
#设置输出打印选项
np.set_printoptions(precision=4, threshold=10000, linewidth=160, edgeitems=999, suppress=True)
#设置显示最大列
pd.set_option('display.max_columns', None)
#设置显示最大行
pd.set_option('display.max_rows', None)
#设置显示宽度160
pd.set_option('display.width', 160)
#设置expand_frame_repr(???有疑问,还是有些不懂的,或者懂得不深入的)
pd.set_option('expand_frame_repr', False)
#精度设置
pd.set_option('precision', 4)

#自定义函数processCabin,船舱变量Cabin的数据清洗(数据预处理)
def processCabin():   
    #定义全局变量df
    global df
    #数据清洗,空置处理:Cabin列里的空置用U0来填充
    df['Cabin'][df.Cabin.isnull()] = 'U0'

    df['CabinLetter'] = df['Cabin'].map( lambda x : getCabinLetter(x))
    df['CabinLetter'] = pd.factorize(df['CabinLetter'])[0]

    #Cabin变量首字母的处理
    if keep_binary:
        cletters = pd.get_dummies(df['CabinLetter']).rename(columns=lambda x: 'CabinLetter_' + str(x))
        df = pd.concat([df, cletters], axis=1)

    df['CabinNumber'] = df['Cabin'].map( lambda x : getCabinNumber(x)).astype(int) + 1
    #Cabin变量数字的处理
    if keep_scaled:
        scaler = preprocessing.StandardScaler()
        df['CabinNumber_scaled'] = scaler.fit_transform(df['CabinNumber'])

#自定义船舱Cabin变量的首字母处理函数
def getCabinLetter(cabin):
    #使用正则表达式来匹配,[a-zA-Z]匹配变量Cabin值中的首字母的任何大小写字母
    match = re.compile("([a-zA-Z]+)").search(cabin)
    #如果匹配成功,正常返回
    if match:
        return match.group()
    #否则,首字母添加U
    else:
        return 'U'

你可能感兴趣的:(机器学习|Titanic预测生还分析)