徐小玉的博客。
分类: Python/Ruby
2023-05-19 14:59:19
安装准备:
安装 matplotlib 库 数据可视化
没有: pip show matplotlib
安装: pip install matplotlib
安装pandas
pip show pandas
pip install pandas
至此,机器学习需要的基础库准备就绪:
import sys
import scipy
import numpy as np
import sklearn
import pandas
import matplotlib
1: 线性回归:
#导入所需库matplotlib,numpy
import matplotlib.pyplot as plt
import numpy as np
#从scikit-learn导入线性模型的线性回归算法
from sklearn import linear_model
#生成数据集
x = np.linspace(-3,3,30)
y = 2*x + 1
# 把序列变矩阵,scikit-learn的fit函数需要的输入参数是矩阵。
x=[[i] for i in x]
y=[[i] for i in y]
#训练线性回归模型
model = linear_model.LinearRegression()
#为模型传入训练参数
model.fit(x,y)
# predict
#model.predict(x_)
# 预测一下,选4个
x_=[[1],[2],[3],[5]]
print ( model.predict(x_))
#数据集绘制,这里并不影响预测,纯粹是为了看一下。
plt.scatter(x,y)
plt.show()
output:
[[ 3.]
[ 5.]
[ 7.]
[11.]]
2: logistic 回归
# ------------logistic回归分类算法-----------
#------------------------------------------
print ("\n------ logistic回归 ------\n")
#从scikit-learn导入线性模型的logistic回归算法
from sklearn.linear_model import LogisticRegression
#鸢尾花分类数据集,是一个分类问题的数据集
from sklearn.datasets import load_iris
#载入鸢尾花数据集
X,y = load_iris(return_X_y=True)
#训练模型
#clf=LogisticRegression().fit(X,y) 出错了。因为增大迭代
#max_iter=10000
clf=LogisticRegression(max_iter=3000).fit(X,y)
#使用模型预测
print ('---to Predict:\n')
#clf.predict(X)
print(clf.predict(X))
print ('---to evaluate:\n')
print(clf.score(X,y))
---to Predict:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1
1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
---to evulate:
0.9733333333333334
KNN分类算法:
# ------------KNN分类算法-----------
#------------------------------------------
print ("\n------ KNN ------\n")
from sklearn.datasets import load_iris
#近邻模型KNN算法
from sklearn.neighbors import KNeighborsClassifier
#载入鸢尾花数据集
X,y = load_iris(return_X_y=True)
clf=KNeighborsClassifier().fit(X,y)
print(clf.predict(X))
print(clf.score(X,y))
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1
1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2
2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
0.9666666666666667