统计学习算法

线性回归

最小二乘回归:

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