【机器学习算法】附python代码

常用的机器学习算法

# 1 线性回归
import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]]) # 两输入
y = np.dot(X, np.array([1, 2])) + 4 # dot为做点乘(一输出)
reg = LinearRegression().fit(X, y) # 训练模型
# print(reg.score(X, y))  # 决定系数(y的波动有多少可由X来表示),越接近1表示估计越准确
# print(reg.coef_) # 模型参数(权值)
# print(reg.intercept_ ) # 模型参数(偏置)
print(reg.predict(np.array([[3, 5]])))
[17.]

# 2 逻辑回归
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
X, y = load_iris(return_X_y=True)
clf = LogisticRegression(random_state=0, solver='lbfgs',multi_class='multinomial').fit(X, y) # 多类建立模型
print(clf.predict(X[50:52, :])) # 预测第50~52行的输出
print(clf.predict_proba(X[:2, :])) # 预测为每一列的可能性
print(clf.score(X, y))
[1 1]
[[9.81805544e-01 1.81944418e-02 1.43384749e-08][9.71803144e-01 2.81968258e-02 2.97522028e-08]]
0.9733333333333334

# 3 KNN
X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X, y)
print(neigh.predict([[2.1]]))
print(neigh.predict_proba([[2.6]]))
[1]
[[0.33333333 0.66666667]]

# 4 SVM
import numpy as np
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([1, 1, 2, 2])
from sklearn.svm import SVC
clf = SVC(gamma='auto') # 核函数参数
clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
    decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
    max_iter=-1, probability=False, random_state=None, shrinking=True,
    tol=0.001, verbose=False)
# C:惩罚参数,degree:多项式poly函数的维度,coef0:核函数常数项:probability为是否采用概率估计,random_state :数据洗牌时的种子值,int值
# shrinking :是否采用shrinking heuristic方法,tol:停止训练的误差值大小,cache_size :核函数cache缓存大小
print(clf.predict([[-0.8, -1]]))
[1]

# 5 朴素贝叶斯(原理暂时不懂)
import numpy as np
from sklearn.naive_bayes import GaussianNB
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
Y = np.array([1, 1, 1, 2, 2, 2])
clf = GaussianNB()
clf.fit(X, Y)
GaussianNB(priors=None)
print(clf.predict([[-0.8, -1]]))
[1]

# 6 决策树
from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(random_state=0)
iris = load_iris()
print(cross_val_score(clf, iris.data, iris.target, cv=6)) # 训练集与标签交叉zv次分别得分数
[0.96296296 1.         0.91666667 0.91666667 1.         1.        ]

# 7 K-Means
from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
print(kmeans.labels_)
print(kmeans.predict([[0, 0], [12, 3]]))
print(kmeans.cluster_centers_)
[1 1 1 0 0 0]
[1 0]
[[10.  2.]
 [ 1.  2.]]

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youthlost

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值