机器学习十讲第三讲

本讲开始讲了梯度下降算法和最大似然估计算法。

from sklearn import datasets
random_samples = datasets.make_classification(n_samples=60, #样本数量
                                              n_classes=2, #类别数量
                                              n_features=2, #特征数量
                                              n_informative=2,#有信息特征数量
                                              n_redundant=0, #冗余特征数量
                                              n_repeated=0, # 重复特征数量
                                              n_clusters_per_class=1, #每一类的簇数
                                              flip_y=0, # 样本标签随机分配的比例
                                              class_sep=3,#不同类别样本的分散程度
                                              random_state=203)
import pandas as pd
data = pd.DataFrame(data=random_samples[0],columns=["x1","x2"])
data["label"] = random_samples[1]
data["ones"] = 1
print(data.head())
data["label"] = data["label"].map({0:-1,1:1})
data_pos = data[data["label"]==1]
data_neg = data[data["label"]==-1]
import matplotlib.pyplot as plt
import numpy as np
w = [1,1,-4]
x1 = np.linspace(-6,6,50)
x2 = -(w[0]/w[1])*x1 - w[2]/w[1]
plt.figure(figsize=(8,8))
plt.scatter(data_pos["x1"],data_pos["x2"],c="#E4007F",marker="^")
plt.scatter(data_neg["x1"],data_neg["x2"],c="#007979",marker="o")
plt.plot(x1,x2,c="gray") #画出分类直线
plt.xlabel("$x_1$")
plt.ylabel("$x_2$")
plt.xlim(-6,6)
plt.ylim(1,5)
plt.show()

原文地址:https://www.cnblogs.com/xhj1074376195/p/14349835.html