
發布
注冊
/
登錄sklearn的案例
sklearn中決策樹的應用(python)
00 安裝scikit-learn庫
pip install scikit-learn
01 獲取sklearn中鳶尾花數據
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier
iris=datasets.load_iris()
dex1=np.random.choice(150,size=120,replace=False)
dex2=[]
for i in range(150):
if i not in dex1:
dex2.append(i)
train_x=iris.data[dex1,:]
train_y=iris.target[dex1]
test_x=iris.data[dex2,:]
test_y=iris.target[dex2]
02 分類樹
classi=DecisionTreeClassifier()
classi.fit(train_x,train_y)
classi.score(test_x,test_y)
Out[112]: 0.9333333333333333
classi.predict(test_x)
classi=DecisionTreeClassifier(criterion='gini')
classi.fit(train_x,train_y)
classi.score(test_x,test_y)
Out[135]: 0.9
classi=DecisionTreeClassifier(criterion='entropy')
classi.fit
展開 sklearn中K近鄰的使用(python)
in weights:
scor=[]
for k in ks:
regre=neighbors.KNeighborsRegressor(weights=weight,n_neighbors=k)
regre.fit(train_x,train_y)
scor.append(regre.score(test_x,test_y))
plt.plot(ks,scor,label=weight)
plt.legend()
fig=plt.figure()
ps=[1,2,10]
ks=np.linspace(1,len(train_y),50,dtype='int')
for p in ps:
scor=[]
for k in ks:
regre=neighbors.KNeighborsRegressor(p=p,n_neighbors=k)
regre.fit(train_x,train_y)
scor.append(regre.score(test_x,test_y))
plt.plot(ks,scor,label='p='+str(p))
plt.legend(loc='best')
02 獲取sklearn中數據
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets,neighbors
digits=datasets.load_digits()
dex1=np.random.choice(1797,1500,replace=False)
dex2=[]
for
展開 線性模型用于分類(sklearn)
摘要:本文主要展示scikit-learn中線性模型在分類問題中的使用,涉及邏輯回歸,線性判別;
00 安裝scikit-learn庫
pip install scikit-learn
01 獲取sklearn中鳶尾花數據
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, linear_model
iris=datasets.load_iris()
dex1=np.random.choice(150,size=120,replace=False)
dex2=[]
for i in range(150):
if i not in dex1:
dex2.append(i)
train_x=iris.data[dex1,:]
train_y=iris.target[dex1]
test_x=iris.data[dex2,:]
test_y=iris.target[dex2]
02 邏輯回歸
regre=linear_model.LogisticRegression(multi_class='ovr',solver='liblinear')
regre.fit(train_x,train_y)
regre.score(test_x,test_y)
regre.coef_
Out[40]:
array([[ 0.39001649, 1.4110123 , -2.14837944, -0.97686956],
[ 0.54586613, -1.70617607, 0.38138451, -1.1176497 ],
[-1.63246048, -1.17046085, 2.28632906
展開 sklearn中樸素貝葉斯的使用(python)
摘要:本文主要展示樸素貝葉斯模型在分類中的使用,包含三種:高斯貝葉斯,多項式貝葉斯,伯努利貝葉斯(二項貝葉斯);
00 安裝scikit-learn庫
pip install scikit-learn
01 獲取sklearn圖像識別素材
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, naive_bayes
digits=datasets.load_digits()
dex1=np.random.choice(1797,1500,replace=False)
dex2=[]
for i in range(1797):
if i not in dex1:
dex2.append(i)
train_x=digits.data[dex1]
train_y=digits.target[dex1]
test_x=digits.data[dex2]
test_y=digits.target[dex2]
02 高斯貝葉斯模型
classi=naive_bayes.GaussianNB()
classi.fit(train_x,train_y)
classi.score(test_x,test_y)
Out[44]: 0.835016835016835
classi.predict(test_x)
Out[45]:
array([0, 7, 1, 3, 7, 5, 4, 7, 8, 0, 1, 6, 3, 3, 4, 5, 1, 7, 7, 5, 8, 8,
1, 8, 3, 6, 8, 0, 7, 7, 3, 8, 7, 1, 3, 7, 3, 9, 0, 6, 9, 7,
展開 
線性回歸-sklearn(python)
摘要:本文主要展示scikit-learn中關于線性回歸模型的使用,涉及到線性回歸,嶺回歸,Lasso回歸,ElasticNet回歸;
00 安裝scikit-learn庫
pip install scikit-learn
01 獲取sklearn中糖尿病患者數據
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, linear_model
diabetes=datasets.load_diabetes()
train_x=diabetes.data[:342,:]
train_y=diabetes.target[:342].reshape(-1,1)
test_x=diabetes.data[342:,:]
test_y=diabetes.target[342:].reshape(-1,1)
02 線性回歸
regre=linear_model.LinearRegression()
regre.fit(train_x,train_y)
獲取回歸模型參數:
regre.coef_
Out[16]:
array([[ -8.41868608, -246.87356823, 515.48111342, 302.57455473,
-403.03503059, 160.72498918, -73.58961448, 127.08804647,
609.91854338, 87.69439173]])
regre.intercept_
Out[17]: array([152.09317069])
regre.score(test_x,test_y)
Out
展開 sklearn中支持向量機(SVM)用于回歸
摘要:本文使用SVM進行回歸;
00 獲取sklearn中糖尿病患者數據
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, svm
diabetes=datasets.load_diabetes()
train_x=diabetes.data[:342,:]
train_y=diabetes.target[:342]
test_x=diabetes.data[342:,:]
test_y=diabetes.target[342:]
01 SVM線性回歸
regre=svm.LinearSVR()
regre.fit(train_x,train_y)
regre.score(test_x,test_y)
Out[36]: -0.3826827941256945
regre.coef_
Out[37]:
array([ 2.49261883, 0.25752362, 6.21448813, 4.90032452, 2.70896776,
2.61597544, -4.9194174 , 5.41655006, 6.48684744, 3.7077186 ])regre.intercept_
Out[38]: array([103.12986397])
regre.n_iter_
Out[39]: 9
考察參數loss的影響:
regre=svm.LinearSVR(loss='epsilon_insensitive')
regre.fit(train_x,train_y)
regre.score(test_x,test_y)
Out[40]: -0.38589592979512455
展開 sklearn中支持向量機(SVM)用于分類
摘要:本文使用SVM進行分類;
00 獲取sklearn中鳶尾花數據
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, svm
iris=datasets.load_iris()
dex1=np.random.choice(150,size=120,replace=False)
dex2=[]
for i in range(150):
if i not in dex1:
dex2.append(i)
train_x=iris.data[dex1,:]
train_y=iris.target[dex1]
test_x=iris.data[dex2,:]
test_y=iris.target[dex2]
01 SVM線性分類
classi=svm.LinearSVC(max_iter=5000)
classi.fit(train_x,train_y)
classi.coef_
Out[21]:
array([[ 0.18423835, 0.45122936, -0.80794123, -0.4507153 ],
[ 0.07950217, -0.8192085 , 0.42309252, -0.99830954],
[-0.96954958, -0.97387786, 1.54891257, 1.68449995]])
classi.intercept_
Out[22]: array([ 0.109562 , 1.31266596, -1.50936256])
classi.n_iter_
Out[23]: 3038
classi.score(test_x
展開 數據特征的優化選擇方法(feature_selection)
_
Out[36]: array([0.4, 0. , 0.4, 1.6, 3.6])
x_kbest=selectpercen.transform(x)
02 權重法
獲取sklearn中的鳶尾花數據
import numpy as np
from sklearn import datasets, svm
import sklearn.feature_selection as selection
iris=datasets.load_iris()
x=iris.data
y=iris.target
selectrfe=selection.RFE(estimator=svm.LinearSVC(max_iter=10000),n_features_to_select=2)
selectrfe.fit(x,y)
x_rfe=selectrfe.transform(x)
selectrfe.support_
Out[149]: array([False, True, False, True])
selectrfe.ranking_
Out[150]: array([3, 1, 2, 1])
selectrfe.score(x,y)
Out[151]: 0.9466666666666667
特征選擇不一定會提高預測性能,比如不去除特征,預測得分更高:
classi=svm.LinearSVC(max_iter=10000)
classi.fit(x,y)
classi.score(x,y)
Out[152]: 0.9666666666666667
selectrfecv=selection.RFECV(estimator=svm.LinearSVC(max_iter=10000
展開 statsmodels中的線性回歸(OLS)
其實這個0是可以消除的:
from sklearn import linear_model
regre=linear_model.LinearRegression()
regre.fit(X[:,1:],y)
regre.coef_
Out[84]: array([1.10186004, 5.08228562])
regre.intercept_
Out[85]: 3.3848961766450145
總結sklearn和statsmodels的區別,可以發現:
sklear的線性回歸使用:
statsmodels的線性回歸使用:
提取statsmodels的各類參數:
results = sm.OLS(y, X).fit()
pedict_=results.predict()
fitted_=results.fittedvalues
resid_=results.resid
params_=results.params
bse_=results.bse
預測值:
預測值同樣可以用sklearn實現:
from sklearn import linear_model
regre=linear_model.LinearRegression()
regre.fit(X[:,1:],y)
test_y=regre.predict(X[:,1:])
residual=y-pedict_
residual==resid_
Out[93]:
array([ True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True
展開 監督學習 K近鄰算法算例
# 導入模塊
import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelBinarizer,MinMaxScaler
from sklearn.model_selection import GridSearchCV
from sklearn.neiors import KNeiorsClassifier
import numpy as np
import matplotlib.pyplot as plt
# 導入數據
file_path = ".
展開 01 K-近鄰算法介紹與實現
,iris.feature_names[1],iris.feature_names[2])
26# plot_iris(iris_d,iris.feature_names[1],iris.feature_names[3])
27# plot_iris(iris_d,iris.feature_names[2],iris.feature_names[3])
第二步:數據集劃分
1from sklearn.model_selection import train_test_split
2# random_state 是隨機數種子;test_size 是測試集所占的比例
3x_train, x_test, y_train, y_test = train_test_split(
4 iris.data, iris.target, random_state=20, test_size=0.2)
第三步:特征工程,數據標準化
1from sklearn.preprocessing import StandardScaler
2transfer = StandardScaler()
3# 找出訓練集數據的均值、方差,并保存在tansfer中,供后續標準化使用。
展開 
機器學習 |使用 Python 的多元線性回歸
導入庫
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.datasets import fetch_california_housing
2. 加載數據集
# Load the California Housing dataset
california_housing = fetch_california_housing()
# Assign the data (features) and target (house prices)
X = pd.DataFrame(california_housing.data, columns=california_housing.feature_names)
y = pd.Series(california_housing.target)
從 中獲取 California Housing 數據集。
展開 機器學習之 特征工程
中的OneHotEncoder方法 from sklearn.preprocessing import OneHotEncoder OneHotEncoder().fit_transform(testdata.age.values.reshape(-1,1)).toarray() 復制代碼
array([[0., 1., 0.], [0., 0., 1.], [1., 0., 0.], [1., 0., 0.]])
巖石邊坡工程大數據處理---階段性總結(R1)
3.1 運行環境
由于在本項目中使用了多種庫,因此針對不同的庫設置了不同的虛擬環境,主要包括: (1) base(root); (2) Spacy; (3) Bertopic; (4) Tensorflow; (5) Flair; (6) Transformers
3.2 主題模擬和相似性查詢
使用聯合的方法進行主題模擬和相似性查詢,主要包括:
(1) geotech-flashtext-passages.py 根據不同的短語組合,聚合出相應的段落;geotech-flashtext-words-combination.py是一個變體,把整個文檔劃分為單句進行聚合,使用了C(n,3)的組合算法;
(2) geotech-PyTextRank-keywords-summarization.py 自動提取文檔中的關鍵短語并進行排序,同時進行文檔總結;
(3) geotech-doc2vec-documents-similarity.py 從文檔中產生相似性段落,提取語義相關的短語, 使用LDA算法進行主題聚合;
(4) geotech-markovify-text-generation.py 使用馬爾可夫鏈算法生成新的句子;
(5) geotech-bertopic-topic-modeling.py 使用Transformers算法聚合主題;
(6) geotech-top2vec-sentences.py 使用Transformers算法聚合主題;
(7) geotech-sklearn-similarity-query.py 使用sklearn算法進行句子的相似性查詢;
(8) geotech-st-similarity.py 使用SentenceTransformers進行相似性查詢;
(9) geotech-st-lexrank-summarization.py
展開 如何處理 TensorFlow 模型中的過擬合? ¥5
讓我們使用以下步驟在 TensorFlow 模型中處理過擬合:
第 1 步:導入庫
import tensorflow as tf
from tensorflow.keras.models
import Sequentialfrom tensorflow.keras.layers
import Dense, Dropout, BatchNormalization
from tensorflow.keras.callbacks
import EarlyStoppingfrom sklearn.model_selection
import train_test_split
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
步驟 2:生成示例數據
此模塊生成隨機樣本數據以進行演示。X 是一個 2D 數組,有 1000 行和 10 列介于 0 和 1 之間的隨機值,而 y 是一個有 1000 個隨機整數(0 或 1)的 1D 數組。
# Generate sample data
X = np.random.rand(1000, 10)
y = np.random.randint(2, size=(1000,))
第 3 步:將數據拆分為訓練集和驗證集
該代碼使用 sklearn.model_selection 中的 train_test_split 函數將數據集拆分為訓練集、驗證集和測試集。80% 的數據分配給訓練/驗證組合集,進一步分為 75% 用于訓練,25% 用于驗證,而 20% 分配給測試集以評估訓練模型的性能。
展開