好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

机器学习开篇小菜

预计更新机器学习十几篇

开篇小菜

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

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

数据集的生成
 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]   
测试评分
 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()  
线性回归
 from sklearn.linear_model import LinearRegression line = LinearRegression() try_different_method(line)  

效果如下:

回归树
 # 回归树 from sklearn.tree import DecisionTreeRegressor tree = DecisionTreeRegressor() try_different_method(tree)  

效果如下:

KNN
 # KNN from sklearn import neighbors knn = neighbors.KNeighborsRegressor() try_different_method(knn)  

效果如下

随机森林
 # 随机森林 from sklearn import ensemble rf =ensemble.RandomForestRegressor(n_estimators=20)#这里使用20个决策树 try_different_method(rf)  

效果如下

集成学习
 # 集成学习 from sklearn import ensemble ada = ensemble.AdaBoostRegressor(n_estimators=50) try_different_method(ada)  

效果如下:

梯度提升
 # 梯度提升 from sklearn import ensemble gbrt = ensemble.GradientBoostingRegressor(n_estimators=100) try_different_method(gbrt)  

效果如下

SVR
  # SVR from sklearn.svm import SVR svr = SVR(kernel='rbf', C=1e3, gamma=0.1) try_different_method(svr)  

效果如下

熟悉如何导包即可

一直原创,从未转载

请认准我, 将我置标

转发,好看支持一下,感谢

查看更多关于机器学习开篇小菜的详细内容...

  阅读:28次