统计学习算法
线性回归
最小二乘回归:
from scipy import stats
m, b, r, p, se = stats.linregress(x, y)
def f(x): # linear model
m = 6.3134
b = -17.9164
return m*x + b
from sklearn.linear_model import LinearRegression
lr = LinearRegression() # fit/predict
基于局部距离信息的算法
KNN
from sklearn.neighbors import KNeighborsClassifier
KNeighborsClassifier(k_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None, ...)
weights
:权重函数。
uniform
:邻居节点权重相同;distance
:另据节点权重与距离成反比;[callable]
:用户自定义权重函数。
algorithm
:计算邻居节点算法。
ball_tree
kd_tree
brute
auto
:根据传递给fit
方法的数据决定选择的算法。
Kmeans
The k-means problem is solved using either Lloyd's or Elkan's algorithm.
from sklearn.cluster import KMeans
KMeans(n_clusters=8, init='k-means++', n_init=10, random_state=None)
init
:初始化方法,包括k-means++
,random
(随机选择n_cluster
个点作为初始中心点),ndarray
(给定初始点),callable
(自定义生成初始点的方法);
n_init
:k-means算法使用不同中心点运行的次数,最终输出最好的结果。
random_state
:随机数状态,初始化为整数使得结果确定。
方法
kmeans = Kmeans().fit(X)
labels = kmeans.labels_ # predicted labels
labels = KMeans().fit_predict(X) # predict labels
x_new = KMeans().fit_transform(X) # to point-centroid distance
基于分布的算法
Naive Bayes
from sklearn.naive_bayes import GaussianNB
决策树
Decision Tree
from sklearn.tree import DecisionTreeClassifier
Random Forest
from sklearn.ensemble import RandomForestClassifier