0x01 机器学习入门

01机器学习的主要几种方式

  1.监督学习 -->就是像学生一样,有平时的训练,也有考试.来训练出的学生就是监督学习的结果

  2.非监督学习 -->就像考研一样,没有人会检测你,全靠自己学

  3.强化学习   -->一个人打篮球,每投一次球就知道结果,然后靠自己的经验的学习,叫做强化学习

  4.遗传算法  --> 就像打拳皇比赛一样,胜者生产,输者淘汰

02机器学习所要做的两种基本事情

  1.预测

  2.分类

03一个通用的学习模式,KNN分类

import numpy as np
from sklearn import datasets  # 引入sklearn的例题(练习资料)
from sklearn.model_selection import train_test_split # 将数据分成训练和考试用的
from sklearn.neighbors import KNeighborsClassifier  # KNN算法

iris = datasets.load_iris()
iris_X = iris.data      # 获得资料
iris_y = iris.target    # 获得目标

print(iris_X[:2,:])  # 打印一下资料
print(iris_y)

X_train,X_test,y_train,y_test = train_test_split(
    iris_X,iris_y,test_size=0.3  # 三七分 注意是0.3不是三
)

knn = KNeighborsClassifier()   #这应该是创建了一个对象
knn.fit(X_train,y_train)
print(knn.predict(X_test))
print(y_test)
# 预测自己编的数据
print(knn.predict([[7,7,7,7]]))

04 学会使用sklearn的数据,来练习

一个简单的线性回归来预测东西

from sklearn import datasets
from sklearn.linear_model import LinearRegression #用来线性回归的
import matplotlib.pyplot as plt

# 加载数据
loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_y = loaded_data.target
# 应该是有多个未知量 对应一个y
# print(data_X[4:8,:])
# print(data_y[4:8])
# 使用线性回归
model = LinearRegression()
model.fit(data_X,data_y)
# 查看预测数据和真实数据
print(model.predict(data_X[:4,:]))
print(data_y[:4])

# 算法的属性            y = 0.1x + 0.3
print(model.coef_)        #就相当与0.1
print(model.intercept_)   #就相当与0.3
print(model.get_params()) #拿出创建对象时的传入的参数
print(model.score(data_X,data_y))   #通过数据,看看机器学习的打分  # 做法R^2来判断

# 自己手动制作一些数据
                                # 样本个数  (自变量-x1,x2) 目标-y  噪点
X,y = datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=10)
plt.scatter(X,y)
plt.show()

05标准化数据

思想就是等比例缩小到一定的范围

from sklearn import preprocessing  #用来标准化数据的库
import numpy as np
from sklearn.model_selection import train_test_split # 分类数据集
from sklearn.datasets.samples_generator import make_classification #个人生成数据
from sklearn.svm import SVC  # 支持向量机
import matplotlib.pyplot as plt # 用来画图的

a = np.array([[10,2.7,3.6],
              [-100,5,-2],
              [120,20,40]],dtype=np.float64)
print(a)
# 标准化后的矩阵
print(preprocessing.scale(a))

X,y = make_classification(n_samples=300,n_features=2,n_redundant=0,
                          n_informative=2,random_state=22,n_clusters_per_class=1,
                          scale=100) # random_state=22 就是种子让每次随机出来的结果是一样的
# plt.scatter(X[:,0],X[:,1],c=y)
# plt.show()
# -----------> 下一句就是关键点
X = preprocessing.scale(X)  # 标准化数据
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=.3)
clf = SVC() # 创建支持向量机的对象
clf.fit(X_train,y_train)  # 用支持向量机来打分
print(clf.score(X_test,y_test))  # 看看打分的情况

  

猜你喜欢

转载自www.cnblogs.com/liu247/p/10995531.html