徐小玉的博客。
(286)
(3)
(1)
(2)
(9)
(9)
(6)
(10)
(10)
(3)
(4)
(12)
(16)
(14)
(119)
(48)
(20)
分类: 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
上一篇:
下一篇:没有了