• 简单机器学习算法——线性回归 包含(最小二乘法、岭回归、lasso 、ElasticNet算法)另有多个数据集(forge、wave、肿瘤、波士顿)


    因为注释已经很详细了,所以直接上代码:

     1 # -- coding: gbk --
     2 import mglearn
     3 from pylab import *
     4 from sklearn.model_selection import train_test_split
     5 mpl.rcParams['font.sans-serif'] = ['SimHei']
     6 from sklearn.datasets import load_breast_cancer
     7 from sklearn.datasets import load_boston
     8 from sklearn.linear_model import LinearRegression
     9 import sklearn
    10 from sklearn.linear_model import Ridge
    11 from sklearn.linear_model import Lasso
    12 from sklearn.linear_model import ElasticNet
    13 def forge数据集():
    14     print("A")
    15     X,y=mglearn.datasets.make_forge()
    16     print(X.shape)
    17     print(y.shape)
    18     mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
    19     plt.legend(["Class 0", "Class 1"], loc=4)
    20     plt.xlabel("第一特征")
    21     plt.ylabel("第二特征")
    22     #plt.show()
    23 
    24 def wave数据集():
    25     X,y=mglearn.datasets.make_wave(n_samples=40)
    26     plt.plot(X, y, 'o')
    27     plt.ylim(-3, 3)
    28     plt.xlabel("Feature")
    29     plt.ylabel("Target")
    30     plt.show()
    31 
    32 def 肿瘤数据集():
    33     cancer=load_breast_cancer()
    34     print(cancer.keys())
    35     print("AAAA")
    36     print(np.bincount(cancer.target))
    37     print("Sample counts per class:
    {}".format(
    38         {n: v for n, v in zip(cancer.target_names, np.bincount(cancer.target))}))
    39 
    40 def 波士顿():
    41     boston = load_boston()
    42     print("Data shape: {}".format(boston.data.shape))
    43 
    44 def 线性回归_最小二乘法():
    45     X, y = mglearn.datasets.load_extended_boston()
    46     X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    47 
    48     '''最小二乘法'''
    49     lr = LinearRegression().fit(X_train, y_train)
    50     print("斜率", lr.coef_)
    51     print("截距", lr.intercept_)
    52 
    53     '''评测数据'''
    54     print("Training set score: {:.2f}".format(lr.score(X_train, y_train)))
    55     print("Test set score: {:.2f}".format(lr.score(X_test, y_test)))
    56 
    57 def 岭回归Ridge():
    58     X, y = mglearn.datasets.load_extended_boston()
    59     X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    60     ridge = Ridge(alpha=10).fit(X_train, y_train)
    61     '''岭回归'''
    62     print("斜率", ridge.coef_)
    63     print("截距", ridge.intercept_)
    64 
    65     '''评测'''
    66     print("Training set score: {:.2f}".format(ridge.score(X_train, y_train)))
    67     print("Test set score: {:.2f}".format(ridge.score(X_test, y_test)))
    68 
    69 def lasso():
    70     X, y = mglearn.datasets.load_extended_boston()
    71     X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    72     lasso = Lasso().fit(X_train, y_train)
    73     '''lasso'''
    74     print("斜率", lasso.coef_)
    75     print("截距", lasso.intercept_)
    76 
    77     '''评测'''
    78     print("Training set score: {:.2f}".format(lasso.score(X_train, y_train)))
    79     print("Test set score: {:.2f}".format(lasso.score(X_test, y_test)))
    80     print("Number of features used: {}".format(np.sum(lasso.coef_ != 0)))
    81 
    82     lasso001 = Lasso(alpha=0.01, max_iter=100000).fit(X_train, y_train)
    83     print("Training set score: {:.2f}".format(lasso001.score(X_train, y_train)))
    84     print("Test set score: {:.2f}".format(lasso001.score(X_test, y_test)))
    85     print("Number of features used: {}".format(np.sum(lasso001.coef_ != 0)))
    86 
    87 def ElasticNet_L1正则化_L2正则化():
    88     X, y = mglearn.datasets.load_extended_boston()
    89     X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    90     lasso = ElasticNet().fit(X_train, y_train)
    91     '''lasso'''
    92     print("斜率", lasso.coef_)
    93     print("截距", lasso.intercept_)
    94 if __name__ =='__main__':
    95     lasso()
  • 相关阅读:
    大数据笔记13:Hadoop安装之Hadoop的配置安装
    Android(java)学习笔记206:JNI之工具快速开发步骤
    Android(java)学习笔记205:JNI之编写jni程序适配所有处理器型号
    JS 实现Json查询方法
    js中call与apply用法
    大数运算(待续)
    HDU 2553(N皇后)(DFS)
    C++ STL:stack和queue
    快速幂取模(POJ 1995)
    位运算
  • 原文地址:https://www.cnblogs.com/smartisn/p/12563029.html
Copyright © 2020-2023  润新知