python scikit-learn模块
学习笔记记录
可可茜里的传说
这个作者很懒,什么都没留下…
展开
-
sklearn代码24 7-岭回归alpha最优化
plt.xscale('log') #将横坐标以对数的形式显示_ = plt.plot(alphas,coefs)plt.xscale('log') #将横坐标以对数的形式显示plt.ylabel('coef',fontsize = 25,color = 'red',rotation = 0) # fontsize标签大小 rotation角度plt.xlabel('alpha',fontsize = 25,color = 'green')需要使用岭回归的情况impo原创 2021-11-08 11:17:54 · 410 阅读 · 0 评论 -
sklearn代码23 6-线性回归岭回归 套索回归比较
# LinearRegression,Ridge,Lassoimport numpy as npfrom sklearn.linear_model import LinearRegression,Ridge,Lasso,RidgeCV,LassoCVimport matplotlib.pyplot as plt%matplotlib inline# 50个样本 200个特征# 无解,无数个解X = np.random.randn(50,200)w = np.random.randn原创 2021-11-08 10:25:17 · 137 阅读 · 0 评论 -
sklearn笔记31 其他线性模型
官网查看假如线性回归可以解决,那么就不用领回归原创 2021-11-08 09:19:47 · 65 阅读 · 0 评论 -
sklearn代码23 5-其他的回归模型
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error,r2_scorefrom sklearn import datasets# CV cross validation 交叉验证from sklearn.line原创 2021-11-08 09:19:08 · 135 阅读 · 0 评论 -
sklearn笔记30手写代码实现线性回归
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn.linear_model import LinearRegressionX = np.linspace(2,10,20).reshape(-1,1)# f(x) = wx +by = np.random.randint(1,6,size = 1)*X + np.random.randint(-5,5,size =1)# 噪声,原创 2021-11-06 11:10:38 · 188 阅读 · 0 评论 -
sklearn代码22 3-手写代码实现线性回归
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn.linear_model import LinearRegressionX = np.linspace(2,10,20).reshape(-1,1)# f(x) = wx +by = np.random.randint(1,6,size = 1)*X + np.random.randint(-5,5,size =1)# 噪声,原创 2021-11-06 11:10:01 · 145 阅读 · 0 评论 -
sklearn笔记29 线性回归 天猫双十一销量预测
完整代码 sklearn代码21 2-2020天猫双十一销量天猫双十一历年销量数据是曲线的,不是线性的# 认为天猫销量与年份之间存在函数关系,一元二次,一元三次导包import numpy as npimport matplotlib.pyplot as plt%matplotlib inline数据years = np.arange(2009,2020)yearssales = np.array([0.5,9.36,52,191,352,571,912,1207,16原创 2021-11-05 11:30:12 · 606 阅读 · 1 评论 -
sklearn代码21 2-2020天猫双十一销量
# 认为天猫销量与年份之间存在函数关系,一元二次,一元三次import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineyears = np.arange(2009,2020)yearsarray([2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019])sales = np.array([0.5,9.36,52,191,352,571,原创 2021-11-05 11:29:28 · 145 阅读 · 0 评论 -
sklearn笔记28 线性回归原理
线性回归常用的导数:线性回归的基本规律:一般都会有一条线,穿过这些点,即线性回归方程机器学习的本质:解方程最小二乘法的相关概念:最小二乘法的概念:导入需要的包import numpy as npfrom sklearn.linear_model import LinearRegressionimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import datasets导入数据#原创 2021-11-05 10:32:47 · 180 阅读 · 0 评论 -
sklearn代码20 1-线性回归boston房价预测
import numpy as npfrom sklearn.linear_model import LinearRegressionimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import datasets# 波士顿房价boston = datasets.load_boston()X = np.linspace(0,10,50).reshape(-1,1)Xarray([[ 0.原创 2021-11-05 10:31:52 · 311 阅读 · 0 评论 -
sklearn笔记27 adaboost原理
完整代码 sklearn代码19 8-adaboostbagging方法一、Boosting算法Boosting集成分类器包含多个非常简单的成员分类器,这些成员分类器的性能仅好于随机猜想,常被称为弱学习机。典型的弱学习机的例子就是单层决策树。Boosting算法主要针对难以区分的样本,弱学习机通过在分类错误的样本上进行学习来提高继承分类器的分类性能。Boosting与Bagging不同,在Boosting的初始化阶段采用的是无返回抽样从训练样本中随机抽取一个子集,而Bagging采用的是原创 2021-11-04 22:05:43 · 123 阅读 · 0 评论 -
sklearn代码19 8-adaboost
import numpy as npfrom sklearn.ensemble import AdaBoostClassifierfrom sklearn import treeimport matplotlib.pyplot as plt%matplotlib inlineX = np.arange(10).reshape(-1,1)y = np.array([1,1,1,-1,-1,-1,1,1,1,-1])display(X,y)array([[0], [1],原创 2021-11-04 22:05:05 · 164 阅读 · 0 评论 -
sklearn笔记26 pandas批量处理成绩表
完整代码 sklearn代码18 python自动化处理数据导包import numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as plt%matplotlib inlinedata = pd.read_excel('./18级高一体测成绩汇总.xls')datadata[:45]多余的班级信息cond = data['班级']!='班级原创 2021-11-04 18:13:09 · 535 阅读 · 1 评论 -
sklearn代码18 python自动化处理数据
import numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as plt%matplotlib inlinedata = pd.read_excel('./18级高一体测成绩汇总.xls')data 班级 性别 姓名 1000米 50米 跳远原创 2021-11-04 18:12:34 · 395 阅读 · 0 评论 -
sklearn笔记25 梯度提升分类树原理
完整代码 sklearn代码17 7-梯度提升分类树原理1logistic回归import numpy as npfrom sklearn.ensemble import GradientBoostingClassifierimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import treexi = np.arange(1,11)yi = np.array([0,0,0,1,1,0,0,0,1,1])原创 2021-11-04 16:16:39 · 141 阅读 · 0 评论 -
sklearn代码17 7-梯度提升分类树原理1
import numpy as npfrom sklearn.ensemble import GradientBoostingClassifierimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import treexi = np.arange(1,11)yi = np.array([0,0,0,1,1,0,0,0,1,1])gbdt = GradientBoostingClassifier(n_estim原创 2021-11-04 16:16:03 · 178 阅读 · 0 评论 -
sklearn笔记24 算法回顾
算法使用·创建·参数调节 cross_val_score:求单一参数最合适的值(KNN) GridSearchCV网格搜索:多参数组合最优的值。 标准:准确率,精确率,召回率,F1数据清洗操作数据库(数据清洗)数据分析,可视化(Excel可视化)算法原理内在动力cpu i7-9700k (超频,打鸡血)面试(最重要的)表达出来,训练,学会。原理本质上简单,通俗的,生活KNN原理,距离(调整,p=1, p =2设置p= 1, p =2调和)决策树原理:嫡、gini系数、梯度下降、梯.原创 2021-11-03 22:20:34 · 52 阅读 · 0 评论 -
sklearn笔记23 梯度上升梯度下降
梯度上升是为了找最大值梯度下降是为了找最小值import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinef = lambda x: (x-3)**2 + 2.5*x - 7.5fx = np.linspace(-2,5)y = f(x)plt.plot(x,y)# 倒数函数d = lambda x : 2*(x-3) +2.5# 学习率,每次改变数值的时候,改变多少learning_rate原创 2021-11-03 21:50:39 · 258 阅读 · 0 评论 -
sklearn笔记22 梯度提升树原理
完整代码 sklearn代码16 6-梯度提升树原理此实验中数据比较简单,主要是为了分析梯度提升树执行的原理import numpy as npimport matplotlib.pyplot as plt%matplotlib inline# 回归是分类的极限思想# 分类的类别多到一定程度,就是回归from sklearn.ensemble import GradientBoostingClassifier,GradientBoostingRegressorfrom sklearn原创 2021-11-03 18:16:06 · 269 阅读 · 0 评论 -
sklearn代码16 6-梯度提升树原理
import numpy as npimport matplotlib.pyplot as plt%matplotlib inline# 回归是分类的极限思想# 分类的类别多到一定程度,就是回归from sklearn.ensemble import GradientBoostingClassifier,GradientBoostingRegressorfrom sklearn import tree# X数据:上网时间和购物金额# y目标:14 16, 24,26X = np.原创 2021-11-03 18:15:24 · 106 阅读 · 0 评论 -
sklearn笔记21 梯度提升树的使用
完整代码 sklearn代码15 5-梯度提升树参数使用:官网信息import numpy as np# f(x) = 3*x**2# 梯度=导数from sklearn.ensemble import GradientBoostingClassifierfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitX,y = datasets.load_iris(True原创 2021-11-03 17:23:03 · 127 阅读 · 0 评论 -
sklearn代码15 5-梯度提升树
import numpy as np# f(x) = 3*x**2# 梯度=导数from sklearn.ensemble import GradientBoostingClassifierfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitX,y = datasets.load_iris(True)cond = y!=2X = X[cond]y = y[cond]X_原创 2021-11-03 17:22:24 · 215 阅读 · 0 评论 -
sklearn笔记20 极限森林
完整代码 sklearn代码14 极限森林官网介绍在极端随机树(参见 ExtraTreesClassifier 和 ExtraTreesRegressor类)中,计算分割点方法中的随机性进一步增强。与随机森林中一样,使用了候选特征的随机子集,但不像随机森林中是寻找最具区分度的阈值,而是对每个候选特征随机绘制阈值,并选择这些随机生成的阈值中最佳的作为作为分割规则。这种做法通常能够减少一点模型的方差,代价则是略微地增大偏差极限森林是在随机森林的基础上更近了一步from sklearn.ensemb原创 2021-11-03 16:52:02 · 420 阅读 · 0 评论 -
sklearn代码14 极限森林
from sklearn.ensemble import ExtraTreesClassifier,RandomForestClassifierfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import cross_val_scorefrom sklearn import datasetsimport numpy as npimport matplotlib.pyplot as p原创 2021-11-03 16:51:24 · 181 阅读 · 0 评论 -
sklearn笔记19 随机森林和决策树的比较
完整代码 sklearn代码13 3-随机森林sklearn.ensemble集成模块包括两种基于随机决策树的平均算法:RandomForest算法和Extra-Trees算法。这两种算法都是专门为树设计的扰动和组合技术(perturb-and-combine techniques)[B1998]。这意味着在分类器构造过程中引入随机性来创建一组不同的分类器的集合。集成之后的预测是每个分类器的平均。在随机森林中(请参阅RandomForestClassifier和_RandomForestReg原创 2021-11-03 15:59:57 · 1363 阅读 · 0 评论 -
sklearn代码13 3-随机森林
import numpy as npimport matplotlib. pyplot as plt%matplotlib inlinefrom sklearn.ensemble import RandomForestClassifier,ExtraTreesClassifierfrom sklearn import datasetsimport pandas as pdfrom sklearn.model_selection import train_test_splitfrom原创 2021-11-03 15:59:13 · 234 阅读 · 0 评论 -
sklearn笔记18 随机森林原理
需要的包import numpy as npimport matplotlib. pyplot as plt%matplotlib inlinefrom sklearn.ensemble import RandomForestClassifierfrom sklearn import datasetsimport pandas as pdfrom sklearn.model_selection import train_test_split随机森林是由多颗决策树构建而成每一原创 2021-11-02 22:47:58 · 112 阅读 · 0 评论 -
sklearn代码12 2-决策树的使用及原理
import numpy as npfrom sklearn.tree import DecisionTreeClassifierfrom sklearn import datasetsimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import treefrom sklearn.model_selection import train_test_splitiris = datasets.load_iris原创 2021-11-02 22:26:56 · 227 阅读 · 0 评论 -
sklearn笔记18决策树gini系数
完整代码 sklearn代码12 2-决策树的使用及原理%%timeclf = DecisionTreeClassifier(criterion='gini',max_depth=2) #深度为1clf.fit(X_train,y_train)y_ = clf.predict(X_test)from sklearn.metrics import accuracy_scoreprint(accuracy_score(y_test,y_))plt.figure(figsize=(18原创 2021-11-02 22:24:37 · 1077 阅读 · 1 评论 -
sklearn笔记17决策树的使用
import numpy as npfrom sklearn.tree import DecisionTreeClassifierfrom sklearn import datasetsimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import tree原创 2021-11-02 22:12:24 · 215 阅读 · 0 评论 -
sklearn 遇到有的包导不进来问题解决
问题:sklearn中有的包导入不进来pip list找到要卸载的包,卸载时名字需要一致pip uninstall scikit-learn 卸载已经安装的版本查看到卸载完成指定新版本进行安装pip install scikit-learn==0.21.3原创 2021-11-02 20:59:57 · 304 阅读 · 0 评论 -
sklearn笔记16 决策树的熵原理
查看官网关于决策树的介绍先查看一下树结构的组成将这个对话绘为树状,即如下所示:香农公式原创 2021-11-02 15:51:25 · 144 阅读 · 0 评论 -
sklearn代码11 1-熵
import numpy as np[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z8Lm1iLN-1635839408553)(1.png)]−∑i=1np(xi)∗log2p(xi)-\sum_{i = 1}^{n}{p(xi)*log_2p(xi)}−i=1∑np(xi)∗log2p(xi)∑i=1np(xi)∗log21p(xi)\sum_{i=1}^{n}p(xi)*log_2\frac{1}{p(xi)}i=1∑np(xi)∗log2p(xi)1原创 2021-11-02 15:50:44 · 119 阅读 · 0 评论 -
sklearn笔记15 str类型的数据量化操作
完整代码 sklearn代码10 8-encoding导包import numpy as npimport pandas as pdfrom pandas import Series,DataFramefrom sklearn.preprocessing import OneHotEncoder,LabelEncoderfrom sklearn.neighbors import KNeighborsClassifiersalary = pd.read_csv('./salary.tx原创 2021-11-01 22:09:17 · 255 阅读 · 1 评论 -
sklearn代码10 8-encoding
import numpy as npimport pandas as pdfrom pandas import Series,DataFramefrom sklearn.preprocessing import OneHotEncoder,LabelEncoderfrom sklearn.neighbors import KNeighborsClassifiersalary = pd.read_csv('./salary.txt')salary.head()原创 2021-11-01 22:08:26 · 118 阅读 · 0 评论 -
sklearn笔记14 str类型的数据转换与训练预测
完整代码 sklearn代码9 7-KNN-salay获取数据data = pd.read_csv('./salary.txt')data.head()data.columns #获取数据的列名data.drop(labels=['final_weight','education','capital_gain','capital_loss'], axis=1, inplace = True) #取消一些不必要的数据data.shaped原创 2021-11-01 15:49:36 · 229 阅读 · 0 评论 -
sklearn代码9 7-KNN-salay
import numpy as npimport pandas as pdfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.model_selection import train_test_split# cv int 6 数据分成6份from sklearn.model_selection import cross_val_score,GridSearchCV# KFold、StratifiedKFold原创 2021-11-01 15:48:51 · 297 阅读 · 0 评论 -
sklearn笔记13 sklearn中的数据拆分
import numpy as npimport pandas as pdfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.model_selection import train_test_split# cv int 6 数据分成6份from sklearn.model_selection import cross_val_score,GridSearchCV# KFold、StratifiedKFold原创 2021-11-01 15:02:42 · 256 阅读 · 0 评论 -
sklearn笔记12 KNN数据归一化操作
完整代码 sklearn8 6-KNN癌症诊断(3)归一化的操作X.head()哪个数值更大,哪个数值越重要# 归一化操作X_norm1 = (X-X.min())/(X.max()-X.min())X_norm1.head()X_train,X_test,y_train,y_test = train_test_split(X_norm1,y,test_size = 0.2)knn = KNeighborsClassifier()params = {'n_neighbors':原创 2021-11-01 11:45:22 · 394 阅读 · 0 评论 -
sklearn代码8 6-KNN癌症诊断(3)
import numpy as npimport pandas as pdfrom pandas import Series,DataFramefrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.model_selection import train_test_split# grid网格 search搜索 cv:cross_validation# 搜索算法最合适的参数from sklearn.model_se原创 2021-11-01 11:44:37 · 254 阅读 · 0 评论