美文网首页
随机梯度下降模型回归实战

随机梯度下降模型回归实战

作者: lzp12138 | 来源:发表于2017-05-25 02:08 被阅读0次

            接上一篇文章的“用Logistic分类进行良/恶性乳腺癌预测”,同样的数据使用sklearn的随机梯度下降模型SGDClassifier进行分析。上码:

    import pandas as pd

    import numpy as np

    #---------数据预处理

    colume_names=['Sample code number','Clump Thickness','Uniformity of Cell Size','Uniformityof Cell Shape',

    'Marginal Adhesion','SingleEpithelial CellSize','Bare Nuclei','Bland Chromatin','Normal Nucleoli','Mitoses','Class']

    data=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data',names=colume_names)

    data=data.replace(to_replace='?',value=np.nan)

    data=data.dropna(how='any')

    #print(data.shape)

    #---------训练集、测试集划分,随机选取,训练集占75%

    from sklearn.cross_validation import train_test_split

    X_train,X_test,y_train,y_test=train_test_split(data[colume_names[1:10]],data[colume_names[10]],test_size=0.25,random_state=33)

    print(y_train.value_counts())

    print(y_test.value_counts())

    #---------训练模型

    from sklearn.preprocessing import StandardScaler

    from sklearn.linear_model import SGDClassifier

    #---------标准化数据

    ss=StandardScaler()

    X_train=ss.fit_transform(X_train)

    X_test=ss.transform(X_test)

    #---------初始化LogisticRegression与训练模型

    sgdc=SGDClassifier()

    sgdc.fit(X_train,y_train)

    sgdc_y_predict=sgdc.predict(X_test)

    #--------性能分析

    from sklearn.metrics import classification_report

    print('Accurracy of SGDClassifier:',sgdc.score(X_test,y_test))

    xnfx=classification_report(y_test,sgdc_y_predict,target_names=['Benign','Malignant'])

    print(xnfx)

    print(y_test)

    性能分析:

            对比Logistic分类模型,SGDClassifier准确率略低,而且每一次训练性能都有所差别,可能是数据量不足的原因。根据《机器学习及实践》所说,随机梯度算法计算时间短,但产出的模型性能略低,一般而言,对于训练数据规模在10万两级以上的数据,考虑到时间的耗用,推荐使用随机梯度算法模型。

    相关文章

      网友评论

          本文标题:随机梯度下降模型回归实战

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