zoukankan      html  css  js  c++  java
  • 使用对数变换来提升单变量的回归准确度

    from sklearn.linear_model import Ridge
    from sklearn.preprocessing import StandardScaler
    from sklearn.svm import SVC
    from sklearn.tree import DecisionTreeClassifier, export_graphviz
    from IPython.display import display
    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib as mt
    import pandas as pd
    from sklearn.decomposition import PCA
    from sklearn.datasets import load_breast_cancer
    from sklearn.model_selection import train_test_split
    
    rnd = np.random.RandomState(0)
    X_org = rnd.normal(size=(1000, 3))
    w = rnd.normal(size=3)
    X = rnd.poisson(10 * np.exp(X_org))
    y = np.dot(X_org, w)
    
    print("Number of feature appearances:
    {}".format(np.bincount(X[:, 0])))
    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
    #岭回归验证测试分数
    score = Ridge().fit(X_train, y_train).score(X_test, y_test)
    print("Ridge Test score: {:.3f}".format(score))
    X_train_log = np.log(X_train + 1)
    X_test_log = np.log(X_test + 1)
    score = Ridge().fit(X_train_log, y_train).score(X_test_log, y_test)
    print("Test score: {:.3f}".format(score))

    Ridge Test score: 0.622
    Test score: 0.875

    用log变换一般是在连续值拉锯越来越大时使用。

  • 相关阅读:
    使用docker-client创建NFS挂载
    递归遍历JSON树
    electron-builder中NSIS相关配置
    nodejs调试基础【转载】
    node-java模块
    NodeJs中使用jQuery?
    如何实现electron多页面间通信
    转载:【知乎Live】狼叔:如何正确的学习Node.js
    js对象替换键值名称
    Eclipse 调试 darknet 代码
  • 原文地址:https://www.cnblogs.com/starcrm/p/11698817.html
Copyright © 2011-2022 走看看