預計更新機器學習十幾篇dom
本教程是本人嘗試使用scikit-learn的一些經驗,scikit-learn真的超級容易上手,簡單實用。5分鐘學會用調用基本的迴歸方法和集成方法應該是夠了。機器學習
基本回歸方法(線性、決策樹、SVM、KNN)和集成方法(隨機森林,Adaboost和GBRT)ide
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
from sklearn import neighbors
knn = neighbors.KNeighborsRegressor()
try_different_method(knn)
效果以下spa
# 隨機森林
from sklearn import ensemble
rf =ensemble.RandomForestRegressor(n_estimators=20)#這裏使用20個決策樹
try_different_method(rf)
效果以下
rest
# 集成學習
from sklearn import ensemble
ada = ensemble.AdaBoostRegressor(n_estimators=50)
try_different_method(ada)
效果以下:code
# 梯度提高
from sklearn import ensemble
gbrt = ensemble.GradientBoostingRegressor(n_estimators=100)
try_different_method(gbrt)
效果以下orm
# SVR
from sklearn.svm import SVR
svr = SVR(kernel='rbf', C=1e3, gamma=0.1)
try_different_method(svr)
效果以下blog
熟悉如何導包便可
一直原創,從未轉載
請認準我,將我置標
轉發,好看支持一下,感謝