• Keras 使用多层感知器 预测泰坦尼克 乘客 生还概率


    # coding: utf-8
    
    # In[6]:
    
    
    # -*- coding: utf-8 -*-  
    import urllib.request
    import os
    
    
    # In[7]:
    
    
    url="http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.xls"
    filepath="data/titanic3.xls"
    if not os.path.isfile(filepath):
        result=urllib.request.urlretrieve(url,filepath)
        print('downloaded:',result)
    
    
    # In[8]:
    
    
    import numpy
    import pandas as pd
    
    
    # In[9]:
    
    
    all_df = pd.read_excel(filepath)
    
    
    # In[10]:
    
    
    all_df[:2]
    
    
    # In[11]:
    
    
    cols=['survived','name','pclass' ,'sex', 'age', 'sibsp',
          'parch', 'fare', 'embarked']
    all_df=all_df[cols]
    
    
    # In[12]:
    
    
    all_df[:2]
    
    
    # In[13]:
    
    
    all_df.isnull().sum()
    
    
    # In[14]:
    
    
    df=all_df.drop(['name'], axis=1)
    
    
    # In[15]:
    
    
    age_mean = df['age'].mean()
    df['age'] = df['age'].fillna(age_mean)
    
    
    # In[16]:
    
    
    fare_mean = df['fare'].mean()
    df['fare'] = df['fare'].fillna(fare_mean)
    
    
    # In[17]:
    
    
    df['sex']= df['sex'].map({'female':0, 'male': 1}).astype(int)
    
    
    # In[18]:
    
    
    df[:2]
    
    
    # In[19]:
    
    
    x_OneHot_df = pd.get_dummies(data=df,columns=["embarked" ])
    
    
    # In[20]:
    
    
    x_OneHot_df[:2]
    
    
    # In[21]:
    
    
    ndarray = x_OneHot_df.values
    
    
    # In[22]:
    
    
    ndarray.shape
    
    
    # In[23]:
    
    
    ndarray[:2]
    
    
    # In[26]:
    
    
    Label = ndarray[:,0]
    Features = ndarray[:,1:]
    
    
    # In[27]:
    
    
    Features.shape
    
    
    # In[28]:
    
    
    Features[:2]
    
    
    # In[29]:
    
    
    Label.shape
    
    
    # In[32]:
    
    
    Label[:2]
    
    
    # In[33]:
    
    
    from sklearn import preprocessing
    
    
    # In[34]:
    
    
    minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1))
    
    
    # In[35]:
    
    
    scaledFeatures=minmax_scale.fit_transform(Features)
    
    
    # In[36]:
    
    
    scaledFeatures[:2]
    
    
    # In[37]:
    
    
    Label[:5]
    
    
    # In[38]:
    
    
    msk = numpy.random.rand(len(all_df)) < 0.8
    train_df = all_df[msk]
    test_df = all_df[~msk]
    
    
    # In[39]:
    
    
    print('total:',len(all_df),
          'train:',len(train_df),
          'test:',len(test_df))
    
    
    # In[40]:
    
    
    def PreprocessData(raw_df):
        df=raw_df.drop(['name'], axis=1)
        age_mean = df['age'].mean()
        df['age'] = df['age'].fillna(age_mean)
        fare_mean = df['fare'].mean()
        df['fare'] = df['fare'].fillna(fare_mean)
        df['sex']= df['sex'].map({'female':0, 'male': 1}).astype(int)
        x_OneHot_df = pd.get_dummies(data=df,columns=["embarked" ])
    
        ndarray = x_OneHot_df.values
        Features = ndarray[:,1:]
        Label = ndarray[:,0]
    
        minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1))
        scaledFeatures=minmax_scale.fit_transform(Features)    
        
        return scaledFeatures,Label
    
    
    # In[41]:
    
    
    train_Features,train_Label=PreprocessData(train_df)
    test_Features,test_Label=PreprocessData(test_df)
    
    
    # In[42]:
    
    
    train_Features[:2]
    
    
    # In[43]:
    
    
    train_Label[:2]
    # coding: utf-8
    
    # In[1]:
    
    
    import numpy
    import pandas as pd
    from sklearn import preprocessing
    numpy.random.seed(10)
    
    
    # In[2]:
    
    
    all_df = pd.read_excel("data/titanic3.xls")
    
    
    # In[3]:
    
    
    cols=['survived','name','pclass' ,'sex', 'age', 'sibsp',
          'parch', 'fare', 'embarked']
    all_df=all_df[cols]
    
    
    # In[4]:
    
    
    msk = numpy.random.rand(len(all_df)) < 0.8
    train_df = all_df[msk]
    test_df = all_df[~msk]
    
    
    # In[5]:
    
    
    print('total:',len(all_df),
          'train:',len(train_df),
          'test:',len(test_df))
    
    
    # In[6]:
    
    
    def PreprocessData(raw_df):
        df=raw_df.drop(['name'], axis=1)
        age_mean = df['age'].mean()
        df['age'] = df['age'].fillna(age_mean)
        fare_mean = df['fare'].mean()
        df['fare'] = df['fare'].fillna(fare_mean)
        df['sex']= df['sex'].map({'female':0, 'male': 1}).astype(int)
        x_OneHot_df = pd.get_dummies(data=df,columns=["embarked" ])
    
        ndarray = x_OneHot_df.values
        Features = ndarray[:,1:]
        Label = ndarray[:,0]
    
        minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1))
        scaledFeatures=minmax_scale.fit_transform(Features)    
        
        return scaledFeatures,Label
    
    
    # In[7]:
    
    
    train_Features,train_Label=PreprocessData(train_df)
    test_Features,test_Label=PreprocessData(test_df)
    
    
    # In[8]:
    
    
    from keras.models import Sequential
    from keras.layers import Dense,Dropout
    
    
    # In[9]:
    
    
    model = Sequential()
    
    
    # In[10]:
    
    
    model.add(Dense(units=40, input_dim=9, 
                    kernel_initializer='uniform', 
                    activation='relu'))
    
    
    # In[11]:
    
    
    model.add(Dense(units=30, 
                    kernel_initializer='uniform', 
                    activation='relu'))
    
    
    # In[12]:
    
    
    model.add(Dense(units=1, 
                    kernel_initializer='uniform',
                    activation='sigmoid'))
    
    
    # In[13]:
    
    
    model.compile(loss='binary_crossentropy', 
                  optimizer='adam', metrics=['accuracy'])
    
    
    # In[14]:
    
    
    train_history =model.fit(x=train_Features, 
                             y=train_Label, 
                             validation_split=0.1, 
                             epochs=30, 
                             batch_size=30,verbose=2)
    
    
    # In[15]:
    
    
    import matplotlib.pyplot as plt
    def show_train_history(train_history,train,validation):
        plt.plot(train_history.history[train])
        plt.plot(train_history.history[validation])
        plt.title('Train History')
        plt.ylabel(train)
        plt.xlabel('Epoch')
        plt.legend(['train', 'validation'], loc='upper left')
        plt.show()
    
    
    # In[16]:
    
    
    show_train_history(train_history,'acc','val_acc')
    
    
    # In[17]:
    
    
    show_train_history(train_history,'loss','val_loss')
    
    
    # In[18]:
    
    
    scores = model.evaluate(x=test_Features, 
                            y=test_Label)
    
    
    # In[19]:
    
    
    scores[1]
  • 相关阅读:
    我的访问量咋才3万了
    Khronos发布WebGL标准规范 1.0
    X3Dom V1.2发布
    解决Linux(Fedora Ubuntu)笔记本的待机休眠
    多用户虚拟Web3D环境Deep MatrixIP9 1.04发布
    网络科技公司Web开发团队管理的小结
    XamlReader 动态加载XAML
    Excel Data Reader开源的.NET excel读取库
    .net Sql server 事务的两种用法
    通过使用客户端证书调用 Web 服务进行身份验证{转}
  • 原文地址:https://www.cnblogs.com/IAMzhuxiaofeng/p/9136469.html
Copyright © 2020-2023  润新知