美文网首页
学习备记,机器学习入门

学习备记,机器学习入门

作者: 邱宏健 | 来源:发表于2017-05-23 22:50 被阅读116次

    那最常用的当然是这两个库了:

    import numpy as np
    import pandas as pd
    

    流程上来一般就是,先载入数据:

    in_file = 'titanic_data.csv'
    full_data = pd.read_csv(in_file)
    

    后面就是display,这个不是直接调库,先不写。
    下一步是把原始数据分开成一部分特征,一部分标签。往往用到这个语句:

    data= full_data['Survived']   # 标签集
    feature= full_data.drop('Survived', axis = 1)   # 特征集  
    

    有时候,我们还要对分出来的特征数据集进行一下改动,可能会用到这些语句:

    income = income_raw.replace(['<=50K', '>50K'], [0, 1])   # 替换
    print data[0:1]  #  选择第一行
    print data.loc[1:3]   # 行选择
    print data.loc[1:3, ['age', 'race', 'sex']]  # 行列选择
    print data.iloc[1:3, 0:8]  # 行列选择
    print data[[0, 3, 6]]  # 选择列
    

    这里有一些最简单的统计运算:

    #目标:计算价值的最小值
    minimum_price = np.min(data['MEDV'])
    # TODO: Maximum price of the data
    #目标:计算价值的最大值
    maximum_price = np.max(data['MEDV'])
    # TODO: Mean price of the data
    #目标:计算价值的平均值
    mean_price = np.mean(data['MEDV'])
    # TODO: Median price of the data
    #目标:计算价值的中值
    median_price = np.median(data['MEDV'])
    # TODO: Standard deviation of prices of the data
    #目标:计算价值的标准差
    std_price = np.std(data['MEDV'])
    

    sklearn中会有一些评价预测能力的函数,例如:

    from sklearn.metrics import r2_score
    score =  r2_score(y_true, y_predict)
    

    在看结果的时候,我们可能会想要自己想要的格式,注意format格式输出:
    给个链接

    print '{},{}'.format('kzc',18)
    print '{1},{0},{1}'.format('kzc',18)
    # 字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。
    '{name},{age}'.format(age=18,name='kzc')  # 通过关键字参数
    # 富的的“格式限定符”(语法是{}中带:号)
    '{:>8}'.format('189')
    '{:0>8}'.format('189')  # 输出:00000189
    '{:a>8}'.format('189')  # 输出:aaaaa189
    # 精度与类型f
    '{:.2f}'.format(321.33345)  # 输出:321.33
    '{:,}'.format(1234567890)  # 千位分隔符。输出:1,234,567,890
    

    有时候我们想要把原数据的一部分作为测试集,用这个语句:

    from sklearn.cross_validation import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(features, prices, test_size=0.2, random_state=42)  # 最后这个参数random_state给多少都可以。
    

    在我们使用sklearn中的一些方法时,其实套路很简单,导入,学习(fit),预测(predict),就行了,如下:

    # 高斯朴素贝叶斯 (GaussianNB)
    from sklearn.naive_bayes import GaussianNB
    NB = GaussianNB()
    learner = NB.fit(X_train, y_train)
    predictions_test = learner.predict(X_test)
    

    这是一些常用的方法:

    clfs = {}
    # 高斯朴素贝叶斯 (GaussianNB)
    from sklearn.naive_bayes import GaussianNB
    clfs["NB"] = GaussianNB()
    # 决策树
    from sklearn import tree
    clfs["DT"] = tree.DecisionTreeClassifier()
    # AdaBoost
    from sklearn.ensemble import AdaBoostClassifier
    clfs["AB"] = AdaBoostClassifier()
    # 随机森林
    from sklearn.ensemble import RandomForestClassifier
    clfs["RFC"] = RandomForestClassifier()
    # K临近
    from sklearn.neighbors import KNeighborsRegressor
    # clfs["KN"] = KNeighborsRegressor(n_neighbors=2)
    clfs["KN"] = KNeighborsRegressor()
    # 随机梯度下降分类器 (SGDC)
    from sklearn import linear_model
    clfs["SGDC"] = linear_model.SGDClassifier()
    # 支撑向量机 (SVM)
    from sklearn.svm import SVC
    clfs["SVC"] = SVC()
    # Logistic回归
    from sklearn.linear_model import LogisticRegression
    clfs['LR'] = LogisticRegression()
    

    不过,有时候你可能想用一下网格搜索:

    from sklearn.model_selection import GridSearchCV
    grid = GridSearchCV(estimator = regressor, param_grid = params, scoring = scoring_fnc, cv = cv_sets)
    # 这几个参数的意思分别是:
    # estimator 具体预测方法,例如决策树。
    # param_grid 预测方法的参数,例如决策树的最大深度,这个参数用字典传入,这么写:params = {'max_depth':range(1,11)}
    # scoring 评价方法
    # cv 交叉验证方法
    

    选取最终要的特征:

    # TODO:导入一个有'feature_importances_'的监督学习模型
    from sklearn import tree
    
    # TODO:在训练集上训练一个监督学习模型
    model = ExtraTreesClassifier()
    model.fit(X_train, y_train)
    
    # TODO: 提取特征重要性
    importances = model.feature_importances_
    
    # 绘图
    vs.feature_plot(importances, X_train, y_train)
    
    # 这里好像是提取了前五个最重要的参数,图像如下:
    
    最重要的五个参数

    好了就这些。

    相关文章

      网友评论

          本文标题:学习备记,机器学习入门

          本文链接:https://www.haomeiwen.com/subject/wwngxxtx.html