前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习开篇小菜

机器学习开篇小菜

作者头像
润森
发布2019-09-09 17:28:00
3430
发布2019-09-09 17:28:00
举报
文章被收录于专栏:毛利学Python毛利学Python

开篇小菜

本教程是本人尝试使用scikit-learn的一些经验,scikit-learn真的超级容易上手,简单实用。5分钟学会用调用基本的回归方法和集成方法应该是够了。

基本回归方法(线性、决策树、SVM、KNN)和集成方法(随机森林,Adaboost和GBRT)

数据集的生成
代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt


def get_data():
    # 捏造的数据集
    x1 = np.linspace(0,100,50).reshape(-1,1)
    x2 = np.linspace(0,100,50).reshape(-1,1)
    y = 10*np.sin(x1)+ 10*np.cos(x2) +x1+x2 +np.random.randn(1)+ 0.1
    # data.shape = (50, 3)
    data = np.concatenate((x1,x2,y),axis=1)

    return data
data = get_data()
x, y = data[:,:2], data[:,2] 
测试评分
代码语言:javascript
复制
def try_different_method(clf):
    clf.fit(x,y)
    score = clf.score(x, y)
    result = clf.predict(x)
    plt.figure(figsize=(10,8))
    plt.plot(np.arange(len(result)), y,'ro-',label='true value')
    plt.plot(np.arange(len(result)),result,'go-',label='predict value')
    plt.title('score: %f'%score)
    plt.legend()
    plt.show()
线性回归
代码语言:javascript
复制
from sklearn.linear_model import LinearRegression
line = LinearRegression()
try_different_method(line)

效果如下:

回归树
代码语言:javascript
复制
# 回归树
from sklearn.tree import DecisionTreeRegressor
tree = DecisionTreeRegressor()
try_different_method(tree)

效果如下:

KNN
代码语言:javascript
复制
# KNN
from sklearn import neighbors
knn = neighbors.KNeighborsRegressor()
try_different_method(knn)

效果如下

随机森林
代码语言:javascript
复制
# 随机森林
from sklearn import ensemble
rf =ensemble.RandomForestRegressor(n_estimators=20)#这里使用20个决策树
try_different_method(rf)

效果如下

集成学习
代码语言:javascript
复制
# 集成学习
from sklearn import ensemble
ada = ensemble.AdaBoostRegressor(n_estimators=50)
try_different_method(ada)

效果如下:

梯度提升
代码语言:javascript
复制
# 梯度提升
from sklearn import ensemble
gbrt = ensemble.GradientBoostingRegressor(n_estimators=100)
try_different_method(gbrt)

效果如下

SVR
代码语言:javascript
复制
 # SVR
from sklearn.svm import SVR
svr = SVR(kernel='rbf', C=1e3, gamma=0.1)
try_different_method(svr)

效果如下

熟悉如何导包即可

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开篇小菜
    • 数据集的生成
      • 测试评分
        • 线性回归
          • 回归树
            • KNN
              • 随机森林
                • 集成学习
                  • 梯度提升
                    • SVR
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档